diff --git a/cypress/e2e/builder/item/settings/itemSettings.cy.ts b/cypress/e2e/builder/item/settings/itemSettings.cy.ts index 348094831..3b92dbadd 100644 --- a/cypress/e2e/builder/item/settings/itemSettings.cy.ts +++ b/cypress/e2e/builder/item/settings/itemSettings.cy.ts @@ -442,6 +442,55 @@ describe('Item Settings', () => { ); }); }); + + it('convert to capsule', function () { + const item = PackedFolderItemFactory(); + cy.intercept('PATCH', `/api/items/folders/${item.id}/to-capsule`).as( + 'switchToCapsule', + ); + cy.setUpApi({ items: [item] }); + // enable preview by default + cy.visit(buildItemSettingsPath(item.id), { + onBeforeLoad: function (window) { + window.localStorage.setItem('graasp-preview', 'enabled'); + }, + }); + cy.get('[aria-label="Convert to Capsule"]').click(); + cy.get('[aria-label="Confirm converting to Capsule"]').click(); + cy.wait('@switchToCapsule'); + }); + + it('convert to capsule not visible outside of preview', function () { + const item = PackedFolderItemFactory(); + cy.intercept('PATCH', `/api/items/folders/${item.id}/to-capsule`).as( + 'switchToCapsule', + ); + cy.setUpApi({ items: [item] }); + cy.visit(buildItemSettingsPath(item.id)); + cy.get(`#${ITEM_PANEL_TABLE_ID}`).should('be.visible'); + cy.get('[aria-label="Confirm converting to Capsule"]').should( + 'not.exist', + ); + }); + + it('convert to folder', function () { + const item = PackedFolderItemFactory({ + extra: { folder: { isCapsule: true } }, + }); + cy.intercept('PATCH', `/api/items/capsules/${item.id}/to-folder`).as( + 'switchToFolder', + ); + cy.setUpApi({ items: [item] }); + // enable preview by default + cy.visit(buildItemSettingsPath(item.id), { + onBeforeLoad: function (window) { + window.localStorage.setItem('graasp-preview', 'enabled'); + }, + }); + cy.get('[aria-label="Convert to Folder"]').click(); + cy.get('[aria-label="Confirm converting to Folder"]').click(); + cy.wait('@switchToFolder'); + }); }); describe('in item menu', () => { diff --git a/package.json b/package.json index 9cb6ff378..4d40d904a 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "@emotion/react": "11.14.0", "@emotion/styled": "11.14.1", "@fontsource-variable/nunito": "5.2.7", - "@graasp/sdk": "5.17.0", + "@graasp/sdk": "5.18.0", "@graasp/stylis-plugin-rtl": "2.2.0", "@lexical/link": "0.33.1", "@lexical/react": "0.33.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 43c0f0564..9f7306f80 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -27,8 +27,8 @@ importers: specifier: 5.2.7 version: 5.2.7 '@graasp/sdk': - specifier: 5.17.0 - version: 5.17.0(date-fns@4.1.0)(uuid@11.1.0) + specifier: 5.18.0 + version: 5.18.0(date-fns@4.1.0)(uuid@11.1.0) '@graasp/stylis-plugin-rtl': specifier: 2.2.0 version: 2.2.0(stylis@4.3.6) @@ -1594,8 +1594,8 @@ packages: '@fontsource-variable/nunito@5.2.7': resolution: {integrity: sha512-2N8QhatkyKgSUbAGZO2FYLioxA32+RyI1EplVLawbpkGjUeui9Qg9VMrpkCaik1ydjFjfLV+kzQ0cGEsMrMenQ==} - '@graasp/sdk@5.17.0': - resolution: {integrity: sha512-9r9c7hN0UHK3boJpCZBFIaK+C2ivviTehWbkKZZ1NsB8lULT3ERaymgZXhINsxICXBTguVP001+Q+7WxehPHNQ==} + '@graasp/sdk@5.18.0': + resolution: {integrity: sha512-pTTALeQSUCudleKYH6uTnmORzZEGCDP9PPJVW+rBvdhbV9jvtUamg1PGp8+Gr0AHwTIgbCZ44LNPHwzUNzjjgA==} peerDependencies: date-fns: ^4 uuid: ^11.0.0 @@ -8087,7 +8087,7 @@ snapshots: '@fontsource-variable/nunito@5.2.7': {} - '@graasp/sdk@5.17.0(date-fns@4.1.0)(uuid@11.1.0)': + '@graasp/sdk@5.18.0(date-fns@4.1.0)(uuid@11.1.0)': dependencies: '@faker-js/faker': 9.9.0 date-fns: 4.1.0 diff --git a/src/locales/en/builder.json b/src/locales/en/builder.json index b7dc0c500..a3a0d35a1 100644 --- a/src/locales/en/builder.json +++ b/src/locales/en/builder.json @@ -550,5 +550,51 @@ "EDIT_MESSAGE_ERROR": "An error happened when editing the message.", "DELETE_MESSAGE_ERROR": "An error happened when deleting the message.", "CLEAR_ERROR": "An error happened when clearing the chat." - } + }, + "CONVERT_TO_CAPSULE_MODAL_TITLE": "Convert to Capsule", + "CONVERT_TO_CAPSULE_MODAL_CONTENT": "Converting a Folder into a Capsule preserves all of its existing content and data. Capsules are ideal for organizing a complete learning unit. If you find that a Capsule doesn't fit your needs, you can easily revert to a Folder from the settings panel at any time.", + "CONVERT_TO_CAPSULE_MODAL_CONTENT_DETAILS": { + "TITLE": "Why use Capsules? (Coming soon)", + "SIMPLIFIED_PERMISSIONS": { + "TITLE": "Simplified permissions", + "DESCRIPTION": "Manage access permission only at the Capsule level." + }, + "INLINE_EDITOR": { + "TITLE": "Inline editor", + "DESCRIPTION": "Create and edit content directly within the Capsule for a faster, smoother workflow." + }, + "CLEAR_ROLES_AND_VIEWS": { + "TITLE": "Clear roles and views", + "DESCRIPTION": "Role-based views for a focused learning experience:", + "READERS": "Readers see only the Player view.", + "WRITERS_AND_ADMINS": "Writers and admins have access to the Builder view for content creation and management." + }, + "ACTIVITY_UNITY": { + "TITLE": "Actvity unity", + "DESCRIPTION": "The Player view presents the complete content at once; partial playback isn’t possible." + } + }, + "CONVERT_TO_CAPSULE_MODAL_CONFIRM_BUTTON_ARIA_LABEL": "Confirm converting to Capsule", + "CONVERT_TO_CAPSULE_MODAL_CONFIRM_BUTTON": "Convert to Capsule", + "CONVERT_TO_CAPSULE_SUCCESS_MESSAGE": "The item has been successfully converted to a Capsule.", + "CONVERT_TO_CAPSULE_ERROR_MESSAGE": "An error occurred while converting the item to a Capsule. Please try again later.", + "CONVERT_TO_FOLDER_MODAL_TITLE": "Convert to Folder", + "CONVERT_TO_FOLDER_MODAL_CONTENT": "Converting a Capsule into a Folder preserves all of its existing content and data. Folders are best suited for organizing and managing data. If a Folder doesn't meet your needs, you can easily revert to a Folder from the settings panel at any time.", + "CONVERT_TO_FOLDER_MODAL_CONTENT_DETAILS": { + "TITLE": "Why use Folders?", + "FLEXIBLE_PERMISSIONS": { + "TITLE": "Flexible permissions", + "DESCRIPTION": "Manage access rights at every level, giving you more granular control." + }, + "FOLDER_EDITOR": { + "TITLE": "Folder editor", + "DESCRIPTION": "Content is displayed as a file structure for easier management." + }, + "EXPANDED_VISIBILITY": { + "TITLE": "Expanded visibility", + "DESCRIPTION": "Readers can access both the Player view and the Builder view." + } + }, + "CONVERT_TO_FOLDER_MODAL_CONFIRM_BUTTON_ARIA_LABEL": "Confirm converting to Folder", + "CONVERT_TO_FOLDER_MODAL_CONFIRM_BUTTON": "Convert to Folder" } diff --git a/src/locales/en/enums.json b/src/locales/en/enums.json index e375f3b0f..8b2a18403 100644 --- a/src/locales/en/enums.json +++ b/src/locales/en/enums.json @@ -4,6 +4,7 @@ "admin": "admin", "app": "app", + "capsule": "capsule", "document": "document", "embeddedLink": "link", "file": "file", diff --git a/src/locales/fr/enums.json b/src/locales/fr/enums.json index 1006c6a0b..ca3fdd499 100644 --- a/src/locales/fr/enums.json +++ b/src/locales/fr/enums.json @@ -3,6 +3,7 @@ "write": "écriture", "admin": "administration", "app": "application", + "capsule": "capsule", "document": "document", "embeddedLink": "lien", "file": "fichier", diff --git a/src/modules/builder/components/item/settings/ConvertToCapsuleButton.tsx b/src/modules/builder/components/item/settings/ConvertToCapsuleButton.tsx new file mode 100644 index 000000000..bf59d0525 --- /dev/null +++ b/src/modules/builder/components/item/settings/ConvertToCapsuleButton.tsx @@ -0,0 +1,139 @@ +import { useTranslation } from 'react-i18next'; + +import { DialogActions, DialogContent } from '@mui/material'; +import Button from '@mui/material/Button'; +import Dialog from '@mui/material/Dialog'; +import DialogTitle from '@mui/material/DialogTitle'; + +import { getParentFromPath } from '@graasp/sdk'; + +import { useMutation, useQueryClient } from '@tanstack/react-query'; + +import { NS } from '@/config/constants'; +import { convertFolderToCapsuleMutation } from '@/openapi/client/@tanstack/react-query.gen'; +import { getKeyForParentId, itemKeys } from '@/query/keys'; + +import useModalStatus from '~builder/components/hooks/useModalStatus'; + +export function ConvertToCapsuleButton({ + itemId, + itemPath, +}: Readonly<{ itemId: string; itemPath: string }>) { + const { t } = useTranslation(NS.Builder); + const { t: translateCommon } = useTranslation(NS.Common); + const { isOpen, openModal, closeModal } = useModalStatus(); + + const queryClient = useQueryClient(); + const { mutate: switchToCapsule } = useMutation({ + ...convertFolderToCapsuleMutation(), + onSuccess: async () => { + const parentKey = getKeyForParentId(getParentFromPath(itemPath)); + // refetchOnMount is false by default, so we need to remove the queries for a correct refetch + queryClient.removeQueries({ + queryKey: parentKey, + }); + await queryClient.invalidateQueries({ + queryKey: itemKeys.single(itemId).content, + }); + }, + }); + + const convert = () => { + switchToCapsule({ + path: { id: itemId }, + }); + closeModal(); + }; + + return ( + <> + + + {t('CONVERT_TO_CAPSULE_MODAL_TITLE')} + +

{t('CONVERT_TO_CAPSULE_MODAL_CONTENT')}

+

+ {t('CONVERT_TO_CAPSULE_MODAL_CONTENT_DETAILS.TITLE')} +

+

+
+ + + + +
+ + ); +} diff --git a/src/modules/builder/components/item/settings/ConvertToFolderButton.tsx b/src/modules/builder/components/item/settings/ConvertToFolderButton.tsx new file mode 100644 index 000000000..90433743a --- /dev/null +++ b/src/modules/builder/components/item/settings/ConvertToFolderButton.tsx @@ -0,0 +1,119 @@ +import { useTranslation } from 'react-i18next'; + +import { DialogActions, DialogContent } from '@mui/material'; +import Button from '@mui/material/Button'; +import Dialog from '@mui/material/Dialog'; +import DialogTitle from '@mui/material/DialogTitle'; + +import { getParentFromPath } from '@graasp/sdk'; + +import { useMutation, useQueryClient } from '@tanstack/react-query'; + +import { NS } from '@/config/constants'; +import { convertCapsuleToFolderMutation } from '@/openapi/client/@tanstack/react-query.gen'; +import { getKeyForParentId, itemKeys } from '@/query/keys'; + +import useModalStatus from '~builder/components/hooks/useModalStatus'; + +export function ConvertToFolderButton({ + itemId, + itemPath, +}: Readonly<{ itemId: string; itemPath: string }>) { + const { t } = useTranslation(NS.Builder); + const { t: translateCommon } = useTranslation(NS.Common); + const { isOpen, openModal, closeModal } = useModalStatus(); + const queryClient = useQueryClient(); + const { mutate: switchToFolder } = useMutation({ + ...convertCapsuleToFolderMutation(), + onSuccess: async () => { + const parentKey = getKeyForParentId(getParentFromPath(itemPath)); + // refetchOnMount is false by default, so we need to remove the queries for a correct refetch + queryClient.removeQueries({ + queryKey: parentKey, + }); + await queryClient.invalidateQueries({ + queryKey: itemKeys.single(itemId).content, + }); + }, + }); + + const convert = () => { + switchToFolder({ + path: { id: itemId }, + }); + closeModal(); + }; + + return ( + <> + + + {t('CONVERT_TO_FOLDER_MODAL_TITLE')} + +

{t('CONVERT_TO_FOLDER_MODAL_CONTENT')}

+

+ + {t('CONVERT_TO_FOLDER_MODAL_CONTENT_DETAILS.TITLE')} + +

+

+
+ + + + +
+ + ); +} diff --git a/src/modules/builder/components/item/settings/ItemMetadataContent.tsx b/src/modules/builder/components/item/settings/ItemMetadataContent.tsx index 2ace6ecc6..cc6d7d363 100644 --- a/src/modules/builder/components/item/settings/ItemMetadataContent.tsx +++ b/src/modules/builder/components/item/settings/ItemMetadataContent.tsx @@ -14,6 +14,7 @@ import { formatDate, formatFileSize, getFileExtra, + isCapsule, } from '@graasp/sdk'; import { NS } from '@/config/constants'; @@ -21,8 +22,11 @@ import { hooks } from '@/config/queryClient'; import { ITEM_PANEL_NAME_ID, ITEM_PANEL_TABLE_ID } from '@/config/selectors'; import { useOutletContext } from '~builder/contexts/OutletContext'; +import { Preview } from '~landing/preview/PreviewModeContext'; import { BUILDER } from '../../../langs'; +import { ConvertToCapsuleButton } from './ConvertToCapsuleButton'; +import { ConvertToFolderButton } from './ConvertToFolderButton'; import LanguageSelect from './LanguageSelect'; const { useMember } = hooks; @@ -76,7 +80,23 @@ const ItemMetadataContent = (): JSX.Element => { {translateBuilder(BUILDER.ITEM_METADATA_TYPE_TITLE)} - {mimetype ?? item.type} + + {mimetype ?? item.type} + + {item.type === ItemType.FOLDER && + (isCapsule(item) ? ( + + ) : ( + + ))} + + {size && ( diff --git a/src/modules/builder/components/table/ItemCard.tsx b/src/modules/builder/components/table/ItemCard.tsx index 7b8c23011..b9415acf2 100644 --- a/src/modules/builder/components/table/ItemCard.tsx +++ b/src/modules/builder/components/table/ItemCard.tsx @@ -8,6 +8,7 @@ import { ItemType, formatDate, getLinkThumbnailUrl, + isCapsule, } from '@graasp/sdk'; import { NS } from '@/config/constants'; @@ -43,6 +44,7 @@ const ItemCard = ({ CardLink, }: Props): JSX.Element => { const { t: translateCommon, i18n } = useTranslation(NS.Common); + const { t: translateEnum } = useTranslation(NS.Enums); const dateColumnFormatter = (value: string) => formatDate(value, { @@ -50,6 +52,9 @@ const ItemCard = ({ defaultValue: translateCommon('UNKNOWN_DATE'), }); + const itemType = + item.type === ItemType.FOLDER && isCapsule(item) ? 'capsule' : item.type; + const content = ( - {item.type} + {translateEnum(itemType)} = [ Pick & { @@ -1760,6 +1760,23 @@ export const updateFolderMutation = (options?: Partial return mutationOptions; }; +/** + * Switch folder item to capsule + */ +export const convertFolderToCapsuleMutation = (options?: Partial>): UseMutationOptions> => { + const mutationOptions: UseMutationOptions> = { + mutationFn: async (fnOptions) => { + const { data } = await convertFolderToCapsule({ + ...options, + ...fnOptions, + throwOnError: true + }); + return data; + } + }; + return mutationOptions; +}; + /** * Create a folder with a thumbnail * Create a folder with a thumbnail. The data is sent using a form-data. @@ -1778,6 +1795,41 @@ export const createFolderWithThumbnailMutation = (options?: Partial>): UseMutationOptions> => { + const mutationOptions: UseMutationOptions> = { + mutationFn: async (fnOptions) => { + const { data } = await createCapsule({ + ...options, + ...fnOptions, + throwOnError: true + }); + return data; + } + }; + return mutationOptions; +}; + +/** + * Switch capsule item to folder + */ +export const convertCapsuleToFolderMutation = (options?: Partial>): UseMutationOptions> => { + const mutationOptions: UseMutationOptions> = { + mutationFn: async (fnOptions) => { + const { data } = await convertCapsuleToFolder({ + ...options, + ...fnOptions, + throwOnError: true + }); + return data; + } + }; + return mutationOptions; +}; + /** * Create app * Create app. diff --git a/src/openapi/client/sdk.gen.ts b/src/openapi/client/sdk.gen.ts index ff77b2f2f..c6726d5a1 100644 --- a/src/openapi/client/sdk.gen.ts +++ b/src/openapi/client/sdk.gen.ts @@ -2,7 +2,7 @@ import type { Client, Options as Options2, TDataShape } from './client'; import { client } from './client.gen'; -import type { AuthenticateData, AuthenticateErrors, ClearAllMentionsData, ClearAllMentionsErrors, ClearAllMentionsResponses, ClearChatMessageData, ClearChatMessageErrors, ClearChatMessageResponses, CollectionSearchData, CollectionSearchErrors, CollectionSearchResponses, CopyManyItemsData, CopyManyItemsErrors, CopyManyItemsResponses, CreateAppActionData, CreateAppActionErrors, CreateAppActionResponses, CreateAppData, CreateAppDataData, CreateAppDataErrors, CreateAppDataFileData, CreateAppDataFileErrors, CreateAppDataFileResponses, CreateAppDataResponses, CreateAppErrors, CreateAppResponses, CreateAppSettingData, CreateAppSettingErrors, CreateAppSettingFileData, CreateAppSettingFileErrors, CreateAppSettingFileResponses, CreateAppSettingResponses, CreateBookmarkData, CreateBookmarkErrors, CreateBookmarkResponses, CreateChatbotCompletionPromptData, CreateChatbotCompletionPromptErrors, CreateChatbotCompletionPromptResponses, CreateChatMessageData, CreateChatMessageErrors, CreateChatMessageResponses, CreateDocumentData, CreateDocumentErrors, CreateDocumentResponses, CreateEtherpadData, CreateEtherpadErrors, CreateEtherpadResponses, CreateFolderData, CreateFolderErrors, CreateFolderResponses, CreateFolderWithThumbnailData, CreateFolderWithThumbnailErrors, CreateFolderWithThumbnailResponses, CreateInvitationData, CreateInvitationErrors, CreateInvitationResponses, CreateItemData, CreateItemErrors, CreateItemFlagData, CreateItemFlagErrors, CreateItemFlagResponses, CreateItemLikeData, CreateItemLikeErrors, CreateItemLikeResponses, CreateItemMembershipData, CreateItemMembershipErrors, CreateItemMembershipResponses, CreateItemResponses, CreateItemWithThumbnailData, CreateItemWithThumbnailErrors, CreateItemWithThumbnailResponses, CreateLinkData, CreateLinkErrors, CreateLinkResponses, CreateMembershipRequestData, CreateMembershipRequestResponses, CreateOwnProfileData, CreateOwnProfileErrors, CreateOwnProfileResponses, CreatePageData, CreatePageErrors, CreatePageResponses, CreatePasswordData, CreatePasswordErrors, CreatePasswordResponses, CreateShortcutData, CreateShortcutErrors, CreateShortcutResponses, CreateShortLinkData, CreateShortLinkErrors, CreateShortLinkResponses, CreateTagForItemData, CreateTagForItemErrors, CreateTagForItemResponses, CreateVisibilityData, CreateVisibilityErrors, CreateVisibilityResponses, DeleteAliasData, DeleteAliasErrors, DeleteAliasResponses, DeleteApiItemsByIdThumbnailsData, DeleteApiItemsByIdThumbnailsResponses, DeleteApiMembersMembersByIdDeleteData, DeleteApiMembersMembersByIdDeleteResponses, DeleteAppDataData, DeleteAppDataErrors, DeleteAppDataResponses, DeleteAppSettingData, DeleteAppSettingErrors, DeleteAppSettingResponses, DeleteBookmarkData, DeleteBookmarkErrors, DeleteBookmarkResponses, DeleteChatMessageData, DeleteChatMessageErrors, DeleteChatMessageResponses, DeleteCurrentAccountData, DeleteCurrentAccountErrors, DeleteCurrentAccountResponses, DeleteGeolocationData, DeleteGeolocationErrors, DeleteGeolocationResponses, DeleteInvitationData, DeleteInvitationErrors, DeleteInvitationResponses, DeleteItemLikeData, DeleteItemLikeErrors, DeleteItemLikeResponses, DeleteItemLoginSchemaData, DeleteItemLoginSchemaErrors, DeleteItemLoginSchemaResponses, DeleteItemMembershipData, DeleteItemMembershipErrors, DeleteItemMembershipResponses, DeleteManyItemsData, DeleteManyItemsErrors, DeleteManyItemsResponses, DeleteMembershipRequestData, DeleteMembershipRequestResponses, DeleteMentionData, DeleteMentionErrors, DeleteMentionResponses, DeleteTagForItemData, DeleteTagForItemErrors, DeleteTagForItemResponses, DeleteVisibilityData, DeleteVisibilityErrors, DeleteVisibilityResponses, DownloadAppDataFileData, DownloadAppDataFileErrors, DownloadAppDataFileResponses, DownloadAppSettingFileData, DownloadAppSettingFileErrors, DownloadAppSettingFileResponses, DownloadAvatarData, DownloadAvatarErrors, DownloadAvatarResponses, DownloadFileData, DownloadFileErrors, DownloadFileResponses, DownloadItemThumbnailData, DownloadItemThumbnailErrors, DownloadItemThumbnailResponses, EnrollData, EnrollResponses, ExportActionsData, ExportActionsErrors, ExportActionsResponses, ExportMemberDataData, ExportMemberDataErrors, ExportMemberDataResponses, ExportZipData, ExportZipErrors, ExportZipResponses, GenerateAppTokenData, GenerateAppTokenErrors, GenerateAppTokenResponses, GeolocationReverseData, GeolocationReverseErrors, GeolocationReverseResponses, GeolocationSearchData, GeolocationSearchErrors, GeolocationSearchResponses, GetAccessibleItemsData, GetAccessibleItemsErrors, GetAccessibleItemsResponses, GetApiItemsCollectionsSearchRebuildData, GetApiItemsCollectionsSearchRebuildResponses, GetApiItemsH5pAssetsIntegrationHtmlData, GetApiItemsH5pAssetsIntegrationHtmlResponses, GetApiItemsPublicationByItemIdStatusData, GetApiItemsPublicationByItemIdStatusResponses, GetApiStatusData, GetApiStatusResponses, GetApiVersionData, GetApiVersionResponses, GetApiWsData, GetApiWsResponses, GetAppActionsForAppData, GetAppActionsForAppErrors, GetAppActionsForAppResponses, GetAppContextData, GetAppContextResponses, GetAppDataForAppData, GetAppDataForAppErrors, GetAppDataForAppResponses, GetAppListData, GetAppListErrors, GetAppListResponses, GetAppSettingsForAppData, GetAppSettingsForAppErrors, GetAppSettingsForAppResponses, GetChatData, GetChatErrors, GetChatResponses, GetChildrenData, GetChildrenErrors, GetChildrenResponses, GetCollectionInformationsData, GetCollectionInformationsErrors, GetCollectionInformationsResponses, GetCollectionsForMemberData, GetCollectionsForMemberErrors, GetCollectionsForMemberResponses, GetCountForTagsData, GetCountForTagsErrors, GetCountForTagsResponses, GetCurrentAccountData, GetCurrentAccountErrors, GetCurrentAccountResponses, GetDescendantItemsData, GetDescendantItemsErrors, GetDescendantItemsResponses, GetEtherpadFromItemData, GetEtherpadFromItemErrors, GetEtherpadFromItemResponses, GetFacetsForNameData, GetFacetsForNameErrors, GetFacetsForNameResponses, GetFeaturedCollectionsData, GetFeaturedCollectionsErrors, GetFeaturedCollectionsResponses, GetFlagTypesData, GetFlagTypesErrors, GetFlagTypesResponses, GetGeolocationByItemData, GetGeolocationByItemErrors, GetGeolocationByItemResponses, GetInvitationByIdData, GetInvitationByIdErrors, GetInvitationByIdResponses, GetInvitationForItemData, GetInvitationForItemErrors, GetInvitationForItemResponses, GetItemActionsByDayData, GetItemActionsByDayErrors, GetItemActionsByDayResponses, GetItemActionsByHourData, GetItemActionsByHourErrors, GetItemActionsByHourResponses, GetItemActionsByWeekdayData, GetItemActionsByWeekdayErrors, GetItemActionsByWeekdayResponses, GetItemData, GetItemErrors, GetItemLoginSchemaData, GetItemLoginSchemaErrors, GetItemLoginSchemaResponses, GetItemLoginSchemaTypeData, GetItemLoginSchemaTypeErrors, GetItemLoginSchemaTypeResponses, GetItemMembershipsForItemData, GetItemMembershipsForItemErrors, GetItemMembershipsForItemResponses, GetItemResponses, GetItemsInBoxData, GetItemsInBoxErrors, GetItemsInBoxResponses, GetLatestItemValidationGroupData, GetLatestItemValidationGroupErrors, GetLatestItemValidationGroupResponses, GetLikesForCurrentMemberData, GetLikesForCurrentMemberErrors, GetLikesForCurrentMemberResponses, GetLikesForItemData, GetLikesForItemErrors, GetLikesForItemResponses, GetLinkMetadataData, GetLinkMetadataErrors, GetLinkMetadataResponses, GetMemberProfileData, GetMemberProfileErrors, GetMemberProfileResponses, GetMembersActionsData, GetMembersActionsErrors, GetMembersActionsResponses, GetMembershipRequestsByItemIdData, GetMembershipRequestsByItemIdResponses, GetMostLikedCollectionsData, GetMostLikedCollectionsErrors, GetMostLikedCollectionsResponses, GetMostRecentCollectionsData, GetMostRecentCollectionsErrors, GetMostRecentCollectionsResponses, GetNextMaintenanceData, GetNextMaintenanceErrors, GetNextMaintenanceResponses, GetOneMemberData, GetOneMemberErrors, GetOneMemberResponses, GetOwnBookmarkData, GetOwnBookmarkErrors, GetOwnBookmarkResponses, GetOwnMembershipRequestByItemIdData, GetOwnMembershipRequestByItemIdResponses, GetOwnMentionsData, GetOwnMentionsErrors, GetOwnMentionsResponses, GetOwnMostUsedAppsData, GetOwnMostUsedAppsErrors, GetOwnMostUsedAppsResponses, GetOwnPasswordStatusData, GetOwnPasswordStatusResponses, GetOwnProfileData, GetOwnProfileErrors, GetOwnProfileResponses, GetOwnRecycledItemsData, GetOwnRecycledItemsErrors, GetOwnRecycledItemsResponses, GetParentItemsData, GetParentItemsErrors, GetParentItemsResponses, GetShortLinkAvailabilityData, GetShortLinkAvailabilityErrors, GetShortLinkAvailabilityResponses, GetShortLinkRedirectionData, GetShortLinkRedirectionErrors, GetShortLinksForItemData, GetShortLinksForItemErrors, GetShortLinksForItemResponses, GetStorageData, GetStorageErrors, GetStorageFilesData, GetStorageFilesErrors, GetStorageFilesResponses, GetStorageResponses, GetTagsForItemData, GetTagsForItemErrors, GetTagsForItemResponses, GetUrlData, GetUrlErrors, GetUrlResponses, GraaspZipExportData, GraaspZipExportErrors, GraaspZipExportResponses, HealthData, HealthResponses, ImportH5pData, ImportH5pErrors, ImportH5pResponses, ImportZipData, ImportZipErrors, ImportZipResponses, InviteFromCsvData, InviteFromCsvErrors, InviteFromCsvResponses, InviteFromCsvWithTemplateData, InviteFromCsvWithTemplateErrors, InviteFromCsvWithTemplateResponses, LoginData, LoginErrors, LoginOrRegisterAsGuestData, LoginOrRegisterAsGuestErrors, LoginOrRegisterAsGuestResponses, LoginResponses, MoveManyItemsData, MoveManyItemsErrors, MoveManyItemsResponses, PagesWebsockets2Data, PagesWebsockets2Responses, PagesWebsocketsData, PagesWebsocketsResponses, PatchChangeEmailData, PatchChangeEmailErrors, PatchChangeEmailResponses, PatchChatMessageData, PatchChatMessageErrors, PatchChatMessageResponses, PatchMentionData, PatchMentionErrors, PatchMentionResponses, PostActionData, PostActionErrors, PostActionResponses, PostApiItemsByIdThumbnailsData, PostApiItemsByIdThumbnailsErrors, PostApiItemsByIdThumbnailsResponses, PostApiMembersAvatarData, PostApiMembersAvatarResponses, PostChangeEmailData, PostChangeEmailErrors, PostChangeEmailResponses, PublishItemData, PublishItemErrors, PublishItemResponses, PutGeolocationData, PutGeolocationErrors, PutGeolocationResponses, RecycleManyItemsData, RecycleManyItemsErrors, RecycleManyItemsResponses, RegisterData, RegisterErrors, RegisterResponses, ReorderItemData, ReorderItemErrors, ReorderItemResponses, RequestPasswordResetLinkData, RequestPasswordResetLinkErrors, RequestPasswordResetLinkResponses, ResetPasswordData, ResetPasswordErrors, ResetPasswordResponses, RestoreManyItemsData, RestoreManyItemsErrors, RestoreManyItemsResponses, SendInvitationData, SendInvitationErrors, SendInvitationResponses, SignInWithPasswordData, SignInWithPasswordErrors, SignInWithPasswordResponses, SignOutData, SignOutErrors, SignOutResponses, UnpublishItemData, UnpublishItemErrors, UnpublishItemResponses, UpdateAppData, UpdateAppDataData, UpdateAppDataErrors, UpdateAppDataResponses, UpdateAppErrors, UpdateAppResponses, UpdateAppSettingData, UpdateAppSettingErrors, UpdateAppSettingResponses, UpdateCurrentAccountData, UpdateCurrentAccountErrors, UpdateCurrentAccountResponses, UpdateDocumentData, UpdateDocumentErrors, UpdateDocumentResponses, UpdateEtherpadData, UpdateEtherpadErrors, UpdateEtherpadResponses, UpdateFileData, UpdateFileErrors, UpdateFileResponses, UpdateFolderData, UpdateFolderErrors, UpdateFolderResponses, UpdateInvitationData, UpdateInvitationErrors, UpdateInvitationResponses, UpdateItemData, UpdateItemErrors, UpdateItemLoginSchemaData, UpdateItemLoginSchemaErrors, UpdateItemLoginSchemaResponses, UpdateItemMembershipData, UpdateItemMembershipErrors, UpdateItemMembershipResponses, UpdateItemResponses, UpdateLinkData, UpdateLinkErrors, UpdateLinkResponses, UpdateOwnProfileData, UpdateOwnProfileErrors, UpdateOwnProfileResponses, UpdatePasswordData, UpdatePasswordErrors, UpdatePasswordResponses, UpdateShortcutData, UpdateShortcutErrors, UpdateShortcutResponses, UpdateShortLinkData, UpdateShortLinkErrors, UpdateShortLinkResponses, UploadFileData, UploadFileErrors, UploadFileResponses, ValidateItemData, ValidateItemErrors, ValidateItemResponses } from './types.gen'; +import type { AuthenticateData, AuthenticateErrors, ClearAllMentionsData, ClearAllMentionsErrors, ClearAllMentionsResponses, ClearChatMessageData, ClearChatMessageErrors, ClearChatMessageResponses, CollectionSearchData, CollectionSearchErrors, CollectionSearchResponses, ConvertCapsuleToFolderData, ConvertCapsuleToFolderErrors, ConvertCapsuleToFolderResponses, ConvertFolderToCapsuleData, ConvertFolderToCapsuleErrors, ConvertFolderToCapsuleResponses, CopyManyItemsData, CopyManyItemsErrors, CopyManyItemsResponses, CreateAppActionData, CreateAppActionErrors, CreateAppActionResponses, CreateAppData, CreateAppDataData, CreateAppDataErrors, CreateAppDataFileData, CreateAppDataFileErrors, CreateAppDataFileResponses, CreateAppDataResponses, CreateAppErrors, CreateAppResponses, CreateAppSettingData, CreateAppSettingErrors, CreateAppSettingFileData, CreateAppSettingFileErrors, CreateAppSettingFileResponses, CreateAppSettingResponses, CreateBookmarkData, CreateBookmarkErrors, CreateBookmarkResponses, CreateCapsuleData, CreateCapsuleErrors, CreateCapsuleResponses, CreateChatbotCompletionPromptData, CreateChatbotCompletionPromptErrors, CreateChatbotCompletionPromptResponses, CreateChatMessageData, CreateChatMessageErrors, CreateChatMessageResponses, CreateDocumentData, CreateDocumentErrors, CreateDocumentResponses, CreateEtherpadData, CreateEtherpadErrors, CreateEtherpadResponses, CreateFolderData, CreateFolderErrors, CreateFolderResponses, CreateFolderWithThumbnailData, CreateFolderWithThumbnailErrors, CreateFolderWithThumbnailResponses, CreateInvitationData, CreateInvitationErrors, CreateInvitationResponses, CreateItemData, CreateItemErrors, CreateItemFlagData, CreateItemFlagErrors, CreateItemFlagResponses, CreateItemLikeData, CreateItemLikeErrors, CreateItemLikeResponses, CreateItemMembershipData, CreateItemMembershipErrors, CreateItemMembershipResponses, CreateItemResponses, CreateItemWithThumbnailData, CreateItemWithThumbnailErrors, CreateItemWithThumbnailResponses, CreateLinkData, CreateLinkErrors, CreateLinkResponses, CreateMembershipRequestData, CreateMembershipRequestResponses, CreateOwnProfileData, CreateOwnProfileErrors, CreateOwnProfileResponses, CreatePageData, CreatePageErrors, CreatePageResponses, CreatePasswordData, CreatePasswordErrors, CreatePasswordResponses, CreateShortcutData, CreateShortcutErrors, CreateShortcutResponses, CreateShortLinkData, CreateShortLinkErrors, CreateShortLinkResponses, CreateTagForItemData, CreateTagForItemErrors, CreateTagForItemResponses, CreateVisibilityData, CreateVisibilityErrors, CreateVisibilityResponses, DeleteAliasData, DeleteAliasErrors, DeleteAliasResponses, DeleteApiItemsByIdThumbnailsData, DeleteApiItemsByIdThumbnailsResponses, DeleteApiMembersMembersByIdDeleteData, DeleteApiMembersMembersByIdDeleteResponses, DeleteAppDataData, DeleteAppDataErrors, DeleteAppDataResponses, DeleteAppSettingData, DeleteAppSettingErrors, DeleteAppSettingResponses, DeleteBookmarkData, DeleteBookmarkErrors, DeleteBookmarkResponses, DeleteChatMessageData, DeleteChatMessageErrors, DeleteChatMessageResponses, DeleteCurrentAccountData, DeleteCurrentAccountErrors, DeleteCurrentAccountResponses, DeleteGeolocationData, DeleteGeolocationErrors, DeleteGeolocationResponses, DeleteInvitationData, DeleteInvitationErrors, DeleteInvitationResponses, DeleteItemLikeData, DeleteItemLikeErrors, DeleteItemLikeResponses, DeleteItemLoginSchemaData, DeleteItemLoginSchemaErrors, DeleteItemLoginSchemaResponses, DeleteItemMembershipData, DeleteItemMembershipErrors, DeleteItemMembershipResponses, DeleteManyItemsData, DeleteManyItemsErrors, DeleteManyItemsResponses, DeleteMembershipRequestData, DeleteMembershipRequestResponses, DeleteMentionData, DeleteMentionErrors, DeleteMentionResponses, DeleteTagForItemData, DeleteTagForItemErrors, DeleteTagForItemResponses, DeleteVisibilityData, DeleteVisibilityErrors, DeleteVisibilityResponses, DownloadAppDataFileData, DownloadAppDataFileErrors, DownloadAppDataFileResponses, DownloadAppSettingFileData, DownloadAppSettingFileErrors, DownloadAppSettingFileResponses, DownloadAvatarData, DownloadAvatarErrors, DownloadAvatarResponses, DownloadFileData, DownloadFileErrors, DownloadFileResponses, DownloadItemThumbnailData, DownloadItemThumbnailErrors, DownloadItemThumbnailResponses, EnrollData, EnrollResponses, ExportActionsData, ExportActionsErrors, ExportActionsResponses, ExportMemberDataData, ExportMemberDataErrors, ExportMemberDataResponses, ExportZipData, ExportZipErrors, ExportZipResponses, GenerateAppTokenData, GenerateAppTokenErrors, GenerateAppTokenResponses, GeolocationReverseData, GeolocationReverseErrors, GeolocationReverseResponses, GeolocationSearchData, GeolocationSearchErrors, GeolocationSearchResponses, GetAccessibleItemsData, GetAccessibleItemsErrors, GetAccessibleItemsResponses, GetApiItemsCollectionsSearchRebuildData, GetApiItemsCollectionsSearchRebuildResponses, GetApiItemsH5pAssetsIntegrationHtmlData, GetApiItemsH5pAssetsIntegrationHtmlResponses, GetApiItemsPublicationByItemIdStatusData, GetApiItemsPublicationByItemIdStatusResponses, GetApiStatusData, GetApiStatusResponses, GetApiVersionData, GetApiVersionResponses, GetApiWsData, GetApiWsResponses, GetAppActionsForAppData, GetAppActionsForAppErrors, GetAppActionsForAppResponses, GetAppContextData, GetAppContextResponses, GetAppDataForAppData, GetAppDataForAppErrors, GetAppDataForAppResponses, GetAppListData, GetAppListErrors, GetAppListResponses, GetAppSettingsForAppData, GetAppSettingsForAppErrors, GetAppSettingsForAppResponses, GetChatData, GetChatErrors, GetChatResponses, GetChildrenData, GetChildrenErrors, GetChildrenResponses, GetCollectionInformationsData, GetCollectionInformationsErrors, GetCollectionInformationsResponses, GetCollectionsForMemberData, GetCollectionsForMemberErrors, GetCollectionsForMemberResponses, GetCountForTagsData, GetCountForTagsErrors, GetCountForTagsResponses, GetCurrentAccountData, GetCurrentAccountErrors, GetCurrentAccountResponses, GetDescendantItemsData, GetDescendantItemsErrors, GetDescendantItemsResponses, GetEtherpadFromItemData, GetEtherpadFromItemErrors, GetEtherpadFromItemResponses, GetFacetsForNameData, GetFacetsForNameErrors, GetFacetsForNameResponses, GetFeaturedCollectionsData, GetFeaturedCollectionsErrors, GetFeaturedCollectionsResponses, GetFlagTypesData, GetFlagTypesErrors, GetFlagTypesResponses, GetGeolocationByItemData, GetGeolocationByItemErrors, GetGeolocationByItemResponses, GetInvitationByIdData, GetInvitationByIdErrors, GetInvitationByIdResponses, GetInvitationForItemData, GetInvitationForItemErrors, GetInvitationForItemResponses, GetItemActionsByDayData, GetItemActionsByDayErrors, GetItemActionsByDayResponses, GetItemActionsByHourData, GetItemActionsByHourErrors, GetItemActionsByHourResponses, GetItemActionsByWeekdayData, GetItemActionsByWeekdayErrors, GetItemActionsByWeekdayResponses, GetItemData, GetItemErrors, GetItemLoginSchemaData, GetItemLoginSchemaErrors, GetItemLoginSchemaResponses, GetItemLoginSchemaTypeData, GetItemLoginSchemaTypeErrors, GetItemLoginSchemaTypeResponses, GetItemMembershipsForItemData, GetItemMembershipsForItemErrors, GetItemMembershipsForItemResponses, GetItemResponses, GetItemsInBoxData, GetItemsInBoxErrors, GetItemsInBoxResponses, GetLatestItemValidationGroupData, GetLatestItemValidationGroupErrors, GetLatestItemValidationGroupResponses, GetLikesForCurrentMemberData, GetLikesForCurrentMemberErrors, GetLikesForCurrentMemberResponses, GetLikesForItemData, GetLikesForItemErrors, GetLikesForItemResponses, GetLinkMetadataData, GetLinkMetadataErrors, GetLinkMetadataResponses, GetMemberProfileData, GetMemberProfileErrors, GetMemberProfileResponses, GetMembersActionsData, GetMembersActionsErrors, GetMembersActionsResponses, GetMembershipRequestsByItemIdData, GetMembershipRequestsByItemIdResponses, GetMostLikedCollectionsData, GetMostLikedCollectionsErrors, GetMostLikedCollectionsResponses, GetMostRecentCollectionsData, GetMostRecentCollectionsErrors, GetMostRecentCollectionsResponses, GetNextMaintenanceData, GetNextMaintenanceErrors, GetNextMaintenanceResponses, GetOneMemberData, GetOneMemberErrors, GetOneMemberResponses, GetOwnBookmarkData, GetOwnBookmarkErrors, GetOwnBookmarkResponses, GetOwnMembershipRequestByItemIdData, GetOwnMembershipRequestByItemIdResponses, GetOwnMentionsData, GetOwnMentionsErrors, GetOwnMentionsResponses, GetOwnMostUsedAppsData, GetOwnMostUsedAppsErrors, GetOwnMostUsedAppsResponses, GetOwnPasswordStatusData, GetOwnPasswordStatusResponses, GetOwnProfileData, GetOwnProfileErrors, GetOwnProfileResponses, GetOwnRecycledItemsData, GetOwnRecycledItemsErrors, GetOwnRecycledItemsResponses, GetParentItemsData, GetParentItemsErrors, GetParentItemsResponses, GetShortLinkAvailabilityData, GetShortLinkAvailabilityErrors, GetShortLinkAvailabilityResponses, GetShortLinkRedirectionData, GetShortLinkRedirectionErrors, GetShortLinksForItemData, GetShortLinksForItemErrors, GetShortLinksForItemResponses, GetStorageData, GetStorageErrors, GetStorageFilesData, GetStorageFilesErrors, GetStorageFilesResponses, GetStorageResponses, GetTagsForItemData, GetTagsForItemErrors, GetTagsForItemResponses, GetUrlData, GetUrlErrors, GetUrlResponses, GraaspZipExportData, GraaspZipExportErrors, GraaspZipExportResponses, HealthData, HealthResponses, ImportH5pData, ImportH5pErrors, ImportH5pResponses, ImportZipData, ImportZipErrors, ImportZipResponses, InviteFromCsvData, InviteFromCsvErrors, InviteFromCsvResponses, InviteFromCsvWithTemplateData, InviteFromCsvWithTemplateErrors, InviteFromCsvWithTemplateResponses, LoginData, LoginErrors, LoginOrRegisterAsGuestData, LoginOrRegisterAsGuestErrors, LoginOrRegisterAsGuestResponses, LoginResponses, MoveManyItemsData, MoveManyItemsErrors, MoveManyItemsResponses, PagesWebsockets2Data, PagesWebsockets2Responses, PagesWebsocketsData, PagesWebsocketsResponses, PatchChangeEmailData, PatchChangeEmailErrors, PatchChangeEmailResponses, PatchChatMessageData, PatchChatMessageErrors, PatchChatMessageResponses, PatchMentionData, PatchMentionErrors, PatchMentionResponses, PostActionData, PostActionErrors, PostActionResponses, PostApiItemsByIdThumbnailsData, PostApiItemsByIdThumbnailsErrors, PostApiItemsByIdThumbnailsResponses, PostApiMembersAvatarData, PostApiMembersAvatarResponses, PostChangeEmailData, PostChangeEmailErrors, PostChangeEmailResponses, PublishItemData, PublishItemErrors, PublishItemResponses, PutGeolocationData, PutGeolocationErrors, PutGeolocationResponses, RecycleManyItemsData, RecycleManyItemsErrors, RecycleManyItemsResponses, RegisterData, RegisterErrors, RegisterResponses, ReorderItemData, ReorderItemErrors, ReorderItemResponses, RequestPasswordResetLinkData, RequestPasswordResetLinkErrors, RequestPasswordResetLinkResponses, ResetPasswordData, ResetPasswordErrors, ResetPasswordResponses, RestoreManyItemsData, RestoreManyItemsErrors, RestoreManyItemsResponses, SendInvitationData, SendInvitationErrors, SendInvitationResponses, SignInWithPasswordData, SignInWithPasswordErrors, SignInWithPasswordResponses, SignOutData, SignOutErrors, SignOutResponses, UnpublishItemData, UnpublishItemErrors, UnpublishItemResponses, UpdateAppData, UpdateAppDataData, UpdateAppDataErrors, UpdateAppDataResponses, UpdateAppErrors, UpdateAppResponses, UpdateAppSettingData, UpdateAppSettingErrors, UpdateAppSettingResponses, UpdateCurrentAccountData, UpdateCurrentAccountErrors, UpdateCurrentAccountResponses, UpdateDocumentData, UpdateDocumentErrors, UpdateDocumentResponses, UpdateEtherpadData, UpdateEtherpadErrors, UpdateEtherpadResponses, UpdateFileData, UpdateFileErrors, UpdateFileResponses, UpdateFolderData, UpdateFolderErrors, UpdateFolderResponses, UpdateInvitationData, UpdateInvitationErrors, UpdateInvitationResponses, UpdateItemData, UpdateItemErrors, UpdateItemLoginSchemaData, UpdateItemLoginSchemaErrors, UpdateItemLoginSchemaResponses, UpdateItemMembershipData, UpdateItemMembershipErrors, UpdateItemMembershipResponses, UpdateItemResponses, UpdateLinkData, UpdateLinkErrors, UpdateLinkResponses, UpdateOwnProfileData, UpdateOwnProfileErrors, UpdateOwnProfileResponses, UpdatePasswordData, UpdatePasswordErrors, UpdatePasswordResponses, UpdateShortcutData, UpdateShortcutErrors, UpdateShortcutResponses, UpdateShortLinkData, UpdateShortLinkErrors, UpdateShortLinkResponses, UploadFileData, UploadFileErrors, UploadFileResponses, ValidateItemData, ValidateItemErrors, ValidateItemResponses } from './types.gen'; export type Options = Options2 & { /** @@ -1068,6 +1068,16 @@ export const updateFolder = (options: Opti }); }; +/** + * Switch folder item to capsule + */ +export const convertFolderToCapsule = (options: Options) => { + return (options.client ?? client).patch({ + url: '/api/items/folders/{id}/to-capsule', + ...options + }); +}; + /** * Create a folder with a thumbnail * Create a folder with a thumbnail. The data is sent using a form-data. @@ -1079,6 +1089,31 @@ export const createFolderWithThumbnail = ( }); }; +/** + * Create capsule + * Create capsule. + */ +export const createCapsule = (options: Options) => { + return (options.client ?? client).post({ + url: '/api/items/capsules', + ...options, + headers: { + 'Content-Type': 'application/json', + ...options.headers + } + }); +}; + +/** + * Switch capsule item to folder + */ +export const convertCapsuleToFolder = (options: Options) => { + return (options.client ?? client).patch({ + url: '/api/items/capsules/{id}/to-folder', + ...options + }); +}; + /** * Create app * Create app. diff --git a/src/openapi/client/types.gen.ts b/src/openapi/client/types.gen.ts index 02eafbbbe..fc5d6bdfd 100644 --- a/src/openapi/client/types.gen.ts +++ b/src/openapi/client/types.gen.ts @@ -3303,7 +3303,7 @@ export type CreateFolderResponses = { [key: string]: unknown; } & { folder: { - isRoot?: boolean; + isCapsule?: boolean; }; }; /** @@ -3405,7 +3405,7 @@ export type UpdateFolderResponses = { [key: string]: unknown; } & { folder: { - isRoot?: boolean; + isCapsule?: boolean; }; }; /** @@ -3443,6 +3443,77 @@ export type UpdateFolderResponses = { export type UpdateFolderResponse = UpdateFolderResponses[keyof UpdateFolderResponses]; +export type ConvertFolderToCapsuleData = { + body?: never; + path: { + id: string; + }; + query?: never; + url: '/api/items/folders/{id}/to-capsule'; +}; + +export type ConvertFolderToCapsuleErrors = { + /** + * Error object with useful information about the unexpected behavior that occured + */ + '4XX': _Error; +}; + +export type ConvertFolderToCapsuleError = ConvertFolderToCapsuleErrors[keyof ConvertFolderToCapsuleErrors]; + +export type ConvertFolderToCapsuleResponses = { + /** + * Default Response + */ + 200: { + id: string; + name: string; + description?: null | string; + type: string; + path: string; + lang: string; + extra: { + [key: string]: unknown; + } & { + folder: { + isCapsule?: boolean; + }; + }; + /** + * Item settings + * Parameters, mostly visual, common to all types of items. + */ + settings: { + /** + * @deprecated + */ + lang?: string; + isPinned?: boolean; + /** + * @deprecated + */ + tags?: Array; + showChatbox?: boolean; + isResizable?: boolean; + hasThumbnail?: boolean; + ccLicenseAdaption?: 'CC BY' | 'CC BY-NC' | 'CC BY-SA' | 'CC BY-NC-SA' | 'CC BY-ND' | 'CC BY-NC-ND' | 'CC0'; + displayCoEditors?: boolean; + descriptionPlacement?: 'above' | 'below'; + isCollapsible?: boolean; + enableSaveActions?: boolean; + showLinkIframe?: boolean; + showLinkButton?: boolean; + maxWidth?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'; + alignment?: 'center' | 'left' | 'right'; + }; + creator?: NullableMinimalAccount; + createdAt: string; + updatedAt: string; + }; +}; + +export type ConvertFolderToCapsuleResponse = ConvertFolderToCapsuleResponses[keyof ConvertFolderToCapsuleResponses]; + export type CreateFolderWithThumbnailData = { body?: never; path?: never; @@ -3476,7 +3547,7 @@ export type CreateFolderWithThumbnailResponses = { [key: string]: unknown; } & { folder: { - isRoot?: boolean; + isCapsule?: boolean; }; }; /** @@ -3514,6 +3585,180 @@ export type CreateFolderWithThumbnailResponses = { export type CreateFolderWithThumbnailResponse = CreateFolderWithThumbnailResponses[keyof CreateFolderWithThumbnailResponses]; +export type CreateCapsuleData = { + body: { + name: string; + description?: null | string; + lang?: string; + /** + * Item settings + * Parameters, mostly visual, common to all types of items. + */ + settings?: { + /** + * @deprecated + */ + lang?: string; + isPinned?: boolean; + /** + * @deprecated + */ + tags?: Array; + showChatbox?: boolean; + isResizable?: boolean; + hasThumbnail?: boolean; + ccLicenseAdaption?: 'CC BY' | 'CC BY-NC' | 'CC BY-SA' | 'CC BY-NC-SA' | 'CC BY-ND' | 'CC BY-NC-ND' | 'CC0'; + displayCoEditors?: boolean; + descriptionPlacement?: 'above' | 'below'; + isCollapsible?: boolean; + enableSaveActions?: boolean; + showLinkIframe?: boolean; + showLinkButton?: boolean; + maxWidth?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'; + alignment?: 'center' | 'left' | 'right'; + }; + }; + path?: never; + query?: { + parentId?: string; + previousItemId?: string; + }; + url: '/api/items/capsules'; +}; + +export type CreateCapsuleErrors = { + /** + * Error object with useful information about the unexpected behavior that occured + */ + '4XX': _Error; +}; + +export type CreateCapsuleError = CreateCapsuleErrors[keyof CreateCapsuleErrors]; + +export type CreateCapsuleResponses = { + /** + * Default Response + */ + 200: { + id: string; + name: string; + description?: null | string; + type: string; + path: string; + lang: string; + extra: { + [key: string]: unknown; + } & { + folder: { + isCapsule?: boolean; + }; + }; + /** + * Item settings + * Parameters, mostly visual, common to all types of items. + */ + settings: { + /** + * @deprecated + */ + lang?: string; + isPinned?: boolean; + /** + * @deprecated + */ + tags?: Array; + showChatbox?: boolean; + isResizable?: boolean; + hasThumbnail?: boolean; + ccLicenseAdaption?: 'CC BY' | 'CC BY-NC' | 'CC BY-SA' | 'CC BY-NC-SA' | 'CC BY-ND' | 'CC BY-NC-ND' | 'CC0'; + displayCoEditors?: boolean; + descriptionPlacement?: 'above' | 'below'; + isCollapsible?: boolean; + enableSaveActions?: boolean; + showLinkIframe?: boolean; + showLinkButton?: boolean; + maxWidth?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'; + alignment?: 'center' | 'left' | 'right'; + }; + creator?: NullableMinimalAccount; + createdAt: string; + updatedAt: string; + }; +}; + +export type CreateCapsuleResponse = CreateCapsuleResponses[keyof CreateCapsuleResponses]; + +export type ConvertCapsuleToFolderData = { + body?: never; + path: { + id: string; + }; + query?: never; + url: '/api/items/capsules/{id}/to-folder'; +}; + +export type ConvertCapsuleToFolderErrors = { + /** + * Error object with useful information about the unexpected behavior that occured + */ + '4XX': _Error; +}; + +export type ConvertCapsuleToFolderError = ConvertCapsuleToFolderErrors[keyof ConvertCapsuleToFolderErrors]; + +export type ConvertCapsuleToFolderResponses = { + /** + * Default Response + */ + 200: { + id: string; + name: string; + description?: null | string; + type: string; + path: string; + lang: string; + extra: { + [key: string]: unknown; + } & { + folder: { + isCapsule?: boolean; + }; + }; + /** + * Item settings + * Parameters, mostly visual, common to all types of items. + */ + settings: { + /** + * @deprecated + */ + lang?: string; + isPinned?: boolean; + /** + * @deprecated + */ + tags?: Array; + showChatbox?: boolean; + isResizable?: boolean; + hasThumbnail?: boolean; + ccLicenseAdaption?: 'CC BY' | 'CC BY-NC' | 'CC BY-SA' | 'CC BY-NC-SA' | 'CC BY-ND' | 'CC BY-NC-ND' | 'CC0'; + displayCoEditors?: boolean; + descriptionPlacement?: 'above' | 'below'; + isCollapsible?: boolean; + enableSaveActions?: boolean; + showLinkIframe?: boolean; + showLinkButton?: boolean; + maxWidth?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'; + alignment?: 'center' | 'left' | 'right'; + }; + creator?: NullableMinimalAccount; + createdAt: string; + updatedAt: string; + }; +}; + +export type ConvertCapsuleToFolderResponse = ConvertCapsuleToFolderResponses[keyof ConvertCapsuleToFolderResponses]; + export type CreateAppData = { body: { name: string;