@dosgato/api 0.0.2
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/LICENSE +21 -0
- package/README.md +74 -0
- package/dist/access/access.model.d.ts +2 -0
- package/dist/access/access.model.js +14 -0
- package/dist/access/access.model.js.map +1 -0
- package/dist/access/access.resolver.d.ts +15 -0
- package/dist/access/access.resolver.js +133 -0
- package/dist/access/access.resolver.js.map +1 -0
- package/dist/asset/asset.database.d.ts +12 -0
- package/dist/asset/asset.database.js +116 -0
- package/dist/asset/asset.database.js.map +1 -0
- package/dist/asset/asset.model.d.ts +81 -0
- package/dist/asset/asset.model.js +271 -0
- package/dist/asset/asset.model.js.map +1 -0
- package/dist/asset/asset.resolver.d.ts +32 -0
- package/dist/asset/asset.resolver.js +325 -0
- package/dist/asset/asset.resolver.js.map +1 -0
- package/dist/asset/asset.service.d.ts +35 -0
- package/dist/asset/asset.service.js +225 -0
- package/dist/asset/asset.service.js.map +1 -0
- package/dist/assetfolder/assetfolder.database.d.ts +7 -0
- package/dist/assetfolder/assetfolder.database.js +85 -0
- package/dist/assetfolder/assetfolder.database.js.map +1 -0
- package/dist/assetfolder/assetfolder.model.d.ts +56 -0
- package/dist/assetfolder/assetfolder.model.js +160 -0
- package/dist/assetfolder/assetfolder.model.js.map +1 -0
- package/dist/assetfolder/assetfolder.resolver.d.ts +25 -0
- package/dist/assetfolder/assetfolder.resolver.js +255 -0
- package/dist/assetfolder/assetfolder.resolver.js.map +1 -0
- package/dist/assetfolder/assetfolder.service.d.ts +39 -0
- package/dist/assetfolder/assetfolder.service.js +355 -0
- package/dist/assetfolder/assetfolder.service.js.map +1 -0
- package/dist/assetrule/assetrule.database.d.ts +5 -0
- package/dist/assetrule/assetrule.database.js +161 -0
- package/dist/assetrule/assetrule.database.js.map +1 -0
- package/dist/assetrule/assetrule.model.d.ts +71 -0
- package/dist/assetrule/assetrule.model.js +221 -0
- package/dist/assetrule/assetrule.model.js.map +1 -0
- package/dist/assetrule/assetrule.resolver.d.ts +12 -0
- package/dist/assetrule/assetrule.resolver.js +100 -0
- package/dist/assetrule/assetrule.resolver.js.map +1 -0
- package/dist/assetrule/assetrule.service.d.ts +26 -0
- package/dist/assetrule/assetrule.service.js +184 -0
- package/dist/assetrule/assetrule.service.js.map +1 -0
- package/dist/createdb.d.ts +2 -0
- package/dist/createdb.js +541 -0
- package/dist/createdb.js.map +1 -0
- package/dist/data/data.database.d.ts +7 -0
- package/dist/data/data.database.js +265 -0
- package/dist/data/data.database.js.map +1 -0
- package/dist/data/data.indexing.d.ts +2 -0
- package/dist/data/data.indexing.js +23 -0
- package/dist/data/data.indexing.js.map +1 -0
- package/dist/data/data.model.d.ts +69 -0
- package/dist/data/data.model.js +206 -0
- package/dist/data/data.model.js.map +1 -0
- package/dist/data/data.resolver.d.ts +36 -0
- package/dist/data/data.resolver.js +384 -0
- package/dist/data/data.resolver.js.map +1 -0
- package/dist/data/data.service.d.ts +41 -0
- package/dist/data/data.service.js +374 -0
- package/dist/data/data.service.js.map +1 -0
- package/dist/datafolder/datafolder.database.d.ts +7 -0
- package/dist/datafolder/datafolder.database.js +72 -0
- package/dist/datafolder/datafolder.database.js.map +1 -0
- package/dist/datafolder/datafolder.model.d.ts +48 -0
- package/dist/datafolder/datafolder.model.js +139 -0
- package/dist/datafolder/datafolder.model.js.map +1 -0
- package/dist/datafolder/datafolder.resolver.d.ts +24 -0
- package/dist/datafolder/datafolder.resolver.js +243 -0
- package/dist/datafolder/datafolder.resolver.js.map +1 -0
- package/dist/datafolder/datafolder.service.d.ts +32 -0
- package/dist/datafolder/datafolder.service.js +223 -0
- package/dist/datafolder/datafolder.service.js.map +1 -0
- package/dist/dataroot/dataroot.model.d.ts +19 -0
- package/dist/dataroot/dataroot.model.js +72 -0
- package/dist/dataroot/dataroot.model.js.map +1 -0
- package/dist/dataroot/dataroot.resolver.d.ts +11 -0
- package/dist/dataroot/dataroot.resolver.js +87 -0
- package/dist/dataroot/dataroot.resolver.js.map +1 -0
- package/dist/dataroot/dataroot.service.d.ts +12 -0
- package/dist/dataroot/dataroot.service.js +62 -0
- package/dist/dataroot/dataroot.service.js.map +1 -0
- package/dist/datarule/datarule.database.d.ts +5 -0
- package/dist/datarule/datarule.database.js +144 -0
- package/dist/datarule/datarule.database.js.map +1 -0
- package/dist/datarule/datarule.model.d.ts +55 -0
- package/dist/datarule/datarule.model.js +200 -0
- package/dist/datarule/datarule.model.js.map +1 -0
- package/dist/datarule/datarule.resolver.d.ts +13 -0
- package/dist/datarule/datarule.resolver.js +114 -0
- package/dist/datarule/datarule.resolver.js.map +1 -0
- package/dist/datarule/datarule.service.d.ts +27 -0
- package/dist/datarule/datarule.service.js +191 -0
- package/dist/datarule/datarule.service.js.map +1 -0
- package/dist/fixtures.d.ts +1 -0
- package/dist/fixtures.js +697 -0
- package/dist/fixtures.js.map +1 -0
- package/dist/fixturetemplates.d.ts +110 -0
- package/dist/fixturetemplates.js +178 -0
- package/dist/fixturetemplates.js.map +1 -0
- package/dist/globalrule/globalrule.database.d.ts +5 -0
- package/dist/globalrule/globalrule.database.js +65 -0
- package/dist/globalrule/globalrule.database.js.map +1 -0
- package/dist/globalrule/globalrule.model.d.ts +34 -0
- package/dist/globalrule/globalrule.model.js +120 -0
- package/dist/globalrule/globalrule.model.js.map +1 -0
- package/dist/globalrule/globalrule.resolver.d.ts +11 -0
- package/dist/globalrule/globalrule.resolver.js +85 -0
- package/dist/globalrule/globalrule.resolver.js.map +1 -0
- package/dist/globalrule/globalrule.service.d.ts +18 -0
- package/dist/globalrule/globalrule.service.js +111 -0
- package/dist/globalrule/globalrule.service.js.map +1 -0
- package/dist/group/group.database.d.ts +41 -0
- package/dist/group/group.database.js +190 -0
- package/dist/group/group.database.js.map +1 -0
- package/dist/group/group.model.d.ts +19 -0
- package/dist/group/group.model.js +70 -0
- package/dist/group/group.model.js.map +1 -0
- package/dist/group/group.resolver.d.ts +27 -0
- package/dist/group/group.resolver.js +275 -0
- package/dist/group/group.resolver.js.map +1 -0
- package/dist/group/group.service.d.ts +46 -0
- package/dist/group/group.service.js +384 -0
- package/dist/group/group.service.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.js +109 -0
- package/dist/index.js.map +1 -0
- package/dist/internal.d.ts +88 -0
- package/dist/internal.js +89 -0
- package/dist/internal.js.map +1 -0
- package/dist/migrations.d.ts +2 -0
- package/dist/migrations.js +41 -0
- package/dist/migrations.js.map +1 -0
- package/dist/organization/organization.database.d.ts +2 -0
- package/dist/organization/organization.database.js +16 -0
- package/dist/organization/organization.database.js.map +1 -0
- package/dist/organization/organization.model.d.ts +5 -0
- package/dist/organization/organization.model.js +35 -0
- package/dist/organization/organization.model.js.map +1 -0
- package/dist/organization/organization.resolver.d.ts +6 -0
- package/dist/organization/organization.resolver.js +43 -0
- package/dist/organization/organization.resolver.js.map +1 -0
- package/dist/organization/organization.service.d.ts +12 -0
- package/dist/organization/organization.service.js +35 -0
- package/dist/organization/organization.service.js.map +1 -0
- package/dist/page/page.database.d.ts +10 -0
- package/dist/page/page.database.js +269 -0
- package/dist/page/page.database.js.map +1 -0
- package/dist/page/page.indexing.d.ts +3 -0
- package/dist/page/page.indexing.js +26 -0
- package/dist/page/page.indexing.js.map +1 -0
- package/dist/page/page.migrations.d.ts +13 -0
- package/dist/page/page.migrations.js +55 -0
- package/dist/page/page.migrations.js.map +1 -0
- package/dist/page/page.model.d.ts +88 -0
- package/dist/page/page.model.js +272 -0
- package/dist/page/page.model.js.map +1 -0
- package/dist/page/page.resolver.d.ts +48 -0
- package/dist/page/page.resolver.js +542 -0
- package/dist/page/page.resolver.js.map +1 -0
- package/dist/page/page.service.d.ts +59 -0
- package/dist/page/page.service.js +399 -0
- package/dist/page/page.service.js.map +1 -0
- package/dist/page/page.util.d.ts +3 -0
- package/dist/page/page.util.js +16 -0
- package/dist/page/page.util.js.map +1 -0
- package/dist/page/page.validation.d.ts +2 -0
- package/dist/page/page.validation.js +21 -0
- package/dist/page/page.validation.js.map +1 -0
- package/dist/pagerule/pagerule.database.d.ts +5 -0
- package/dist/pagerule/pagerule.database.js +212 -0
- package/dist/pagerule/pagerule.database.js.map +1 -0
- package/dist/pagerule/pagerule.model.d.ts +71 -0
- package/dist/pagerule/pagerule.model.js +272 -0
- package/dist/pagerule/pagerule.model.js.map +1 -0
- package/dist/pagerule/pagerule.resolver.d.ts +13 -0
- package/dist/pagerule/pagerule.resolver.js +114 -0
- package/dist/pagerule/pagerule.resolver.js.map +1 -0
- package/dist/pagerule/pagerule.service.d.ts +23 -0
- package/dist/pagerule/pagerule.service.js +180 -0
- package/dist/pagerule/pagerule.service.js.map +1 -0
- package/dist/pagetree/pagetree.database.d.ts +13 -0
- package/dist/pagetree/pagetree.database.js +84 -0
- package/dist/pagetree/pagetree.database.js.map +1 -0
- package/dist/pagetree/pagetree.model.d.ts +43 -0
- package/dist/pagetree/pagetree.model.js +146 -0
- package/dist/pagetree/pagetree.model.js.map +1 -0
- package/dist/pagetree/pagetree.resolver.d.ts +23 -0
- package/dist/pagetree/pagetree.resolver.js +238 -0
- package/dist/pagetree/pagetree.resolver.js.map +1 -0
- package/dist/pagetree/pagetree.service.d.ts +25 -0
- package/dist/pagetree/pagetree.service.js +221 -0
- package/dist/pagetree/pagetree.service.js.map +1 -0
- package/dist/role/role.database.d.ts +17 -0
- package/dist/role/role.database.js +74 -0
- package/dist/role/role.database.js.map +1 -0
- package/dist/role/role.model.d.ts +26 -0
- package/dist/role/role.model.js +84 -0
- package/dist/role/role.model.js.map +1 -0
- package/dist/role/role.resolver.d.ts +27 -0
- package/dist/role/role.resolver.js +294 -0
- package/dist/role/role.resolver.js.map +1 -0
- package/dist/role/role.service.d.ts +33 -0
- package/dist/role/role.service.js +265 -0
- package/dist/role/role.service.js.map +1 -0
- package/dist/run.d.ts +1 -0
- package/dist/run.js +29 -0
- package/dist/run.js.map +1 -0
- package/dist/scalars/datetime.d.ts +2 -0
- package/dist/scalars/datetime.js +19 -0
- package/dist/scalars/datetime.js.map +1 -0
- package/dist/scalars/index.d.ts +3 -0
- package/dist/scalars/index.js +4 -0
- package/dist/scalars/index.js.map +1 -0
- package/dist/scalars/jsondata.d.ts +2 -0
- package/dist/scalars/jsondata.js +15 -0
- package/dist/scalars/jsondata.js.map +1 -0
- package/dist/scalars/urlsafestring.d.ts +4 -0
- package/dist/scalars/urlsafestring.js +28 -0
- package/dist/scalars/urlsafestring.js.map +1 -0
- package/dist/site/site.database.d.ts +15 -0
- package/dist/site/site.database.js +164 -0
- package/dist/site/site.database.js.map +1 -0
- package/dist/site/site.model.d.ts +62 -0
- package/dist/site/site.model.js +197 -0
- package/dist/site/site.model.js.map +1 -0
- package/dist/site/site.resolver.d.ts +30 -0
- package/dist/site/site.resolver.js +326 -0
- package/dist/site/site.resolver.js.map +1 -0
- package/dist/site/site.service.d.ts +35 -0
- package/dist/site/site.service.js +199 -0
- package/dist/site/site.service.js.map +1 -0
- package/dist/siterule/siterule.database.d.ts +5 -0
- package/dist/siterule/siterule.database.js +139 -0
- package/dist/siterule/siterule.database.js.map +1 -0
- package/dist/siterule/siterule.model.d.ts +53 -0
- package/dist/siterule/siterule.model.js +203 -0
- package/dist/siterule/siterule.model.js.map +1 -0
- package/dist/siterule/siterule.resolver.d.ts +12 -0
- package/dist/siterule/siterule.resolver.js +100 -0
- package/dist/siterule/siterule.resolver.js.map +1 -0
- package/dist/siterule/siterule.service.d.ts +23 -0
- package/dist/siterule/siterule.service.js +148 -0
- package/dist/siterule/siterule.service.js.map +1 -0
- package/dist/template/template.database.d.ts +15 -0
- package/dist/template/template.database.js +61 -0
- package/dist/template/template.database.js.map +1 -0
- package/dist/template/template.model.d.ts +32 -0
- package/dist/template/template.model.js +124 -0
- package/dist/template/template.model.js.map +1 -0
- package/dist/template/template.resolver.d.ts +22 -0
- package/dist/template/template.resolver.js +216 -0
- package/dist/template/template.resolver.js.map +1 -0
- package/dist/template/template.service.d.ts +27 -0
- package/dist/template/template.service.js +192 -0
- package/dist/template/template.service.js.map +1 -0
- package/dist/templaterule/templaterule.database.d.ts +5 -0
- package/dist/templaterule/templaterule.database.js +80 -0
- package/dist/templaterule/templaterule.database.js.map +1 -0
- package/dist/templaterule/templaterule.model.d.ts +38 -0
- package/dist/templaterule/templaterule.model.js +136 -0
- package/dist/templaterule/templaterule.model.js.map +1 -0
- package/dist/templaterule/templaterule.resolver.d.ts +12 -0
- package/dist/templaterule/templaterule.resolver.js +100 -0
- package/dist/templaterule/templaterule.resolver.js.map +1 -0
- package/dist/templaterule/templaterule.service.d.ts +19 -0
- package/dist/templaterule/templaterule.service.js +123 -0
- package/dist/templaterule/templaterule.service.js.map +1 -0
- package/dist/user/user.database.d.ts +22 -0
- package/dist/user/user.database.js +116 -0
- package/dist/user/user.database.js.map +1 -0
- package/dist/user/user.model.d.ts +42 -0
- package/dist/user/user.model.js +122 -0
- package/dist/user/user.model.js.map +1 -0
- package/dist/user/user.resolver.d.ts +16 -0
- package/dist/user/user.resolver.js +140 -0
- package/dist/user/user.resolver.js.map +1 -0
- package/dist/user/user.service.d.ts +29 -0
- package/dist/user/user.service.js +195 -0
- package/dist/user/user.service.js.map +1 -0
- package/dist/util/authservice.d.ts +28 -0
- package/dist/util/authservice.js +131 -0
- package/dist/util/authservice.js.map +1 -0
- package/dist/util/dates.d.ts +2 -0
- package/dist/util/dates.js +4 -0
- package/dist/util/dates.js.map +1 -0
- package/dist/util/filehandler.d.ts +15 -0
- package/dist/util/filehandler.js +48 -0
- package/dist/util/filehandler.js.map +1 -0
- package/dist/util/index.d.ts +13 -0
- package/dist/util/index.js +26 -0
- package/dist/util/index.js.map +1 -0
- package/dist/util/indexing.d.ts +12 -0
- package/dist/util/indexing.js +74 -0
- package/dist/util/indexing.js.map +1 -0
- package/dist/util/migrations.d.ts +15 -0
- package/dist/util/migrations.js +2 -0
- package/dist/util/migrations.js.map +1 -0
- package/dist/util/mutationlogger.d.ts +1 -0
- package/dist/util/mutationlogger.js +9 -0
- package/dist/util/mutationlogger.js.map +1 -0
- package/dist/util/registry.d.ts +25 -0
- package/dist/util/registry.js +66 -0
- package/dist/util/registry.js.map +1 -0
- package/dist/util/rules.d.ts +6 -0
- package/dist/util/rules.js +31 -0
- package/dist/util/rules.js.map +1 -0
- package/dist/util/sharedtypes.d.ts +3 -0
- package/dist/util/sharedtypes.js +2 -0
- package/dist/util/sharedtypes.js.map +1 -0
- package/dist/util/stopwords.d.ts +1 -0
- package/dist/util/stopwords.js +152 -0
- package/dist/util/stopwords.js.map +1 -0
- package/dist/version/version.model.d.ts +11 -0
- package/dist/version/version.model.js +46 -0
- package/dist/version/version.model.js.map +1 -0
- package/dist/version/version.resolver.d.ts +6 -0
- package/dist/version/version.resolver.js +45 -0
- package/dist/version/version.resolver.js.map +1 -0
- package/dist/versionedservice/service.d.ts +148 -0
- package/dist/versionedservice/service.js +547 -0
- package/dist/versionedservice/service.js.map +1 -0
- package/dist/versionedservice/types.d.ts +87 -0
- package/dist/versionedservice/types.js +11 -0
- package/dist/versionedservice/types.js.map +1 -0
- package/package.json +50 -0
- package/readme/DosGato.mwb +0 -0
- package/readme/DosGato.mwb.bak +0 -0
- package/readme/upgradeflow2.png +0 -0
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
import db from 'mysql2-async/db';
|
|
2
|
+
import { isNotNull, unique, sortby } from 'txstate-utils';
|
|
3
|
+
import { formatSavedAtVersion, Data, getDataIndexes, DataFolder, Site } from '../internal.js';
|
|
4
|
+
function processFilters(filter) {
|
|
5
|
+
const where = [];
|
|
6
|
+
const binds = [];
|
|
7
|
+
const joins = [];
|
|
8
|
+
const joined = new Map();
|
|
9
|
+
if (filter?.internalIds?.length) {
|
|
10
|
+
where.push(`data.id IN (${db.in(binds, filter.internalIds)})`);
|
|
11
|
+
}
|
|
12
|
+
if (filter?.ids?.length) {
|
|
13
|
+
where.push(`data.dataId IN (${db.in(binds, filter.ids)})`);
|
|
14
|
+
}
|
|
15
|
+
if (isNotNull(filter?.global)) {
|
|
16
|
+
if (filter?.global) {
|
|
17
|
+
where.push('data.siteId IS NULL');
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
where.push('data.siteId IS NOT NULL');
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
if (isNotNull(filter?.root)) {
|
|
24
|
+
if (filter?.root) {
|
|
25
|
+
where.push('data.folderId IS NULL');
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
where.push('data.folderId IS NOT NULL');
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
if (filter?.folderIds?.length) {
|
|
32
|
+
where.push(`datafolders.guid IN (${db.in(binds, filter.folderIds)})`);
|
|
33
|
+
if (!joined.has('datafolders')) {
|
|
34
|
+
joins.push('INNER JOIN datafolders on data.folderId = datafolders.id');
|
|
35
|
+
joined.set('datafolders', true);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
if (filter?.folderInternalIds?.length) {
|
|
39
|
+
where.push(`data.folderId IN (${(db.in(binds, filter.folderInternalIds))})`);
|
|
40
|
+
}
|
|
41
|
+
if (filter?.siteIds?.length) {
|
|
42
|
+
where.push(`data.siteId IN (${db.in(binds, filter.siteIds)})`);
|
|
43
|
+
}
|
|
44
|
+
if (isNotNull(filter?.deleted)) {
|
|
45
|
+
if (filter?.deleted) {
|
|
46
|
+
where.push('data.deletedAt IS NOT NULL');
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
where.push('data.deletedAt IS NULL');
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return { where, binds, joins };
|
|
53
|
+
}
|
|
54
|
+
export async function getData(filter) {
|
|
55
|
+
const { where, binds, joins } = processFilters(filter);
|
|
56
|
+
let query = 'SELECT data.* FROM data';
|
|
57
|
+
if (joins.length) {
|
|
58
|
+
query += ` ${joins.join('\n')}`;
|
|
59
|
+
}
|
|
60
|
+
if (where.length) {
|
|
61
|
+
query += ` WHERE (${where.join(') AND (')})`;
|
|
62
|
+
}
|
|
63
|
+
query += ' ORDER BY folderId, displayOrder';
|
|
64
|
+
const data = await db.getall(query, binds);
|
|
65
|
+
return data.map(d => new Data(d));
|
|
66
|
+
}
|
|
67
|
+
async function getEntriesWithTemplate(db, versionedService, templateKey) {
|
|
68
|
+
const searchRule = { indexName: 'template', equal: templateKey };
|
|
69
|
+
// TODO: These are not fetched in a transaction. Do we need to add the transaction as an optional parameter for find()?
|
|
70
|
+
const [dataIdsLatest, dataIdsPublished] = await Promise.all([
|
|
71
|
+
versionedService.find([searchRule], 'latest'),
|
|
72
|
+
versionedService.find([searchRule], 'published')
|
|
73
|
+
]);
|
|
74
|
+
const dataIds = unique([...dataIdsLatest, ...dataIdsPublished]);
|
|
75
|
+
if (!dataIds.length)
|
|
76
|
+
return [];
|
|
77
|
+
const binds = [];
|
|
78
|
+
const rows = await db.getall(`SELECT * FROM data WHERE dataId IN (${db.in(binds, dataIds)})`, binds);
|
|
79
|
+
return rows.map(r => new Data(r));
|
|
80
|
+
}
|
|
81
|
+
async function handleDisplayOrder(db, versionedService, templateKey, entriesAdded, folderInternalId, siteId, aboveTarget) {
|
|
82
|
+
if (aboveTarget) {
|
|
83
|
+
const displayOrder = aboveTarget.displayOrder;
|
|
84
|
+
if (aboveTarget.folderInternalId) {
|
|
85
|
+
await db.update(`UPDATE data SET displayOrder = displayOrder + ${entriesAdded} WHERE folderId = ? AND displayOrder >= ?`, [aboveTarget.folderInternalId, displayOrder]);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
const entriesWithTemplate = await getEntriesWithTemplate(db, versionedService, templateKey);
|
|
89
|
+
const binds = [];
|
|
90
|
+
binds.push(displayOrder);
|
|
91
|
+
if (aboveTarget.siteId) {
|
|
92
|
+
binds.push(aboveTarget.siteId);
|
|
93
|
+
await db.update(`
|
|
94
|
+
UPDATE data SET displayOrder = displayOrder + ${entriesAdded}
|
|
95
|
+
WHERE folderId IS NULL AND
|
|
96
|
+
displayOrder >= ? AND
|
|
97
|
+
siteId = ? AND
|
|
98
|
+
id IN (${db.in(binds, entriesWithTemplate.map(d => d.internalId))})`, binds);
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
await db.update(`
|
|
102
|
+
UPDATE data SET displayOrder = displayOrder + ${entriesAdded}
|
|
103
|
+
WHERE folderId is NULL AND
|
|
104
|
+
siteId IS NULL AND
|
|
105
|
+
displayOrder >= ? AND
|
|
106
|
+
id IN (${db.in(binds, entriesWithTemplate.map(d => d.internalId))})`, binds);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return displayOrder;
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
let maxDisplayOrder;
|
|
113
|
+
if (folderInternalId) {
|
|
114
|
+
maxDisplayOrder = await db.getval('SELECT MAX(displayOrder) FROM data WHERE folderId = ?', [folderInternalId]);
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
const entriesWithTemplate = await getEntriesWithTemplate(db, versionedService, templateKey);
|
|
118
|
+
const binds = [];
|
|
119
|
+
if (siteId) {
|
|
120
|
+
binds.push(siteId);
|
|
121
|
+
maxDisplayOrder = await db.getval(`SELECT MAX(displayOrder) FROM data WHERE folderId IS NULL AND siteId = ? AND id IN (${db.in(binds, entriesWithTemplate.map(d => d.internalId))})`, binds);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
maxDisplayOrder = await db.getval(`SELECT MAX(displayOrder) FROM data WHERE folderId IS NULL AND siteId IS NULL AND id IN (${db.in(binds, entriesWithTemplate.map(d => d.internalId))})`, binds);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return (maxDisplayOrder ?? 0) + 1;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
async function updateSourceDisplayOrder(db, versionedService, data, templateKey, movingIds, folderInternalId, siteId, aboveTarget) {
|
|
131
|
+
if (data.folderInternalId) {
|
|
132
|
+
if (aboveTarget) {
|
|
133
|
+
if (data.folderInternalId !== aboveTarget.folderInternalId) {
|
|
134
|
+
// data moved out of folder
|
|
135
|
+
const binds = [data.folderInternalId];
|
|
136
|
+
const remaining = await db.getvals(`
|
|
137
|
+
SELECT id FROM data
|
|
138
|
+
WHERE data.folderId = ? AND id NOT IN (${db.in(binds, movingIds)})
|
|
139
|
+
ORDER BY displayOrder`, binds);
|
|
140
|
+
await Promise.all(remaining.map(async (id, index) => await db.update('UPDATE data SET displayOrder = ? WHERE id = ?', [index + 1, id])));
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
if (!folderInternalId || folderInternalId !== data.folderInternalId) {
|
|
145
|
+
// data moved out of folder
|
|
146
|
+
const binds = [data.folderInternalId];
|
|
147
|
+
const remaining = await db.getvals(`
|
|
148
|
+
SELECT id FROM data
|
|
149
|
+
WHERE data.folderId = ? AND id NOT IN (${db.in(binds, movingIds)})
|
|
150
|
+
ORDER BY displayOrder`, binds);
|
|
151
|
+
await Promise.all(remaining.map(async (id, index) => await db.update('UPDATE data SET displayOrder = ? WHERE id = ?', [index + 1, id])));
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
// data was not in a folder
|
|
157
|
+
const entriesWithTemplate = await getEntriesWithTemplate(db, versionedService, templateKey);
|
|
158
|
+
const remainingEntriesWithTemplate = entriesWithTemplate.filter((entry) => !movingIds.includes(entry.internalId));
|
|
159
|
+
// was it in a site?
|
|
160
|
+
if (data.siteId) {
|
|
161
|
+
if ((aboveTarget && data.siteId !== aboveTarget.siteId) || (!aboveTarget && data.siteId !== siteId)) {
|
|
162
|
+
const binds = [data.siteId];
|
|
163
|
+
const remaining = await db.getvals(`
|
|
164
|
+
SELECT id from data
|
|
165
|
+
WHERE siteId = ? AND folderId IS NULL AND id IN (${db.in(binds, remainingEntriesWithTemplate.map((e) => e.internalId))})
|
|
166
|
+
ORDER BY displayOrder`, binds);
|
|
167
|
+
await Promise.all(remaining.map(async (id, index) => await db.update('UPDATE data SET displayOrder = ? WHERE id = ?', [index + 1, id])));
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
// global data moved to a site or folder
|
|
172
|
+
if (aboveTarget?.siteId || aboveTarget?.folderInternalId || folderInternalId || siteId) {
|
|
173
|
+
const binds = [];
|
|
174
|
+
const remaining = await db.getvals(`
|
|
175
|
+
SELECT id from data
|
|
176
|
+
WHERE siteId IS NULL AND folderId IS NULL AND id IN (${db.in(binds, remainingEntriesWithTemplate.map((e) => e.internalId))})
|
|
177
|
+
ORDER BY displayOrder`, binds);
|
|
178
|
+
await Promise.all(remaining.map(async (id, index) => await db.update('UPDATE data SET displayOrder = ? WHERE id = ?', [index + 1, id])));
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
export async function createDataEntry(versionedService, userId, args) {
|
|
184
|
+
return await db.transaction(async (db) => {
|
|
185
|
+
const dataFolderInternalId = args.folderId ? await db.getval('SELECT id FROM datafolders WHERE guid = ?', [args.folderId]) : undefined;
|
|
186
|
+
const displayOrder = await handleDisplayOrder(db, versionedService, args.templateKey, 1, dataFolderInternalId, args.siteId);
|
|
187
|
+
const data = Object.assign({}, args.data, { templateKey: args.templateKey, savedAtVersion: formatSavedAtVersion(args.schemaVersion) });
|
|
188
|
+
const indexes = await getDataIndexes(data);
|
|
189
|
+
const dataId = await versionedService.create('data', data, indexes, userId, db);
|
|
190
|
+
const columns = ['dataId', 'name', 'displayOrder'];
|
|
191
|
+
const binds = [dataId, args.name, displayOrder];
|
|
192
|
+
if (args.siteId) {
|
|
193
|
+
columns.push('siteId');
|
|
194
|
+
binds.push(args.siteId);
|
|
195
|
+
}
|
|
196
|
+
if (dataFolderInternalId) {
|
|
197
|
+
columns.push('folderId');
|
|
198
|
+
binds.push(dataFolderInternalId);
|
|
199
|
+
}
|
|
200
|
+
const newInternalId = await db.insert(`
|
|
201
|
+
INSERT INTO data (${columns.join(', ')})
|
|
202
|
+
VALUES (${columns.map(c => '?').join(', ')})`, binds);
|
|
203
|
+
return new Data(await db.getrow('SELECT * FROM data WHERE id=?', [newInternalId]));
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
export async function renameDataEntry(dataId, name) {
|
|
207
|
+
return await db.update('UPDATE data SET name = ? WHERE dataId = ?', [name, dataId]);
|
|
208
|
+
}
|
|
209
|
+
export async function moveDataEntries(versionedService, dataIds, templateKey, target) {
|
|
210
|
+
return await db.transaction(async (db) => {
|
|
211
|
+
const binds = [];
|
|
212
|
+
let dataEntries = (await db.getall(`SELECT * FROM data WHERE dataId IN (${db.in(binds, dataIds)})`, binds)).map((row) => new Data(row));
|
|
213
|
+
dataEntries = sortby(dataEntries, 'displayOrder');
|
|
214
|
+
const folder = target.folderId ? new DataFolder(await db.getrow('SELECT * FROM datafolders WHERE guid = ?', [target.folderId])) : undefined;
|
|
215
|
+
const site = target.siteId ? new Site(await db.getrow('SELECT * FROM sites WHERE id = ?', [target.siteId])) : undefined;
|
|
216
|
+
const aboveTarget = target.aboveTarget ? new Data(await db.getrow('SELECT * from data WHERE dataId = ?', [target.aboveTarget])) : undefined;
|
|
217
|
+
// get the entrys' new display order
|
|
218
|
+
const displayOrder = await handleDisplayOrder(db, versionedService, templateKey, dataEntries.length, folder?.internalId, site?.id, aboveTarget);
|
|
219
|
+
// update the display order for data in the entrys' previous locations
|
|
220
|
+
for (const d of dataEntries) {
|
|
221
|
+
await updateSourceDisplayOrder(db, versionedService, d, templateKey, dataEntries.map(e => e.internalId), folder?.internalId, site?.id, aboveTarget);
|
|
222
|
+
}
|
|
223
|
+
if (aboveTarget) {
|
|
224
|
+
// if the entry is being moved above a specific data entry, use the same site and folder values as that specific data entry
|
|
225
|
+
return await Promise.all(dataEntries.map(async (data, index) => {
|
|
226
|
+
const binds = [displayOrder + index];
|
|
227
|
+
binds.push((aboveTarget.folderInternalId ?? null));
|
|
228
|
+
binds.push((aboveTarget.siteId ?? null));
|
|
229
|
+
binds.push(data.internalId);
|
|
230
|
+
await db.update('UPDATE data SET displayOrder = ?, folderId = ?, siteId = ? WHERE id = ?', binds);
|
|
231
|
+
}));
|
|
232
|
+
}
|
|
233
|
+
if (folder) {
|
|
234
|
+
// data is in a folder that may or may not be in a site
|
|
235
|
+
return await Promise.all(dataEntries.map(async (data, index) => {
|
|
236
|
+
const updates = ['displayOrder = ?', 'folderId = ?'];
|
|
237
|
+
const binds = [displayOrder + index, folder.internalId];
|
|
238
|
+
if (folder.siteId) {
|
|
239
|
+
updates.push('siteId = ?');
|
|
240
|
+
binds.push(folder.siteId);
|
|
241
|
+
}
|
|
242
|
+
binds.push(data.internalId);
|
|
243
|
+
return await db.update(`UPDATE data SET ${updates.join(', ')} WHERE id = ?`, binds);
|
|
244
|
+
}));
|
|
245
|
+
}
|
|
246
|
+
if (site) {
|
|
247
|
+
return await Promise.all(dataEntries.map(async (data, index) => {
|
|
248
|
+
return await db.update('UPDATE data SET displayOrder = ?, folderId = NULL, siteId = ? WHERE id = ?', [displayOrder + index, site.id, data.internalId]);
|
|
249
|
+
}));
|
|
250
|
+
}
|
|
251
|
+
// global data that is not in a folder
|
|
252
|
+
return await Promise.all(dataEntries.map(async (data, index) => {
|
|
253
|
+
return await db.update('UPDATE data SET displayOrder = ?, folderId = NULL, siteId = NULL WHERE id = ?', [displayOrder + index, data.internalId]);
|
|
254
|
+
}));
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
export async function deleteDataEntries(dataIds, userInternalId) {
|
|
258
|
+
const binds = [userInternalId];
|
|
259
|
+
return await db.update(`UPDATE data SET deletedAt = NOW(), deletedBy = ? WHERE dataId IN (${db.in(binds, dataIds)})`, binds);
|
|
260
|
+
}
|
|
261
|
+
export async function undeleteDataEntries(dataIds) {
|
|
262
|
+
const binds = [];
|
|
263
|
+
return await db.update(`UPDATE data SET deletedAt = NULL, deletedBy = NULL where dataId IN (${db.in(binds, dataIds)})`, binds);
|
|
264
|
+
}
|
|
265
|
+
//# sourceMappingURL=data.database.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data.database.js","sourceRoot":"","sources":["../../src/data/data.database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAEzD,OAAO,EAAE,oBAAoB,EAAE,IAAI,EAAsE,cAAc,EAAE,UAAU,EAAE,IAAI,EAAkB,MAAM,gBAAgB,CAAA;AAEjL,SAAS,cAAc,CAAE,MAAmB;IAC1C,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAmB,CAAA;IAEzC,IAAI,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE;QAC/B,KAAK,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;KAC/D;IACD,IAAI,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE;QACvB,KAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;KAC3D;IACD,IAAI,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;QAC7B,IAAI,MAAM,EAAE,MAAM,EAAE;YAClB,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;SAClC;aAAM;YACL,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;SACtC;KACF;IACD,IAAI,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;QAC3B,IAAI,MAAM,EAAE,IAAI,EAAE;YAChB,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;SACpC;aAAM;YACL,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAA;SACxC;KACF;IACD,IAAI,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE;QAC7B,KAAK,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;QACrE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;YAC9B,KAAK,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAA;YACtE,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAA;SAChC;KACF;IACD,IAAI,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE;QACrC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAA;KAC7E;IACD,IAAI,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;QAC3B,KAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;KAC/D;IACD,IAAI,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;QAC9B,IAAI,MAAM,EAAE,OAAO,EAAE;YACnB,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAA;SACzC;aAAM;YACL,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;SACrC;KACF;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;AAChC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAE,MAAmB;IAChD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;IACtD,IAAI,KAAK,GAAG,yBAAyB,CAAA;IACrC,IAAI,KAAK,CAAC,MAAM,EAAE;QAChB,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;KAChC;IACD,IAAI,KAAK,CAAC,MAAM,EAAE;QAChB,KAAK,IAAI,WAAW,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAA;KAC7C;IACD,KAAK,IAAI,kCAAkC,CAAA;IAC3C,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IAC1C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;AACnC,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAE,EAAa,EAAE,gBAAkC,EAAE,WAAmB;IAC3G,MAAM,UAAU,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;IAChE,uHAAuH;IACvH,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC1D,gBAAgB,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC;QAC7C,gBAAgB,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC;KAAC,CAAC,CAAA;IACpD,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,GAAG,aAAa,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAA;IAC/D,IAAI,CAAC,OAAO,CAAC,MAAM;QAAE,OAAO,EAAE,CAAA;IAC9B,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,uCAAuC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IACpG,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;AACnC,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAE,EAAa,EAAE,gBAAkC,EAAE,WAAmB,EAAE,YAAoB,EAAE,gBAAyB,EAAE,MAAe,EAAE,WAAkB;IAC7L,IAAI,WAAW,EAAE;QACf,MAAM,YAAY,GAAG,WAAW,CAAC,YAAY,CAAA;QAC7C,IAAI,WAAW,CAAC,gBAAgB,EAAE;YAChC,MAAM,EAAE,CAAC,MAAM,CAAC,iDAAiD,YAAY,2CAA2C,EAAE,CAAC,WAAW,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC,CAAA;SACxK;aAAM;YACL,MAAM,mBAAmB,GAAG,MAAM,sBAAsB,CAAC,EAAE,EAAE,gBAAgB,EAAE,WAAW,CAAC,CAAA;YAC3F,MAAM,KAAK,GAAwB,EAAE,CAAA;YACrC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;YACxB,IAAI,WAAW,CAAC,MAAM,EAAE;gBACtB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;gBAC9B,MAAM,EAAE,CAAC,MAAM,CAAC;0DACkC,YAAY;;;;mBAInD,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;aAC/E;iBAAM;gBACL,MAAM,EAAE,CAAC,MAAM,CAAC;0DACkC,YAAY;;;;mBAInD,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;aAC/E;SACF;QACD,OAAO,YAAY,CAAA;KACpB;SAAM;QACL,IAAI,eAAe,CAAA;QACnB,IAAI,gBAAgB,EAAE;YACpB,eAAe,GAAG,MAAM,EAAE,CAAC,MAAM,CAAS,uDAAuD,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAA;SACvH;aAAM;YACL,MAAM,mBAAmB,GAAG,MAAM,sBAAsB,CAAC,EAAE,EAAE,gBAAgB,EAAE,WAAW,CAAC,CAAA;YAC3F,MAAM,KAAK,GAAa,EAAE,CAAA;YAC1B,IAAI,MAAM,EAAE;gBACV,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBAClB,eAAe,GAAG,MAAM,EAAE,CAAC,MAAM,CAAS,uFAAuF,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;aACrM;iBAAM;gBACL,eAAe,GAAG,MAAM,EAAE,CAAC,MAAM,CAAS,2FAA2F,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;aACzM;SACF;QACD,OAAO,CAAC,eAAe,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;KAClC;AACH,CAAC;AAED,KAAK,UAAU,wBAAwB,CAAE,EAAa,EAAE,gBAAkC,EAAE,IAAU,EAAE,WAAmB,EAAE,SAAmB,EAAE,gBAAyB,EAAE,MAAe,EAAE,WAAkB;IAC9M,IAAI,IAAI,CAAC,gBAAgB,EAAE;QACzB,IAAI,WAAW,EAAE;YACf,IAAI,IAAI,CAAC,gBAAgB,KAAK,WAAW,CAAC,gBAAgB,EAAE;gBAC1D,2BAA2B;gBAC3B,MAAM,KAAK,GAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;gBAC/C,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,OAAO,CAAS;;mDAEA,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC;gCAC1C,EAAE,KAAK,CAAC,CAAA;gBAChC,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,+CAA+C,EAAE,CAAC,KAAK,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;aACzI;SACF;aAAM;YACL,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,KAAK,IAAI,CAAC,gBAAgB,EAAE;gBACnE,2BAA2B;gBAC3B,MAAM,KAAK,GAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;gBAC/C,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,OAAO,CAAS;;mDAEA,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC;gCAC1C,EAAE,KAAK,CAAC,CAAA;gBAChC,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,+CAA+C,EAAE,CAAC,KAAK,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;aACzI;SACF;KACF;SAAM;QACL,2BAA2B;QAC3B,MAAM,mBAAmB,GAAG,MAAM,sBAAsB,CAAC,EAAE,EAAE,gBAAgB,EAAE,WAAW,CAAC,CAAA;QAC3F,MAAM,4BAA4B,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAA;QACjH,oBAAoB;QACpB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE;gBACnG,MAAM,KAAK,GAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBAC9C,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,OAAO,CAAS;;6DAEU,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,4BAA4B,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;gCAChG,EAAE,KAAK,CAAC,CAAA;gBAChC,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,+CAA+C,EAAE,CAAC,KAAK,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;aACzI;SACF;aAAM;YACL,wCAAwC;YACxC,IAAI,WAAW,EAAE,MAAM,IAAI,WAAW,EAAE,gBAAgB,IAAI,gBAAgB,IAAI,MAAM,EAAE;gBACtF,MAAM,KAAK,GAAsB,EAAE,CAAA;gBACnC,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,OAAO,CAAS;;iEAEc,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,4BAA4B,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;gCACpG,EAAE,KAAK,CAAC,CAAA;gBAChC,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,+CAA+C,EAAE,CAAC,KAAK,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;aACzI;SACF;KACF;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAE,gBAAkC,EAAE,MAAc,EAAE,IAAqB;IAC9G,OAAO,MAAM,EAAE,CAAC,WAAW,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE;QACrC,MAAM,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAS,2CAA2C,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAC9I,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAAC,EAAE,EAAE,gBAAgB,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAC3H,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;QACtI,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,CAAA;QAC1C,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAA;QAC/E,MAAM,OAAO,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,CAAA;QAClD,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;QAC/C,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACtB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;SACxB;QACD,IAAI,oBAAoB,EAAE;YACxB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YACxB,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;SACjC;QACD,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC;wBAClB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACvD,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,+BAA+B,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA;IACpF,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAE,MAAc,EAAE,IAAY;IACjE,OAAO,MAAM,EAAE,CAAC,MAAM,CAAC,2CAA2C,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;AACrF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAE,gBAAkC,EAAE,OAAiB,EAAE,WAAmB,EAAE,MAAsB;IACvI,OAAO,MAAM,EAAE,CAAC,WAAW,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE;QACrC,MAAM,KAAK,GAAa,EAAE,CAAA;QAC1B,IAAI,WAAW,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,uCAAuC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;QACvI,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,CAAA;QACjD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,0CAA0C,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAC3I,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,kCAAkC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACvH,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,qCAAqC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAC3I,oCAAoC;QACpC,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAAC,EAAE,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,CAAC,CAAA;QAC/I,sEAAsE;QACtE,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE;YAC3B,MAAM,wBAAwB,CAAC,EAAE,EAAE,gBAAgB,EAAE,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,CAAC,CAAA;SACpJ;QACD,IAAI,WAAW,EAAE;YACf,2HAA2H;YAC3H,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC7D,MAAM,KAAK,GAA+B,CAAC,YAAY,GAAG,KAAK,CAAC,CAAA;gBAChE,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAC,CAAA;gBAClD,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAA;gBACxC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;gBAC3B,MAAM,EAAE,CAAC,MAAM,CAAC,yEAAyE,EAAE,KAAK,CAAC,CAAA;YACnG,CAAC,CAAC,CAAC,CAAA;SACJ;QACD,IAAI,MAAM,EAAE;YACV,uDAAuD;YACvD,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC7D,MAAM,OAAO,GAAG,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAA;gBACpD,MAAM,KAAK,GAAwB,CAAC,YAAY,GAAG,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;gBAC5E,IAAI,MAAM,CAAC,MAAM,EAAE;oBACjB,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;oBAC1B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;iBAC1B;gBACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;gBAC3B,OAAO,MAAM,EAAE,CAAC,MAAM,CAAC,mBAAmB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;YACrF,CAAC,CAAC,CAAC,CAAA;SACJ;QACD,IAAI,IAAI,EAAE;YACR,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC7D,OAAO,MAAM,EAAE,CAAC,MAAM,CAAC,4EAA4E,EAAE,CAAC,YAAY,GAAG,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;YACxJ,CAAC,CAAC,CAAC,CAAA;SACJ;QACD,sCAAsC;QACtC,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;YAC7D,OAAO,MAAM,EAAE,CAAC,MAAM,CAAC,+EAA+E,EAAE,CAAC,YAAY,GAAG,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;QAClJ,CAAC,CAAC,CAAC,CAAA;IACL,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAE,OAAiB,EAAE,cAAsB;IAChF,MAAM,KAAK,GAAsB,CAAC,cAAc,CAAC,CAAA;IACjD,OAAO,MAAM,EAAE,CAAC,MAAM,CAAC,qEAAqE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;AAC9H,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAE,OAAiB;IAC1D,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,OAAO,MAAM,EAAE,CAAC,MAAM,CAAC,uEAAuE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;AAChI,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { templateRegistry, processLink, extractLinksFromText, getKeywords } from '../internal.js';
|
|
2
|
+
export function getDataIndexes(data) {
|
|
3
|
+
var _a, _b;
|
|
4
|
+
const storage = {};
|
|
5
|
+
storage.templateKey = new Set([data.templateKey]);
|
|
6
|
+
const indexes = templateRegistry.get(data.templateKey).getLinks(data).map(processLink).flat();
|
|
7
|
+
for (const index of indexes) {
|
|
8
|
+
storage[_a = index.name] ?? (storage[_a] = new Set());
|
|
9
|
+
storage[index.name].add(index.value);
|
|
10
|
+
}
|
|
11
|
+
const text = templateRegistry.get(data.templateKey).getFulltext(data);
|
|
12
|
+
storage.fulltext = new Set();
|
|
13
|
+
const moreLinks = text.flatMap(extractLinksFromText).flatMap(processLink);
|
|
14
|
+
for (const index of moreLinks) {
|
|
15
|
+
storage[_b = index.name] ?? (storage[_b] = new Set());
|
|
16
|
+
storage[index.name].add(index.value);
|
|
17
|
+
}
|
|
18
|
+
const words = text.flatMap(t => getKeywords(t));
|
|
19
|
+
for (const word of words)
|
|
20
|
+
storage.fulltext.add(word);
|
|
21
|
+
return Object.keys(storage).map(k => ({ name: k, values: Array.from(storage[k]) }));
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=data.indexing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data.indexing.js","sourceRoot":"","sources":["../../src/data/data.indexing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,gBAAgB,EAAE,WAAW,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAEvH,MAAM,UAAU,cAAc,CAAE,IAAmB;;IACjD,MAAM,OAAO,GAAgC,EAAE,CAAA;IAC/C,OAAO,CAAC,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAA;IACjD,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAA;IAC7F,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;QAC3B,OAAO,MAAC,KAAK,CAAC,IAAI,MAAlB,OAAO,OAAiB,IAAI,GAAG,EAAE,EAAA;QACjC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;KACrC;IACD,MAAM,IAAI,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;IACrE,OAAO,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAA;IAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IACzE,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE;QAC7B,OAAO,MAAC,KAAK,CAAC,IAAI,MAAlB,OAAO,OAAiB,IAAI,GAAG,EAAE,EAAA;QACjC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;KACrC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/C,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACpD,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AACrF,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { DateTime } from 'luxon';
|
|
2
|
+
import { ValidatedResponse, ValidatedResponseArgs } from '@txstate-mws/graphql-server';
|
|
3
|
+
import { UrlSafeString } from '../internal.js';
|
|
4
|
+
export declare class Data {
|
|
5
|
+
internalId: number;
|
|
6
|
+
id: string;
|
|
7
|
+
name: UrlSafeString;
|
|
8
|
+
deleted: boolean;
|
|
9
|
+
deletedAt?: DateTime;
|
|
10
|
+
deletedBy?: number;
|
|
11
|
+
dataId: string;
|
|
12
|
+
folderInternalId?: number;
|
|
13
|
+
siteId?: string;
|
|
14
|
+
displayOrder: number;
|
|
15
|
+
constructor(row: any);
|
|
16
|
+
}
|
|
17
|
+
export declare class DataFilter {
|
|
18
|
+
internalIds?: number[];
|
|
19
|
+
ids?: string[];
|
|
20
|
+
global?: boolean;
|
|
21
|
+
root?: boolean;
|
|
22
|
+
folderIds?: string[];
|
|
23
|
+
folderInternalIds?: number[];
|
|
24
|
+
siteIds?: string[];
|
|
25
|
+
templateKeys?: string[];
|
|
26
|
+
deleted?: boolean;
|
|
27
|
+
}
|
|
28
|
+
export declare class CreateDataInput {
|
|
29
|
+
name: string;
|
|
30
|
+
schemaVersion: DateTime;
|
|
31
|
+
templateKey: string;
|
|
32
|
+
data: any;
|
|
33
|
+
siteId?: string;
|
|
34
|
+
folderId?: string;
|
|
35
|
+
}
|
|
36
|
+
export declare class UpdateDataInput {
|
|
37
|
+
schemaVersion: DateTime;
|
|
38
|
+
data: any;
|
|
39
|
+
dataVersion?: number;
|
|
40
|
+
comment?: string;
|
|
41
|
+
}
|
|
42
|
+
export declare class MoveDataTarget {
|
|
43
|
+
aboveTarget?: string;
|
|
44
|
+
folderId?: string;
|
|
45
|
+
siteId?: string;
|
|
46
|
+
}
|
|
47
|
+
export declare class DataResponse extends ValidatedResponse {
|
|
48
|
+
data?: Data;
|
|
49
|
+
constructor(config: ValidatedResponseArgs & {
|
|
50
|
+
data?: Data;
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
export declare class DataMultResponse extends ValidatedResponse {
|
|
54
|
+
data?: Data[];
|
|
55
|
+
constructor(config: ValidatedResponseArgs & {
|
|
56
|
+
data?: Data[];
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
export declare class DataPermissions {
|
|
60
|
+
}
|
|
61
|
+
export declare enum DataPermission {
|
|
62
|
+
VIEWLATEST = "viewlatest",
|
|
63
|
+
PUBLISH = "publish",
|
|
64
|
+
UNPUBLISH = "unpublish",
|
|
65
|
+
UPDATE = "update",
|
|
66
|
+
MOVE = "move",
|
|
67
|
+
DELETE = "delete",
|
|
68
|
+
UNDELETE = "undelete"
|
|
69
|
+
}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { DateTime } from 'luxon';
|
|
11
|
+
import { isNotNull, optionalString } from 'txstate-utils';
|
|
12
|
+
import { ValidatedResponse } from '@txstate-mws/graphql-server';
|
|
13
|
+
import { Field, ID, InputType, ObjectType, registerEnumType } from 'type-graphql';
|
|
14
|
+
import { UrlSafeString, JsonData } from '../internal.js';
|
|
15
|
+
let Data = class Data {
|
|
16
|
+
// template identifier is NOT a property because it's part of the upgradeable data,
|
|
17
|
+
// we'll have to use the versionedservice indexing to look up data by template id
|
|
18
|
+
constructor(row) {
|
|
19
|
+
this.internalId = row.id;
|
|
20
|
+
this.id = row.dataId;
|
|
21
|
+
this.name = row.name;
|
|
22
|
+
this.dataId = row.dataId;
|
|
23
|
+
this.folderInternalId = row.folderId;
|
|
24
|
+
this.displayOrder = row.displayOrder;
|
|
25
|
+
this.siteId = optionalString(row.siteId);
|
|
26
|
+
this.deleted = isNotNull(row.deletedAt);
|
|
27
|
+
this.deletedAt = DateTime.fromJSDate(row.deletedAt);
|
|
28
|
+
this.deletedBy = row.deletedBy;
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
__decorate([
|
|
32
|
+
Field(type => ID, { description: 'A globally unique identifier for this data. Should be used any time content links to data, so that content can migrate to new instances and point at the same thing.' }),
|
|
33
|
+
__metadata("design:type", String)
|
|
34
|
+
], Data.prototype, "id", void 0);
|
|
35
|
+
__decorate([
|
|
36
|
+
Field({ description: 'Name for this piece of data, to be displayed in the list view.' }),
|
|
37
|
+
__metadata("design:type", UrlSafeString)
|
|
38
|
+
], Data.prototype, "name", void 0);
|
|
39
|
+
__decorate([
|
|
40
|
+
Field({ description: 'Data has been soft-deleted but is still recoverable.' }),
|
|
41
|
+
__metadata("design:type", Boolean)
|
|
42
|
+
], Data.prototype, "deleted", void 0);
|
|
43
|
+
__decorate([
|
|
44
|
+
Field({ nullable: true, description: 'Date this data was soft-deleted, null when not applicable.' }),
|
|
45
|
+
__metadata("design:type", DateTime)
|
|
46
|
+
], Data.prototype, "deletedAt", void 0);
|
|
47
|
+
Data = __decorate([
|
|
48
|
+
ObjectType({ description: 'Data are pieces of shareable versioned content with a template and a dialog but not rendering code. The data will be consumed by component templates, each of which will do its own rendering of the data. For example, an Article data type could be displayed by an Article List component or an Article Detail component. In addition, outside services could access the article data directly from GraphQL.' }),
|
|
49
|
+
__metadata("design:paramtypes", [Object])
|
|
50
|
+
], Data);
|
|
51
|
+
export { Data };
|
|
52
|
+
let DataFilter = class DataFilter {
|
|
53
|
+
};
|
|
54
|
+
__decorate([
|
|
55
|
+
Field(type => [ID], { nullable: true }),
|
|
56
|
+
__metadata("design:type", Array)
|
|
57
|
+
], DataFilter.prototype, "ids", void 0);
|
|
58
|
+
__decorate([
|
|
59
|
+
Field({ nullable: true, description: 'true -> return only global data, false -> return only data that belongs to some site, null -> return all data' }),
|
|
60
|
+
__metadata("design:type", Boolean)
|
|
61
|
+
], DataFilter.prototype, "global", void 0);
|
|
62
|
+
__decorate([
|
|
63
|
+
Field({ nullable: true, description: 'true -> return only data that lives in the root; i.e. folderId is null' }),
|
|
64
|
+
__metadata("design:type", Boolean)
|
|
65
|
+
], DataFilter.prototype, "root", void 0);
|
|
66
|
+
__decorate([
|
|
67
|
+
Field(type => [String], { nullable: true }),
|
|
68
|
+
__metadata("design:type", Array)
|
|
69
|
+
], DataFilter.prototype, "folderIds", void 0);
|
|
70
|
+
__decorate([
|
|
71
|
+
Field(type => [ID], { nullable: true, description: 'Return data belonging to one of the specified sites.' }),
|
|
72
|
+
__metadata("design:type", Array)
|
|
73
|
+
], DataFilter.prototype, "siteIds", void 0);
|
|
74
|
+
__decorate([
|
|
75
|
+
Field(type => [ID], { nullable: true, description: 'Return data using one of the specified templates.' }),
|
|
76
|
+
__metadata("design:type", Array)
|
|
77
|
+
], DataFilter.prototype, "templateKeys", void 0);
|
|
78
|
+
__decorate([
|
|
79
|
+
Field(type => Boolean, { nullable: true, description: 'true -> return only deleted data, false -> return only nondeleted data, undefined -> return all data' }),
|
|
80
|
+
__metadata("design:type", Boolean)
|
|
81
|
+
], DataFilter.prototype, "deleted", void 0);
|
|
82
|
+
DataFilter = __decorate([
|
|
83
|
+
InputType()
|
|
84
|
+
], DataFilter);
|
|
85
|
+
export { DataFilter };
|
|
86
|
+
let CreateDataInput = class CreateDataInput {
|
|
87
|
+
};
|
|
88
|
+
__decorate([
|
|
89
|
+
Field(),
|
|
90
|
+
__metadata("design:type", String)
|
|
91
|
+
], CreateDataInput.prototype, "name", void 0);
|
|
92
|
+
__decorate([
|
|
93
|
+
Field({ description: 'The current schema version of the admin UI.' }),
|
|
94
|
+
__metadata("design:type", DateTime)
|
|
95
|
+
], CreateDataInput.prototype, "schemaVersion", void 0);
|
|
96
|
+
__decorate([
|
|
97
|
+
Field(type => ID),
|
|
98
|
+
__metadata("design:type", String)
|
|
99
|
+
], CreateDataInput.prototype, "templateKey", void 0);
|
|
100
|
+
__decorate([
|
|
101
|
+
Field(type => JsonData),
|
|
102
|
+
__metadata("design:type", Object)
|
|
103
|
+
], CreateDataInput.prototype, "data", void 0);
|
|
104
|
+
__decorate([
|
|
105
|
+
Field(type => ID, { nullable: true }),
|
|
106
|
+
__metadata("design:type", String)
|
|
107
|
+
], CreateDataInput.prototype, "siteId", void 0);
|
|
108
|
+
__decorate([
|
|
109
|
+
Field(type => ID, { nullable: true }),
|
|
110
|
+
__metadata("design:type", String)
|
|
111
|
+
], CreateDataInput.prototype, "folderId", void 0);
|
|
112
|
+
CreateDataInput = __decorate([
|
|
113
|
+
InputType()
|
|
114
|
+
], CreateDataInput);
|
|
115
|
+
export { CreateDataInput };
|
|
116
|
+
let UpdateDataInput = class UpdateDataInput {
|
|
117
|
+
};
|
|
118
|
+
__decorate([
|
|
119
|
+
Field({ description: 'The current schema version of the admin UI.' }),
|
|
120
|
+
__metadata("design:type", DateTime)
|
|
121
|
+
], UpdateDataInput.prototype, "schemaVersion", void 0);
|
|
122
|
+
__decorate([
|
|
123
|
+
Field(type => JsonData),
|
|
124
|
+
__metadata("design:type", Object)
|
|
125
|
+
], UpdateDataInput.prototype, "data", void 0);
|
|
126
|
+
__decorate([
|
|
127
|
+
Field(type => Number, { description: 'The version of the data you had when you started the update' }),
|
|
128
|
+
__metadata("design:type", Number)
|
|
129
|
+
], UpdateDataInput.prototype, "dataVersion", void 0);
|
|
130
|
+
__decorate([
|
|
131
|
+
Field({ description: 'An optional comment describing the update' }),
|
|
132
|
+
__metadata("design:type", String)
|
|
133
|
+
], UpdateDataInput.prototype, "comment", void 0);
|
|
134
|
+
UpdateDataInput = __decorate([
|
|
135
|
+
InputType()
|
|
136
|
+
], UpdateDataInput);
|
|
137
|
+
export { UpdateDataInput };
|
|
138
|
+
let MoveDataTarget = class MoveDataTarget {
|
|
139
|
+
};
|
|
140
|
+
__decorate([
|
|
141
|
+
Field(type => ID, { nullable: true, description: 'Data entry should be placed before the data entry with this id in display order' }),
|
|
142
|
+
__metadata("design:type", String)
|
|
143
|
+
], MoveDataTarget.prototype, "aboveTarget", void 0);
|
|
144
|
+
__decorate([
|
|
145
|
+
Field(type => ID, { nullable: true, description: 'The folder to which the data entry is moving. Will be ignored if aboveTarget is provided' }),
|
|
146
|
+
__metadata("design:type", String)
|
|
147
|
+
], MoveDataTarget.prototype, "folderId", void 0);
|
|
148
|
+
__decorate([
|
|
149
|
+
Field(type => ID, { nullable: true, description: 'The site to which the data entry is moving. Will be ignored if aboveTarget or folderId is provided.' }),
|
|
150
|
+
__metadata("design:type", String)
|
|
151
|
+
], MoveDataTarget.prototype, "siteId", void 0);
|
|
152
|
+
MoveDataTarget = __decorate([
|
|
153
|
+
InputType()
|
|
154
|
+
], MoveDataTarget);
|
|
155
|
+
export { MoveDataTarget };
|
|
156
|
+
let DataResponse = class DataResponse extends ValidatedResponse {
|
|
157
|
+
constructor(config) {
|
|
158
|
+
super(config);
|
|
159
|
+
this.data = config.data;
|
|
160
|
+
}
|
|
161
|
+
};
|
|
162
|
+
__decorate([
|
|
163
|
+
Field({ nullable: true }),
|
|
164
|
+
__metadata("design:type", Data)
|
|
165
|
+
], DataResponse.prototype, "data", void 0);
|
|
166
|
+
DataResponse = __decorate([
|
|
167
|
+
ObjectType(),
|
|
168
|
+
__metadata("design:paramtypes", [Object])
|
|
169
|
+
], DataResponse);
|
|
170
|
+
export { DataResponse };
|
|
171
|
+
let DataMultResponse = class DataMultResponse extends ValidatedResponse {
|
|
172
|
+
constructor(config) {
|
|
173
|
+
super(config);
|
|
174
|
+
this.data = config.data;
|
|
175
|
+
}
|
|
176
|
+
};
|
|
177
|
+
__decorate([
|
|
178
|
+
Field(type => [Data], { nullable: true }),
|
|
179
|
+
__metadata("design:type", Array)
|
|
180
|
+
], DataMultResponse.prototype, "data", void 0);
|
|
181
|
+
DataMultResponse = __decorate([
|
|
182
|
+
ObjectType(),
|
|
183
|
+
__metadata("design:paramtypes", [Object])
|
|
184
|
+
], DataMultResponse);
|
|
185
|
+
export { DataMultResponse };
|
|
186
|
+
let DataPermissions = class DataPermissions {
|
|
187
|
+
};
|
|
188
|
+
DataPermissions = __decorate([
|
|
189
|
+
ObjectType()
|
|
190
|
+
], DataPermissions);
|
|
191
|
+
export { DataPermissions };
|
|
192
|
+
export var DataPermission;
|
|
193
|
+
(function (DataPermission) {
|
|
194
|
+
DataPermission["VIEWLATEST"] = "viewlatest";
|
|
195
|
+
DataPermission["PUBLISH"] = "publish";
|
|
196
|
+
DataPermission["UNPUBLISH"] = "unpublish";
|
|
197
|
+
DataPermission["UPDATE"] = "update";
|
|
198
|
+
DataPermission["MOVE"] = "move";
|
|
199
|
+
DataPermission["DELETE"] = "delete";
|
|
200
|
+
DataPermission["UNDELETE"] = "undelete";
|
|
201
|
+
})(DataPermission || (DataPermission = {}));
|
|
202
|
+
registerEnumType(DataPermission, {
|
|
203
|
+
name: 'DataPermission',
|
|
204
|
+
description: 'All the action types that can be individually permissioned on a data entry.'
|
|
205
|
+
});
|
|
206
|
+
//# sourceMappingURL=data.model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data.model.js","sourceRoot":"","sources":["../../src/data/data.model.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Context, ValidatedResponse } from '@txstate-mws/graphql-server';
|
|
2
|
+
import { DateTime } from 'luxon';
|
|
3
|
+
import { DataFolder, Role, Site, Template, User, ObjectVersion, Data, DataFilter, DataPermission, DataResponse, DataMultResponse, CreateDataInput, UpdateDataInput, MoveDataTarget } from '../internal.js';
|
|
4
|
+
export declare class DataResolver {
|
|
5
|
+
dataquery(ctx: Context, filter: DataFilter): Promise<Data[]>;
|
|
6
|
+
deletedBy(ctx: Context, data: Data): Promise<import("../internal.js").RedactedUser | null | undefined>;
|
|
7
|
+
data(ctx: Context, data: Data, published?: boolean, version?: number): Promise<any>;
|
|
8
|
+
template(ctx: Context, data: Data): Promise<Template | undefined>;
|
|
9
|
+
folder(ctx: Context, data: Data): Promise<DataFolder | null | undefined>;
|
|
10
|
+
site(ctx: Context, data: Data): Promise<Site | null | undefined>;
|
|
11
|
+
published(ctx: Context, data: Data): Promise<boolean>;
|
|
12
|
+
publishedAt(ctx: Context, data: Data): Promise<DateTime | null>;
|
|
13
|
+
createdAt(ctx: Context, data: Data): Promise<DateTime>;
|
|
14
|
+
createdBy(ctx: Context, data: Data): Promise<User | import("../internal.js").RedactedUser | undefined>;
|
|
15
|
+
modifiedAt(ctx: Context, data: Data): Promise<DateTime>;
|
|
16
|
+
modifiedBy(ctx: Context, data: Data): Promise<User | import("../internal.js").RedactedUser | undefined>;
|
|
17
|
+
roles(ctx: Context, data: Data, withPermission?: DataPermission[]): Promise<Role[]>;
|
|
18
|
+
versions(ctx: Context, data: Data): Promise<ObjectVersion[]>;
|
|
19
|
+
permissions(data: Data): Data;
|
|
20
|
+
createDataEntry(ctx: Context, args: CreateDataInput): Promise<DataResponse>;
|
|
21
|
+
renameDataEntry(ctx: Context, dataId: string, name: string): Promise<DataResponse>;
|
|
22
|
+
updateDataEntry(ctx: Context, dataId: string, args: UpdateDataInput): Promise<DataResponse>;
|
|
23
|
+
publishDataEntries(ctx: Context, dataIds: string[]): Promise<ValidatedResponse>;
|
|
24
|
+
unpublishDataEntries(ctx: Context, dataIds: string[]): Promise<ValidatedResponse>;
|
|
25
|
+
moveDataEntries(ctx: Context, dataIds: string[], target: MoveDataTarget): Promise<DataMultResponse>;
|
|
26
|
+
deleteDataEntries(ctx: Context, dataIds: string[]): Promise<DataMultResponse>;
|
|
27
|
+
undeleteDataEntries(ctx: Context, dataIds: string[]): Promise<DataMultResponse>;
|
|
28
|
+
}
|
|
29
|
+
export declare class DataPermissionsResolver {
|
|
30
|
+
update(ctx: Context, data: Data): Promise<boolean>;
|
|
31
|
+
publish(ctx: Context, data: Data): Promise<boolean>;
|
|
32
|
+
unpublish(ctx: Context, data: Data): Promise<boolean>;
|
|
33
|
+
move(ctx: Context, data: Data): Promise<boolean>;
|
|
34
|
+
delete(ctx: Context, data: Data): Promise<boolean>;
|
|
35
|
+
undelete(ctx: Context, data: Data): Promise<boolean>;
|
|
36
|
+
}
|