@aphexcms/cms-core 4.0.0 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/schemas/user.d.ts +10 -0
- package/dist/api/schemas/user.d.ts.map +1 -1
- package/dist/api/schemas/user.js +10 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +1 -2
- package/dist/hooks.d.ts +3 -4
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +20 -99
- package/dist/lib/api/schemas/user.d.ts +10 -0
- package/dist/lib/api/schemas/user.d.ts.map +1 -1
- package/dist/lib/api/schemas/user.js +10 -0
- package/dist/lib/api/schemas/user.js.map +1 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +1 -2
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/hooks.d.ts +3 -4
- package/dist/lib/hooks.d.ts.map +1 -1
- package/dist/lib/hooks.js +20 -99
- package/dist/lib/hooks.js.map +1 -1
- package/dist/lib/server/api/index.d.ts +55 -0
- package/dist/lib/server/api/index.d.ts.map +1 -0
- package/dist/lib/server/api/index.js +107 -0
- package/dist/lib/server/api/index.js.map +1 -0
- package/dist/lib/server/api/routes/assets-bulk.d.ts +4 -0
- package/dist/lib/server/api/routes/assets-bulk.d.ts.map +1 -0
- package/dist/{routes → lib/server/api/routes}/assets-bulk.js +23 -23
- package/dist/lib/server/api/routes/assets-bulk.js.map +1 -0
- package/dist/lib/server/api/routes/assets-by-id.d.ts +4 -0
- package/dist/lib/server/api/routes/assets-by-id.d.ts.map +1 -0
- package/dist/lib/server/api/routes/assets-by-id.js +108 -0
- package/dist/lib/server/api/routes/assets-by-id.js.map +1 -0
- package/dist/lib/server/api/routes/assets-references.d.ts +15 -0
- package/dist/lib/server/api/routes/assets-references.d.ts.map +1 -0
- package/dist/lib/server/api/routes/assets-references.js +78 -0
- package/dist/lib/server/api/routes/assets-references.js.map +1 -0
- package/dist/lib/server/api/routes/assets.d.ts +4 -0
- package/dist/lib/server/api/routes/assets.d.ts.map +1 -0
- package/dist/{routes → lib/server/api/routes}/assets.js +76 -87
- package/dist/lib/server/api/routes/assets.js.map +1 -0
- package/dist/lib/server/api/routes/document-versions.d.ts +4 -0
- package/dist/lib/server/api/routes/document-versions.d.ts.map +1 -0
- package/dist/lib/server/api/routes/document-versions.js +113 -0
- package/dist/lib/server/api/routes/document-versions.js.map +1 -0
- package/dist/lib/server/api/routes/documents-by-id.d.ts +4 -0
- package/dist/lib/server/api/routes/documents-by-id.d.ts.map +1 -0
- package/dist/lib/server/api/routes/documents-by-id.js +148 -0
- package/dist/lib/server/api/routes/documents-by-id.js.map +1 -0
- package/dist/lib/server/api/routes/documents-publish.d.ts +4 -0
- package/dist/lib/server/api/routes/documents-publish.d.ts.map +1 -0
- package/dist/{routes → lib/server/api/routes}/documents-publish.js +42 -58
- package/dist/lib/server/api/routes/documents-publish.js.map +1 -0
- package/dist/lib/server/api/routes/documents-query.d.ts +8 -0
- package/dist/lib/server/api/routes/documents-query.d.ts.map +1 -0
- package/dist/lib/server/api/routes/documents-query.js +75 -0
- package/dist/lib/server/api/routes/documents-query.js.map +1 -0
- package/dist/lib/server/api/routes/documents.d.ts +4 -0
- package/dist/lib/server/api/routes/documents.d.ts.map +1 -0
- package/dist/{routes → lib/server/api/routes}/documents.js +55 -76
- package/dist/lib/server/api/routes/documents.js.map +1 -0
- package/dist/lib/server/api/routes/organizations-by-id.d.ts +4 -0
- package/dist/lib/server/api/routes/organizations-by-id.d.ts.map +1 -0
- package/dist/{routes → lib/server/api/routes}/organizations-by-id.js +62 -91
- package/dist/lib/server/api/routes/organizations-by-id.js.map +1 -0
- package/dist/lib/server/api/routes/organizations-invitations.d.ts +10 -0
- package/dist/lib/server/api/routes/organizations-invitations.d.ts.map +1 -0
- package/dist/{routes → lib/server/api/routes}/organizations-invitations.js +67 -78
- package/dist/lib/server/api/routes/organizations-invitations.js.map +1 -0
- package/dist/lib/server/api/routes/organizations-members.d.ts +4 -0
- package/dist/lib/server/api/routes/organizations-members.d.ts.map +1 -0
- package/dist/{routes → lib/server/api/routes}/organizations-members.js +74 -106
- package/dist/lib/server/api/routes/organizations-members.js.map +1 -0
- package/dist/lib/server/api/routes/organizations-switch.d.ts +4 -0
- package/dist/lib/server/api/routes/organizations-switch.d.ts.map +1 -0
- package/dist/lib/server/api/routes/organizations-switch.js +54 -0
- package/dist/lib/server/api/routes/organizations-switch.js.map +1 -0
- package/dist/lib/server/api/routes/organizations.d.ts +4 -0
- package/dist/lib/server/api/routes/organizations.d.ts.map +1 -0
- package/dist/lib/server/api/routes/organizations.js +99 -0
- package/dist/lib/server/api/routes/organizations.js.map +1 -0
- package/dist/lib/server/api/routes/roles.d.ts +12 -0
- package/dist/lib/server/api/routes/roles.d.ts.map +1 -0
- package/dist/lib/server/api/routes/roles.js +219 -0
- package/dist/lib/server/api/routes/roles.js.map +1 -0
- package/dist/lib/server/api/routes/schemas.d.ts +4 -0
- package/dist/lib/server/api/routes/schemas.d.ts.map +1 -0
- package/dist/lib/server/api/routes/schemas.js +27 -0
- package/dist/lib/server/api/routes/schemas.js.map +1 -0
- package/dist/lib/server/api/routes/user-preferences.d.ts +4 -0
- package/dist/lib/server/api/routes/user-preferences.d.ts.map +1 -0
- package/dist/lib/server/api/routes/user-preferences.js +63 -0
- package/dist/lib/server/api/routes/user-preferences.js.map +1 -0
- package/dist/lib/server/api/routes/user.d.ts +12 -0
- package/dist/lib/server/api/routes/user.d.ts.map +1 -0
- package/dist/lib/server/api/routes/user.js +114 -0
- package/dist/lib/server/api/routes/user.js.map +1 -0
- package/dist/lib/server/index.d.ts +2 -1
- package/dist/lib/server/index.d.ts.map +1 -1
- package/dist/lib/server/index.js +7 -3
- package/dist/lib/server/index.js.map +1 -1
- package/dist/lib/types/config.d.ts +28 -29
- package/dist/lib/types/config.d.ts.map +1 -1
- package/dist/server/api/index.d.ts +55 -0
- package/dist/server/api/index.d.ts.map +1 -0
- package/dist/server/api/index.js +106 -0
- package/dist/server/api/routes/assets-bulk.d.ts +4 -0
- package/dist/server/api/routes/assets-bulk.d.ts.map +1 -0
- package/dist/{lib → server/api}/routes/assets-bulk.js +22 -24
- package/dist/server/api/routes/assets-by-id.d.ts +4 -0
- package/dist/server/api/routes/assets-by-id.d.ts.map +1 -0
- package/dist/server/api/routes/assets-by-id.js +107 -0
- package/dist/server/api/routes/assets-references.d.ts +15 -0
- package/dist/server/api/routes/assets-references.d.ts.map +1 -0
- package/dist/server/api/routes/assets-references.js +77 -0
- package/dist/server/api/routes/assets.d.ts +4 -0
- package/dist/server/api/routes/assets.d.ts.map +1 -0
- package/dist/{lib → server/api}/routes/assets.js +75 -88
- package/dist/server/api/routes/document-versions.d.ts +4 -0
- package/dist/server/api/routes/document-versions.d.ts.map +1 -0
- package/dist/server/api/routes/document-versions.js +112 -0
- package/dist/server/api/routes/documents-by-id.d.ts +4 -0
- package/dist/server/api/routes/documents-by-id.d.ts.map +1 -0
- package/dist/server/api/routes/documents-by-id.js +147 -0
- package/dist/server/api/routes/documents-publish.d.ts +4 -0
- package/dist/server/api/routes/documents-publish.d.ts.map +1 -0
- package/dist/{lib → server/api}/routes/documents-publish.js +41 -59
- package/dist/server/api/routes/documents-query.d.ts +8 -0
- package/dist/server/api/routes/documents-query.d.ts.map +1 -0
- package/dist/server/api/routes/documents-query.js +74 -0
- package/dist/server/api/routes/documents.d.ts +4 -0
- package/dist/server/api/routes/documents.d.ts.map +1 -0
- package/dist/{lib → server/api}/routes/documents.js +54 -77
- package/dist/server/api/routes/organizations-by-id.d.ts +4 -0
- package/dist/server/api/routes/organizations-by-id.d.ts.map +1 -0
- package/dist/{lib → server/api}/routes/organizations-by-id.js +61 -92
- package/dist/server/api/routes/organizations-invitations.d.ts +10 -0
- package/dist/server/api/routes/organizations-invitations.d.ts.map +1 -0
- package/dist/{lib → server/api}/routes/organizations-invitations.js +66 -79
- package/dist/server/api/routes/organizations-members.d.ts +4 -0
- package/dist/server/api/routes/organizations-members.d.ts.map +1 -0
- package/dist/{lib → server/api}/routes/organizations-members.js +73 -107
- package/dist/server/api/routes/organizations-switch.d.ts +4 -0
- package/dist/server/api/routes/organizations-switch.d.ts.map +1 -0
- package/dist/server/api/routes/organizations-switch.js +53 -0
- package/dist/server/api/routes/organizations.d.ts +4 -0
- package/dist/server/api/routes/organizations.d.ts.map +1 -0
- package/dist/server/api/routes/organizations.js +98 -0
- package/dist/server/api/routes/roles.d.ts +12 -0
- package/dist/server/api/routes/roles.d.ts.map +1 -0
- package/dist/server/api/routes/roles.js +218 -0
- package/dist/server/api/routes/schemas.d.ts +4 -0
- package/dist/server/api/routes/schemas.d.ts.map +1 -0
- package/dist/server/api/routes/schemas.js +26 -0
- package/dist/server/api/routes/user-preferences.d.ts +4 -0
- package/dist/server/api/routes/user-preferences.d.ts.map +1 -0
- package/dist/server/api/routes/user-preferences.js +62 -0
- package/dist/server/api/routes/user.d.ts +12 -0
- package/dist/server/api/routes/user.d.ts.map +1 -0
- package/dist/server/api/routes/user.js +113 -0
- package/dist/server/index.d.ts +2 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +7 -3
- package/dist/types/config.d.ts +28 -29
- package/dist/types/config.d.ts.map +1 -1
- package/package.json +4 -2
- package/dist/lib/routes/assets-bulk.d.ts +0 -3
- package/dist/lib/routes/assets-bulk.d.ts.map +0 -1
- package/dist/lib/routes/assets-bulk.js.map +0 -1
- package/dist/lib/routes/assets-by-id.d.ts +0 -5
- package/dist/lib/routes/assets-by-id.d.ts.map +0 -1
- package/dist/lib/routes/assets-by-id.js +0 -116
- package/dist/lib/routes/assets-by-id.js.map +0 -1
- package/dist/lib/routes/assets-references-counts.d.ts +0 -7
- package/dist/lib/routes/assets-references-counts.d.ts.map +0 -1
- package/dist/lib/routes/assets-references-counts.js +0 -42
- package/dist/lib/routes/assets-references-counts.js.map +0 -1
- package/dist/lib/routes/assets-references.d.ts +0 -7
- package/dist/lib/routes/assets-references.d.ts.map +0 -1
- package/dist/lib/routes/assets-references.js +0 -35
- package/dist/lib/routes/assets-references.js.map +0 -1
- package/dist/lib/routes/assets.d.ts +0 -4
- package/dist/lib/routes/assets.d.ts.map +0 -1
- package/dist/lib/routes/assets.js.map +0 -1
- package/dist/lib/routes/document-versions.d.ts +0 -5
- package/dist/lib/routes/document-versions.d.ts.map +0 -1
- package/dist/lib/routes/document-versions.js +0 -114
- package/dist/lib/routes/document-versions.js.map +0 -1
- package/dist/lib/routes/documents-by-id.d.ts +0 -5
- package/dist/lib/routes/documents-by-id.d.ts.map +0 -1
- package/dist/lib/routes/documents-by-id.js +0 -188
- package/dist/lib/routes/documents-by-id.js.map +0 -1
- package/dist/lib/routes/documents-publish.d.ts +0 -4
- package/dist/lib/routes/documents-publish.d.ts.map +0 -1
- package/dist/lib/routes/documents-publish.js.map +0 -1
- package/dist/lib/routes/documents-query.d.ts +0 -26
- package/dist/lib/routes/documents-query.d.ts.map +0 -1
- package/dist/lib/routes/documents-query.js +0 -104
- package/dist/lib/routes/documents-query.js.map +0 -1
- package/dist/lib/routes/documents.d.ts +0 -4
- package/dist/lib/routes/documents.d.ts.map +0 -1
- package/dist/lib/routes/documents.js.map +0 -1
- package/dist/lib/routes/index.d.ts +0 -9
- package/dist/lib/routes/index.d.ts.map +0 -1
- package/dist/lib/routes/index.js +0 -15
- package/dist/lib/routes/index.js.map +0 -1
- package/dist/lib/routes/organizations-by-id.d.ts +0 -5
- package/dist/lib/routes/organizations-by-id.d.ts.map +0 -1
- package/dist/lib/routes/organizations-by-id.js.map +0 -1
- package/dist/lib/routes/organizations-invitations.d.ts +0 -4
- package/dist/lib/routes/organizations-invitations.d.ts.map +0 -1
- package/dist/lib/routes/organizations-invitations.js.map +0 -1
- package/dist/lib/routes/organizations-members.d.ts +0 -5
- package/dist/lib/routes/organizations-members.d.ts.map +0 -1
- package/dist/lib/routes/organizations-members.js.map +0 -1
- package/dist/lib/routes/organizations-switch.d.ts +0 -3
- package/dist/lib/routes/organizations-switch.d.ts.map +0 -1
- package/dist/lib/routes/organizations-switch.js +0 -59
- package/dist/lib/routes/organizations-switch.js.map +0 -1
- package/dist/lib/routes/organizations.d.ts +0 -4
- package/dist/lib/routes/organizations.d.ts.map +0 -1
- package/dist/lib/routes/organizations.js +0 -117
- package/dist/lib/routes/organizations.js.map +0 -1
- package/dist/lib/routes/roles-by-name.d.ts +0 -4
- package/dist/lib/routes/roles-by-name.d.ts.map +0 -1
- package/dist/lib/routes/roles-by-name.js +0 -112
- package/dist/lib/routes/roles-by-name.js.map +0 -1
- package/dist/lib/routes/roles.d.ts +0 -4
- package/dist/lib/routes/roles.d.ts.map +0 -1
- package/dist/lib/routes/roles.js +0 -91
- package/dist/lib/routes/roles.js.map +0 -1
- package/dist/lib/routes/schemas-by-type.d.ts +0 -3
- package/dist/lib/routes/schemas-by-type.d.ts.map +0 -1
- package/dist/lib/routes/schemas-by-type.js +0 -27
- package/dist/lib/routes/schemas-by-type.js.map +0 -1
- package/dist/lib/routes/schemas.d.ts +0 -3
- package/dist/lib/routes/schemas.d.ts.map +0 -1
- package/dist/lib/routes/schemas.js +0 -12
- package/dist/lib/routes/schemas.js.map +0 -1
- package/dist/lib/routes/user-preferences.d.ts +0 -4
- package/dist/lib/routes/user-preferences.d.ts.map +0 -1
- package/dist/lib/routes/user-preferences.js +0 -73
- package/dist/lib/routes/user-preferences.js.map +0 -1
- package/dist/lib/routes-exports.d.ts +0 -20
- package/dist/lib/routes-exports.d.ts.map +0 -1
- package/dist/lib/routes-exports.js +0 -27
- package/dist/lib/routes-exports.js.map +0 -1
- package/dist/routes/assets-bulk.d.ts +0 -3
- package/dist/routes/assets-bulk.d.ts.map +0 -1
- package/dist/routes/assets-by-id.d.ts +0 -5
- package/dist/routes/assets-by-id.d.ts.map +0 -1
- package/dist/routes/assets-by-id.js +0 -115
- package/dist/routes/assets-references-counts.d.ts +0 -7
- package/dist/routes/assets-references-counts.d.ts.map +0 -1
- package/dist/routes/assets-references-counts.js +0 -41
- package/dist/routes/assets-references.d.ts +0 -7
- package/dist/routes/assets-references.d.ts.map +0 -1
- package/dist/routes/assets-references.js +0 -34
- package/dist/routes/assets.d.ts +0 -4
- package/dist/routes/assets.d.ts.map +0 -1
- package/dist/routes/document-versions.d.ts +0 -5
- package/dist/routes/document-versions.d.ts.map +0 -1
- package/dist/routes/document-versions.js +0 -113
- package/dist/routes/documents-by-id.d.ts +0 -5
- package/dist/routes/documents-by-id.d.ts.map +0 -1
- package/dist/routes/documents-by-id.js +0 -187
- package/dist/routes/documents-publish.d.ts +0 -4
- package/dist/routes/documents-publish.d.ts.map +0 -1
- package/dist/routes/documents-query.d.ts +0 -26
- package/dist/routes/documents-query.d.ts.map +0 -1
- package/dist/routes/documents-query.js +0 -103
- package/dist/routes/documents.d.ts +0 -4
- package/dist/routes/documents.d.ts.map +0 -1
- package/dist/routes/index.d.ts +0 -9
- package/dist/routes/index.d.ts.map +0 -1
- package/dist/routes/index.js +0 -14
- package/dist/routes/organizations-by-id.d.ts +0 -5
- package/dist/routes/organizations-by-id.d.ts.map +0 -1
- package/dist/routes/organizations-invitations.d.ts +0 -4
- package/dist/routes/organizations-invitations.d.ts.map +0 -1
- package/dist/routes/organizations-members.d.ts +0 -5
- package/dist/routes/organizations-members.d.ts.map +0 -1
- package/dist/routes/organizations-switch.d.ts +0 -3
- package/dist/routes/organizations-switch.d.ts.map +0 -1
- package/dist/routes/organizations-switch.js +0 -58
- package/dist/routes/organizations.d.ts +0 -4
- package/dist/routes/organizations.d.ts.map +0 -1
- package/dist/routes/organizations.js +0 -116
- package/dist/routes/roles-by-name.d.ts +0 -4
- package/dist/routes/roles-by-name.d.ts.map +0 -1
- package/dist/routes/roles-by-name.js +0 -111
- package/dist/routes/roles.d.ts +0 -4
- package/dist/routes/roles.d.ts.map +0 -1
- package/dist/routes/roles.js +0 -90
- package/dist/routes/schemas-by-type.d.ts +0 -3
- package/dist/routes/schemas-by-type.d.ts.map +0 -1
- package/dist/routes/schemas-by-type.js +0 -26
- package/dist/routes/schemas.d.ts +0 -3
- package/dist/routes/schemas.d.ts.map +0 -1
- package/dist/routes/schemas.js +0 -11
- package/dist/routes/user-preferences.d.ts +0 -4
- package/dist/routes/user-preferences.d.ts.map +0 -1
- package/dist/routes/user-preferences.js +0 -72
- package/dist/routes-exports.d.ts +0 -20
- package/dist/routes-exports.d.ts.map +0 -1
- package/dist/routes-exports.js +0 -26
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
import { json } from '@sveltejs/kit';
|
|
2
|
-
import { cmsLogger } from '../utils/logger.js';
|
|
3
|
-
import { updateAssetRequest } from '../api/schemas/assets.js';
|
|
4
|
-
export const GET = async ({ params, locals }) => {
|
|
5
|
-
try {
|
|
6
|
-
const { assetService } = locals.aphexCMS;
|
|
7
|
-
const auth = locals.auth;
|
|
8
|
-
const { id } = params;
|
|
9
|
-
if (!auth || auth.type === 'partial_session') {
|
|
10
|
-
return json({ success: false, error: 'Unauthorized' }, { status: 401 });
|
|
11
|
-
}
|
|
12
|
-
if (!id) {
|
|
13
|
-
return json({ success: false, error: 'Asset ID is required' }, { status: 400 });
|
|
14
|
-
}
|
|
15
|
-
const asset = await assetService.findAssetById(auth.organizationId, id);
|
|
16
|
-
if (!asset) {
|
|
17
|
-
return json({ success: false, error: 'Asset not found' }, { status: 404 });
|
|
18
|
-
}
|
|
19
|
-
// Return asset data consistent with list endpoint
|
|
20
|
-
return json({
|
|
21
|
-
success: true,
|
|
22
|
-
data: asset
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
catch (error) {
|
|
26
|
-
cmsLogger.error('[Asset API] Error fetching asset:', error);
|
|
27
|
-
return json({ success: false, error: 'Failed to fetch asset' }, { status: 500 });
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
export const DELETE = async ({ params, locals }) => {
|
|
31
|
-
try {
|
|
32
|
-
const { id } = params;
|
|
33
|
-
const { assetService, databaseAdapter } = locals.aphexCMS;
|
|
34
|
-
const auth = locals.auth;
|
|
35
|
-
if (!auth || auth.type === 'partial_session') {
|
|
36
|
-
return json({ success: false, error: 'Unauthorized' }, { status: 401 });
|
|
37
|
-
}
|
|
38
|
-
if (!id) {
|
|
39
|
-
return json({ success: false, error: 'Asset ID is required' }, { status: 400 });
|
|
40
|
-
}
|
|
41
|
-
// Check for document references before deleting
|
|
42
|
-
if (databaseAdapter.findDocumentsReferencingAsset) {
|
|
43
|
-
const refs = await databaseAdapter.findDocumentsReferencingAsset(auth.organizationId, id);
|
|
44
|
-
if (refs.length > 0) {
|
|
45
|
-
return json({
|
|
46
|
-
success: false,
|
|
47
|
-
error: `Cannot delete asset — it is referenced by ${refs.length} document${refs.length > 1 ? 's' : ''}`
|
|
48
|
-
}, { status: 409 });
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
const result = await assetService.deleteAsset(auth.organizationId, id);
|
|
52
|
-
if (!result) {
|
|
53
|
-
return json({ success: false, error: 'Asset not found or could not be deleted' }, { status: 404 });
|
|
54
|
-
}
|
|
55
|
-
return json({ success: true });
|
|
56
|
-
}
|
|
57
|
-
catch (error) {
|
|
58
|
-
cmsLogger.error('Error deleting asset:', error);
|
|
59
|
-
return json({ success: false, error: 'Failed to delete asset' }, { status: 500 });
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
export const PATCH = async ({ params, locals, request }) => {
|
|
63
|
-
try {
|
|
64
|
-
const { assetService } = locals.aphexCMS;
|
|
65
|
-
const auth = locals.auth;
|
|
66
|
-
const { id } = params;
|
|
67
|
-
if (!auth || auth.type === 'partial_session') {
|
|
68
|
-
return json({ success: false, error: 'Unauthorized' }, { status: 401 });
|
|
69
|
-
}
|
|
70
|
-
if (!id) {
|
|
71
|
-
return json({ success: false, error: 'Asset ID is required' }, { status: 400 });
|
|
72
|
-
}
|
|
73
|
-
const rawBody = await request.json();
|
|
74
|
-
const parsed = updateAssetRequest.safeParse(rawBody);
|
|
75
|
-
if (!parsed.success) {
|
|
76
|
-
return json({
|
|
77
|
-
success: false,
|
|
78
|
-
error: 'Invalid request body',
|
|
79
|
-
issues: parsed.error.issues
|
|
80
|
-
}, { status: 400 });
|
|
81
|
-
}
|
|
82
|
-
const { title, description, alt, creditLine } = parsed.data;
|
|
83
|
-
let updatedAsset;
|
|
84
|
-
if (auth.type == 'session') {
|
|
85
|
-
updatedAsset = await assetService.updateAssetMetadata(auth.organizationId, id, {
|
|
86
|
-
title,
|
|
87
|
-
description,
|
|
88
|
-
alt,
|
|
89
|
-
creditLine,
|
|
90
|
-
updatedBy: auth.user.id
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
94
|
-
updatedAsset = await assetService.updateAssetMetadata(auth.organizationId, id, {
|
|
95
|
-
title,
|
|
96
|
-
description,
|
|
97
|
-
alt,
|
|
98
|
-
creditLine,
|
|
99
|
-
updatedBy: auth.keyId
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
if (!updatedAsset) {
|
|
103
|
-
return json({ success: false, error: 'Asset not found' }, { status: 404 });
|
|
104
|
-
}
|
|
105
|
-
// Return updated asset data consistent with list endpoint
|
|
106
|
-
return json({
|
|
107
|
-
success: true,
|
|
108
|
-
data: updatedAsset
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
catch (error) {
|
|
112
|
-
cmsLogger.error('Error updating asset:', error);
|
|
113
|
-
return json({ success: false, error: 'Failed to update asset' }, { status: 500 });
|
|
114
|
-
}
|
|
115
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"assets-references-counts.d.ts","sourceRoot":"","sources":["../../src/lib/routes/assets-references-counts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAIpD;;;GAGG;AACH,eAAO,MAAM,IAAI,EAAE,cAwClB,CAAC"}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { json } from '@sveltejs/kit';
|
|
2
|
-
import { cmsLogger } from '../utils/logger.js';
|
|
3
|
-
import { assetReferenceCountsRequest } from '../api/schemas/assets.js';
|
|
4
|
-
/**
|
|
5
|
-
* POST /api/assets/references/counts
|
|
6
|
-
* Get reference counts for multiple asset IDs in batch
|
|
7
|
-
*/
|
|
8
|
-
export const POST = async ({ request, locals }) => {
|
|
9
|
-
try {
|
|
10
|
-
const { databaseAdapter } = locals.aphexCMS;
|
|
11
|
-
const auth = locals.auth;
|
|
12
|
-
if (!auth || auth.type === 'partial_session') {
|
|
13
|
-
return json({ success: false, error: 'Unauthorized' }, { status: 401 });
|
|
14
|
-
}
|
|
15
|
-
const rawBody = await request.json();
|
|
16
|
-
const parsed = assetReferenceCountsRequest.safeParse(rawBody);
|
|
17
|
-
if (!parsed.success) {
|
|
18
|
-
return json({
|
|
19
|
-
success: false,
|
|
20
|
-
error: 'Invalid request body',
|
|
21
|
-
issues: parsed.error.issues
|
|
22
|
-
}, { status: 400 });
|
|
23
|
-
}
|
|
24
|
-
const { ids } = parsed.data;
|
|
25
|
-
if (ids.length === 0) {
|
|
26
|
-
return json({ success: true, data: {} });
|
|
27
|
-
}
|
|
28
|
-
if (!databaseAdapter.countDocumentReferencesForAssets) {
|
|
29
|
-
const counts = {};
|
|
30
|
-
for (const id of ids)
|
|
31
|
-
counts[id] = 0;
|
|
32
|
-
return json({ success: true, data: counts });
|
|
33
|
-
}
|
|
34
|
-
const counts = await databaseAdapter.countDocumentReferencesForAssets(auth.organizationId, ids);
|
|
35
|
-
return json({ success: true, data: counts });
|
|
36
|
-
}
|
|
37
|
-
catch (error) {
|
|
38
|
-
cmsLogger.error('Failed to count asset references:', error);
|
|
39
|
-
return json({ success: false, error: 'Failed to count asset references' }, { status: 500 });
|
|
40
|
-
}
|
|
41
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"assets-references.d.ts","sourceRoot":"","sources":["../../src/lib/routes/assets-references.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGpD;;;GAGG;AACH,eAAO,MAAM,GAAG,EAAE,cA+BjB,CAAC"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { json } from '@sveltejs/kit';
|
|
2
|
-
import { cmsLogger } from '../utils/logger.js';
|
|
3
|
-
/**
|
|
4
|
-
* GET /api/assets/:id/references
|
|
5
|
-
* Find documents that reference a specific asset
|
|
6
|
-
*/
|
|
7
|
-
export const GET = async ({ params, locals }) => {
|
|
8
|
-
try {
|
|
9
|
-
const { databaseAdapter } = locals.aphexCMS;
|
|
10
|
-
const auth = locals.auth;
|
|
11
|
-
if (!auth || auth.type === 'partial_session') {
|
|
12
|
-
return json({ success: false, error: 'Unauthorized' }, { status: 401 });
|
|
13
|
-
}
|
|
14
|
-
const { id } = params;
|
|
15
|
-
if (!id) {
|
|
16
|
-
return json({ success: false, error: 'Asset ID is required' }, { status: 400 });
|
|
17
|
-
}
|
|
18
|
-
if (!databaseAdapter.findDocumentsReferencingAsset) {
|
|
19
|
-
return json({ success: true, data: { references: [], total: 0 } });
|
|
20
|
-
}
|
|
21
|
-
const references = await databaseAdapter.findDocumentsReferencingAsset(auth.organizationId, id);
|
|
22
|
-
return json({
|
|
23
|
-
success: true,
|
|
24
|
-
data: {
|
|
25
|
-
references,
|
|
26
|
-
total: references.length
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
catch (error) {
|
|
31
|
-
cmsLogger.error('Failed to find asset references:', error);
|
|
32
|
-
return json({ success: false, error: 'Failed to find asset references' }, { status: 500 });
|
|
33
|
-
}
|
|
34
|
-
};
|
package/dist/routes/assets.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../src/lib/routes/assets.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAKpD,eAAO,MAAM,IAAI,EAAE,cAuFlB,CAAC;AAEF,eAAO,MAAM,GAAG,EAAE,cAmEjB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"document-versions.d.ts","sourceRoot":"","sources":["../../src/lib/routes/document-versions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAMpD,eAAO,MAAM,GAAG,EAAE,cAqEjB,CAAC;AAGF,eAAO,MAAM,UAAU,EAAE,cAkCxB,CAAC;AAGF,eAAO,MAAM,cAAc,EAAE,cA0C5B,CAAC"}
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
// Aphex CMS Document Version API Handlers
|
|
2
|
-
import { json } from '@sveltejs/kit';
|
|
3
|
-
import { authToContext } from '../local-api/auth-helpers.js';
|
|
4
|
-
import { cmsLogger } from '../utils/logger.js';
|
|
5
|
-
import { listVersionsQuery } from '../api/schemas/documents.js';
|
|
6
|
-
// GET /api/documents/[id]/versions - List version history
|
|
7
|
-
export const GET = async ({ params, url, locals }) => {
|
|
8
|
-
try {
|
|
9
|
-
const { localAPI, databaseAdapter } = locals.aphexCMS;
|
|
10
|
-
const context = authToContext(locals.auth);
|
|
11
|
-
const { id } = params;
|
|
12
|
-
if (!id) {
|
|
13
|
-
return json({ success: false, error: 'Document ID is required' }, { status: 400 });
|
|
14
|
-
}
|
|
15
|
-
const parsedQuery = listVersionsQuery.safeParse(Object.fromEntries(url.searchParams.entries()));
|
|
16
|
-
if (!parsedQuery.success) {
|
|
17
|
-
return json({
|
|
18
|
-
success: false,
|
|
19
|
-
error: 'Invalid query parameters',
|
|
20
|
-
issues: parsedQuery.error.issues
|
|
21
|
-
}, { status: 400 });
|
|
22
|
-
}
|
|
23
|
-
const limit = parsedQuery.data.limit ?? 25;
|
|
24
|
-
const offset = parsedQuery.data.offset ?? 0;
|
|
25
|
-
const result = await localAPI.versionService.listVersions(databaseAdapter, context.organizationId, id, { limit, offset });
|
|
26
|
-
// Resolve user names for createdBy IDs
|
|
27
|
-
const userIds = [...new Set(result.versions.map((v) => v.createdBy).filter(Boolean))];
|
|
28
|
-
const userMap = new Map();
|
|
29
|
-
if (userIds.length > 0 && locals.aphexCMS.auth) {
|
|
30
|
-
await Promise.all(userIds.map(async (userId) => {
|
|
31
|
-
// API key actions are stored as "apikey:<id>" — resolve to a friendly label
|
|
32
|
-
if (userId.startsWith('apikey:')) {
|
|
33
|
-
userMap.set(userId, 'API Key');
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
try {
|
|
37
|
-
const user = await locals.aphexCMS.auth.getUserById(userId);
|
|
38
|
-
if (user) {
|
|
39
|
-
userMap.set(userId, user.name || user.email);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
catch {
|
|
43
|
-
// User not found — skip
|
|
44
|
-
}
|
|
45
|
-
}));
|
|
46
|
-
}
|
|
47
|
-
const versionsWithUsers = result.versions.map((v) => ({
|
|
48
|
-
...v,
|
|
49
|
-
createdByName: v.createdBy ? userMap.get(v.createdBy) || null : null
|
|
50
|
-
}));
|
|
51
|
-
return json({
|
|
52
|
-
success: true,
|
|
53
|
-
data: versionsWithUsers,
|
|
54
|
-
total: result.total
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
catch (error) {
|
|
58
|
-
cmsLogger.error('Failed to list document versions:', error);
|
|
59
|
-
return json({ success: false, error: 'Failed to list versions' }, { status: 500 });
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
// GET /api/documents/[id]/versions/[version] - Get specific version
|
|
63
|
-
export const getVersion = async ({ params, locals }) => {
|
|
64
|
-
try {
|
|
65
|
-
const { localAPI, databaseAdapter } = locals.aphexCMS;
|
|
66
|
-
const context = authToContext(locals.auth);
|
|
67
|
-
const { id, version } = params;
|
|
68
|
-
if (!id || !version) {
|
|
69
|
-
return json({ success: false, error: 'Document ID and version number are required' }, { status: 400 });
|
|
70
|
-
}
|
|
71
|
-
const versionNumber = parseInt(version);
|
|
72
|
-
if (isNaN(versionNumber)) {
|
|
73
|
-
return json({ success: false, error: 'Version must be a number' }, { status: 400 });
|
|
74
|
-
}
|
|
75
|
-
const result = await localAPI.versionService.getVersion(databaseAdapter, context.organizationId, id, versionNumber);
|
|
76
|
-
if (!result) {
|
|
77
|
-
return json({ success: false, error: 'Version not found' }, { status: 404 });
|
|
78
|
-
}
|
|
79
|
-
return json({ success: true, data: result });
|
|
80
|
-
}
|
|
81
|
-
catch (error) {
|
|
82
|
-
cmsLogger.error('Failed to get document version:', error);
|
|
83
|
-
return json({ success: false, error: 'Failed to get version' }, { status: 500 });
|
|
84
|
-
}
|
|
85
|
-
};
|
|
86
|
-
// POST /api/documents/[id]/versions/[version]/restore - Restore version to draft
|
|
87
|
-
export const restoreVersion = async ({ params, locals }) => {
|
|
88
|
-
try {
|
|
89
|
-
const { localAPI, databaseAdapter } = locals.aphexCMS;
|
|
90
|
-
const context = authToContext(locals.auth);
|
|
91
|
-
const { id, version } = params;
|
|
92
|
-
if (!id || !version) {
|
|
93
|
-
return json({ success: false, error: 'Document ID and version number are required' }, { status: 400 });
|
|
94
|
-
}
|
|
95
|
-
const versionNumber = parseInt(version);
|
|
96
|
-
if (isNaN(versionNumber)) {
|
|
97
|
-
return json({ success: false, error: 'Version must be a number' }, { status: 400 });
|
|
98
|
-
}
|
|
99
|
-
const document = await localAPI.versionService.restoreVersion(databaseAdapter, context.organizationId, id, versionNumber, context.user?.id);
|
|
100
|
-
if (!document) {
|
|
101
|
-
return json({ success: false, error: 'Version not found or restore failed' }, { status: 404 });
|
|
102
|
-
}
|
|
103
|
-
return json({
|
|
104
|
-
success: true,
|
|
105
|
-
data: document,
|
|
106
|
-
message: `Restored to version ${versionNumber}`
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
catch (error) {
|
|
110
|
-
cmsLogger.error('Failed to restore document version:', error);
|
|
111
|
-
return json({ success: false, error: 'Failed to restore version' }, { status: 500 });
|
|
112
|
-
}
|
|
113
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"documents-by-id.d.ts","sourceRoot":"","sources":["../../src/lib/routes/documents-by-id.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAQpD,eAAO,MAAM,GAAG,EAAE,cAuEjB,CAAC;AAIF,eAAO,MAAM,GAAG,EAAE,cAiGjB,CAAC;AAGF,eAAO,MAAM,MAAM,EAAE,cA+DpB,CAAC"}
|
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
// Aphex CMS Document by ID API Handlers
|
|
2
|
-
import { json } from '@sveltejs/kit';
|
|
3
|
-
import { authToContext } from '../local-api/auth-helpers.js';
|
|
4
|
-
import { PermissionError } from '../local-api/permissions.js';
|
|
5
|
-
import { cmsLogger } from '../utils/logger.js';
|
|
6
|
-
import { updateDocumentRequest } from '../api/schemas/documents.js';
|
|
7
|
-
// GET /api/documents/[id] - Get document by ID
|
|
8
|
-
// TODO ENABLE CHILDREN ORG ACCESS BY DEFAULT - BECAUSE IF A PARENT ORG IS TRYING TO ACCESS A CHILD ORG. It should already have access to said id.
|
|
9
|
-
export const GET = async ({ params, url, locals }) => {
|
|
10
|
-
try {
|
|
11
|
-
const { localAPI } = locals.aphexCMS;
|
|
12
|
-
const context = authToContext(locals.auth);
|
|
13
|
-
const { id } = params;
|
|
14
|
-
if (!id) {
|
|
15
|
-
return json({ success: false, error: 'Document ID is required' }, { status: 400 });
|
|
16
|
-
}
|
|
17
|
-
// Parse query params
|
|
18
|
-
const depthParam = url.searchParams.get('depth');
|
|
19
|
-
const depth = depthParam ? Math.max(0, Math.min(parseInt(depthParam), 5)) : 0;
|
|
20
|
-
const perspective = url.searchParams.get('perspective') || 'draft';
|
|
21
|
-
// First, fetch document to get its type (uses hierarchy-aware lookup, no RLS transaction)
|
|
22
|
-
const result = await localAPI.findDocumentById(context, id);
|
|
23
|
-
if (!result) {
|
|
24
|
-
return json({ success: false, error: 'Document not found' }, { status: 404 });
|
|
25
|
-
}
|
|
26
|
-
// Get collection API (TypeScript-safe)
|
|
27
|
-
const collection = localAPI.collections[result.type];
|
|
28
|
-
if (!collection) {
|
|
29
|
-
return json({
|
|
30
|
-
success: false,
|
|
31
|
-
error: 'Invalid document type',
|
|
32
|
-
message: `Collection '${result.type}' not found`
|
|
33
|
-
}, { status: 400 });
|
|
34
|
-
}
|
|
35
|
-
// Now use LocalAPI for permission-checked retrieval
|
|
36
|
-
const document = await collection.findByID(context, id, {
|
|
37
|
-
depth,
|
|
38
|
-
perspective
|
|
39
|
-
});
|
|
40
|
-
if (!document) {
|
|
41
|
-
return json({ success: false, error: 'Document not found' }, { status: 404 });
|
|
42
|
-
}
|
|
43
|
-
return json({
|
|
44
|
-
success: true,
|
|
45
|
-
data: document
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
catch (error) {
|
|
49
|
-
cmsLogger.error('Failed to fetch document:', error);
|
|
50
|
-
if (error instanceof PermissionError) {
|
|
51
|
-
return json({
|
|
52
|
-
success: false,
|
|
53
|
-
error: 'Forbidden',
|
|
54
|
-
message: error.message
|
|
55
|
-
}, { status: 403 });
|
|
56
|
-
}
|
|
57
|
-
return json({
|
|
58
|
-
success: false,
|
|
59
|
-
error: 'Failed to fetch document',
|
|
60
|
-
message: error instanceof Error ? error.message : 'Unknown error'
|
|
61
|
-
}, { status: 500 });
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
|
-
// PUT /api/documents/[id] - Update document
|
|
65
|
-
// TODO ENABLE CHILDREN ORG ACCESS BY DEFAULT - BECAUSE IF A PARENT ORG IS TRYING TO ACCESS A CHILD ORG. It should already have access to said id.
|
|
66
|
-
export const PUT = async ({ params, request, locals }) => {
|
|
67
|
-
try {
|
|
68
|
-
const { localAPI } = locals.aphexCMS;
|
|
69
|
-
const context = authToContext(locals.auth);
|
|
70
|
-
const { id } = params;
|
|
71
|
-
if (!id) {
|
|
72
|
-
return json({ success: false, error: 'Document ID is required' }, { status: 400 });
|
|
73
|
-
}
|
|
74
|
-
const rawBody = await request.json();
|
|
75
|
-
const parsed = updateDocumentRequest.safeParse(rawBody);
|
|
76
|
-
if (!parsed.success) {
|
|
77
|
-
return json({
|
|
78
|
-
success: false,
|
|
79
|
-
error: 'Invalid request body',
|
|
80
|
-
issues: parsed.error.issues
|
|
81
|
-
}, { status: 400 });
|
|
82
|
-
}
|
|
83
|
-
const documentData = parsed.data.draftData ?? parsed.data.data;
|
|
84
|
-
if (!documentData) {
|
|
85
|
-
return json({ success: false, error: 'Document data is required' }, { status: 400 });
|
|
86
|
-
}
|
|
87
|
-
const shouldPublish = parsed.data.publish ?? false;
|
|
88
|
-
// Fetch document to get its type (hierarchy-aware, no RLS transaction)
|
|
89
|
-
const found = await localAPI.findDocumentById(context, id);
|
|
90
|
-
if (!found) {
|
|
91
|
-
return json({ success: false, error: 'Document not found' }, { status: 404 });
|
|
92
|
-
}
|
|
93
|
-
// Get collection API (TypeScript-safe)
|
|
94
|
-
const collection = localAPI.collections[found.type];
|
|
95
|
-
if (!collection) {
|
|
96
|
-
return json({
|
|
97
|
-
success: false,
|
|
98
|
-
error: 'Invalid document type',
|
|
99
|
-
message: `Collection '${found.type}' not found`
|
|
100
|
-
}, { status: 400 });
|
|
101
|
-
}
|
|
102
|
-
// Update via LocalAPI (permission checks and validation happen inside)
|
|
103
|
-
const result = await collection.update(context, id, documentData, {
|
|
104
|
-
publish: shouldPublish
|
|
105
|
-
});
|
|
106
|
-
if (!result) {
|
|
107
|
-
return json({ success: false, error: 'Document not found' }, { status: 404 });
|
|
108
|
-
}
|
|
109
|
-
return json({
|
|
110
|
-
success: true,
|
|
111
|
-
data: result.document,
|
|
112
|
-
validation: result.validation
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
catch (error) {
|
|
116
|
-
cmsLogger.error('Failed to update document:', error);
|
|
117
|
-
if (error instanceof PermissionError) {
|
|
118
|
-
return json({
|
|
119
|
-
success: false,
|
|
120
|
-
error: 'Forbidden',
|
|
121
|
-
message: error.message
|
|
122
|
-
}, { status: 403 });
|
|
123
|
-
}
|
|
124
|
-
// Validation errors from publish attempts
|
|
125
|
-
if (error instanceof Error && error.message.includes('validation errors')) {
|
|
126
|
-
return json({
|
|
127
|
-
success: false,
|
|
128
|
-
error: 'Validation failed',
|
|
129
|
-
message: error.message
|
|
130
|
-
}, { status: 400 });
|
|
131
|
-
}
|
|
132
|
-
return json({
|
|
133
|
-
success: false,
|
|
134
|
-
error: 'Failed to update document',
|
|
135
|
-
message: error instanceof Error ? error.message : 'Unknown error'
|
|
136
|
-
}, { status: 500 });
|
|
137
|
-
}
|
|
138
|
-
};
|
|
139
|
-
// DELETE /api/documents/[id] - Delete document
|
|
140
|
-
export const DELETE = async ({ params, locals }) => {
|
|
141
|
-
try {
|
|
142
|
-
const { localAPI } = locals.aphexCMS;
|
|
143
|
-
const context = authToContext(locals.auth);
|
|
144
|
-
const { id } = params;
|
|
145
|
-
if (!id) {
|
|
146
|
-
return json({ success: false, error: 'Document ID is required' }, { status: 400 });
|
|
147
|
-
}
|
|
148
|
-
// Fetch document to get its type (hierarchy-aware, no RLS transaction)
|
|
149
|
-
const result = await localAPI.findDocumentById(context, id);
|
|
150
|
-
if (!result) {
|
|
151
|
-
return json({ success: false, error: 'Document not found' }, { status: 404 });
|
|
152
|
-
}
|
|
153
|
-
// Get collection API (TypeScript-safe)
|
|
154
|
-
const collection = localAPI.collections[result.type];
|
|
155
|
-
if (!collection) {
|
|
156
|
-
return json({
|
|
157
|
-
success: false,
|
|
158
|
-
error: 'Invalid document type',
|
|
159
|
-
message: `Collection '${result.type}' not found`
|
|
160
|
-
}, { status: 400 });
|
|
161
|
-
}
|
|
162
|
-
// Delete via LocalAPI (permission checks happen inside)
|
|
163
|
-
const success = await collection.delete(context, id);
|
|
164
|
-
if (!success) {
|
|
165
|
-
return json({ success: false, error: 'Document not found' }, { status: 404 });
|
|
166
|
-
}
|
|
167
|
-
return json({
|
|
168
|
-
success: true,
|
|
169
|
-
message: 'Document deleted successfully'
|
|
170
|
-
});
|
|
171
|
-
}
|
|
172
|
-
catch (error) {
|
|
173
|
-
cmsLogger.error('Failed to delete document:', error);
|
|
174
|
-
if (error instanceof PermissionError) {
|
|
175
|
-
return json({
|
|
176
|
-
success: false,
|
|
177
|
-
error: 'Forbidden',
|
|
178
|
-
message: error.message
|
|
179
|
-
}, { status: 403 });
|
|
180
|
-
}
|
|
181
|
-
return json({
|
|
182
|
-
success: false,
|
|
183
|
-
error: 'Failed to delete document',
|
|
184
|
-
message: error instanceof Error ? error.message : 'Unknown error'
|
|
185
|
-
}, { status: 500 });
|
|
186
|
-
}
|
|
187
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"documents-publish.d.ts","sourceRoot":"","sources":["../../src/lib/routes/documents-publish.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAMpD,eAAO,MAAM,IAAI,EAAE,cAiGlB,CAAC;AAGF,eAAO,MAAM,MAAM,EAAE,cAqFpB,CAAC"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import type { RequestHandler } from '@sveltejs/kit';
|
|
2
|
-
/**
|
|
3
|
-
* POST /api/documents/query - Advanced document querying with complex filters
|
|
4
|
-
*
|
|
5
|
-
* Accepts LocalAPI FindOptions in request body for full filtering power
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* POST /api/documents/query
|
|
9
|
-
* {
|
|
10
|
-
* "type": "page",
|
|
11
|
-
* "where": {
|
|
12
|
-
* "status": { "equals": "published" },
|
|
13
|
-
* "hero.heading": { "contains": "Welcome" },
|
|
14
|
-
* "publishedAt": { "gte": "2024-01-01" }
|
|
15
|
-
* },
|
|
16
|
-
* "limit": 20,
|
|
17
|
-
* "page": 1,
|
|
18
|
-
* "sort": ["-publishedAt", "title"],
|
|
19
|
-
* "depth": 1,
|
|
20
|
-
* "perspective": "published",
|
|
21
|
-
* "filterOrganizationIds": ["org_child1", "org_child2"],
|
|
22
|
-
* "includeChildOrganizations": false
|
|
23
|
-
* }
|
|
24
|
-
*/
|
|
25
|
-
export declare const POST: RequestHandler;
|
|
26
|
-
//# sourceMappingURL=documents-query.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"documents-query.d.ts","sourceRoot":"","sources":["../../src/lib/routes/documents-query.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAWpD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,IAAI,EAAE,cAyFlB,CAAC"}
|