@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,216 @@
|
|
|
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
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
|
+
};
|
|
13
|
+
import { Context, ValidatedResponse } from '@txstate-mws/graphql-server';
|
|
14
|
+
import { Resolver, Query, Arg, Ctx, FieldResolver, Root, Mutation, ID } from 'type-graphql';
|
|
15
|
+
import { Data, DataFilter, DataService, Page, PageFilter, Pagetree, PagetreeService, Site, SiteService, PageService, Template, TemplateArea, TemplateFilter, TemplatePermissions, TemplateService, TemplateType } from '../internal.js';
|
|
16
|
+
let TemplateResolver = class TemplateResolver {
|
|
17
|
+
async templates(ctx, filter) {
|
|
18
|
+
return await ctx.svc(TemplateService).find(filter);
|
|
19
|
+
}
|
|
20
|
+
async pagetrees(ctx, template, direct) {
|
|
21
|
+
return await ctx.svc(PagetreeService).findByTemplateId(template.id, direct);
|
|
22
|
+
}
|
|
23
|
+
async pages(ctx, template, filter) {
|
|
24
|
+
if (template.type === TemplateType.DATA)
|
|
25
|
+
return [];
|
|
26
|
+
else {
|
|
27
|
+
return await ctx.svc(PageService).findByTemplate(template.key, filter);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
async sites(ctx, template, atLeastOneTree) {
|
|
31
|
+
return await ctx.svc(SiteService).findByTemplateId(template.id, atLeastOneTree);
|
|
32
|
+
}
|
|
33
|
+
async data(ctx, template, filter) {
|
|
34
|
+
if (template.type !== TemplateType.DATA)
|
|
35
|
+
return [];
|
|
36
|
+
else {
|
|
37
|
+
return await ctx.svc(DataService).findByTemplate(template.key, filter);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
permissions(template) {
|
|
41
|
+
return template;
|
|
42
|
+
}
|
|
43
|
+
async authorizePagetreeTemplate(ctx, templateId, pagetreeId) {
|
|
44
|
+
return await ctx.svc(TemplateService).authorizeForPagetree(templateId, pagetreeId);
|
|
45
|
+
}
|
|
46
|
+
async authorizeSiteTemplate(ctx, templateId, siteId) {
|
|
47
|
+
return await ctx.svc(TemplateService).authorizeForSite(templateId, siteId);
|
|
48
|
+
}
|
|
49
|
+
async deauthorizePagetreeTemplate(ctx, templateId, pagetreeId) {
|
|
50
|
+
return await ctx.svc(TemplateService).deauthorizeForPagetree(templateId, pagetreeId);
|
|
51
|
+
}
|
|
52
|
+
async deauthorizeSiteTemplate(ctx, templateId, siteId) {
|
|
53
|
+
return await ctx.svc(TemplateService).deauthorizeForSite(templateId, siteId);
|
|
54
|
+
}
|
|
55
|
+
async setTemplateUniversal(ctx, templateId, universal) {
|
|
56
|
+
return await ctx.svc(TemplateService).setUniversal(templateId, universal);
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
__decorate([
|
|
60
|
+
Query(returns => [Template]),
|
|
61
|
+
__param(0, Ctx()),
|
|
62
|
+
__param(1, Arg('filter', { nullable: true })),
|
|
63
|
+
__metadata("design:type", Function),
|
|
64
|
+
__metadata("design:paramtypes", [Context, TemplateFilter]),
|
|
65
|
+
__metadata("design:returntype", Promise)
|
|
66
|
+
], TemplateResolver.prototype, "templates", null);
|
|
67
|
+
__decorate([
|
|
68
|
+
FieldResolver(returns => [Pagetree]),
|
|
69
|
+
__param(0, Ctx()),
|
|
70
|
+
__param(1, Root()),
|
|
71
|
+
__param(2, Arg('direct', {
|
|
72
|
+
nullable: true,
|
|
73
|
+
description: `
|
|
74
|
+
Since a template can be authorized for a whole site or directly for a single pagetree in a site,
|
|
75
|
+
this argument allows you to specify whether you only want to see the pagetrees authorized directly
|
|
76
|
+
or all pagetrees that would be authorized to use the template.`
|
|
77
|
+
})),
|
|
78
|
+
__metadata("design:type", Function),
|
|
79
|
+
__metadata("design:paramtypes", [Context, Template, Boolean]),
|
|
80
|
+
__metadata("design:returntype", Promise)
|
|
81
|
+
], TemplateResolver.prototype, "pagetrees", null);
|
|
82
|
+
__decorate([
|
|
83
|
+
FieldResolver(returns => [Page], { description: 'All pages using this template. Empty array for data templates.' }),
|
|
84
|
+
__param(0, Ctx()),
|
|
85
|
+
__param(1, Root()),
|
|
86
|
+
__param(2, Arg('filter', { nullable: true })),
|
|
87
|
+
__metadata("design:type", Function),
|
|
88
|
+
__metadata("design:paramtypes", [Context, Template, PageFilter]),
|
|
89
|
+
__metadata("design:returntype", Promise)
|
|
90
|
+
], TemplateResolver.prototype, "pages", null);
|
|
91
|
+
__decorate([
|
|
92
|
+
FieldResolver(returns => [Site], { description: 'All sites that are permitted to use this template.' }),
|
|
93
|
+
__param(0, Ctx()),
|
|
94
|
+
__param(1, Root()),
|
|
95
|
+
__param(2, Arg('atLeastOneTree', {
|
|
96
|
+
nullable: true,
|
|
97
|
+
description: 'A template may be linked to a whole site or an individual pagetree. By default this resolver only returns sites where the whole site is able to use the template. Use this toggle to also return any sites where one or more pagetrees are able to use the template. Ignored for data templates.'
|
|
98
|
+
})),
|
|
99
|
+
__metadata("design:type", Function),
|
|
100
|
+
__metadata("design:paramtypes", [Context, Template, Boolean]),
|
|
101
|
+
__metadata("design:returntype", Promise)
|
|
102
|
+
], TemplateResolver.prototype, "sites", null);
|
|
103
|
+
__decorate([
|
|
104
|
+
FieldResolver(returns => [Data], { description: 'All data entries that use this template. Empty array for page or component templates.' }),
|
|
105
|
+
__param(0, Ctx()),
|
|
106
|
+
__param(1, Root()),
|
|
107
|
+
__param(2, Arg('filter', { nullable: true })),
|
|
108
|
+
__metadata("design:type", Function),
|
|
109
|
+
__metadata("design:paramtypes", [Context, Template, DataFilter]),
|
|
110
|
+
__metadata("design:returntype", Promise)
|
|
111
|
+
], TemplateResolver.prototype, "data", null);
|
|
112
|
+
__decorate([
|
|
113
|
+
FieldResolver(returns => TemplatePermissions, {
|
|
114
|
+
description: `Reveal the simplified results after all authorization rules are taken into account
|
|
115
|
+
for the current user. Makes it easy to light up, disable, or hide buttons in the UI.`
|
|
116
|
+
}),
|
|
117
|
+
__param(0, Root()),
|
|
118
|
+
__metadata("design:type", Function),
|
|
119
|
+
__metadata("design:paramtypes", [Template]),
|
|
120
|
+
__metadata("design:returntype", void 0)
|
|
121
|
+
], TemplateResolver.prototype, "permissions", null);
|
|
122
|
+
__decorate([
|
|
123
|
+
Mutation(returns => ValidatedResponse),
|
|
124
|
+
__param(0, Ctx()),
|
|
125
|
+
__param(1, Arg('templateId', type => ID)),
|
|
126
|
+
__param(2, Arg('pagetreeId', type => ID)),
|
|
127
|
+
__metadata("design:type", Function),
|
|
128
|
+
__metadata("design:paramtypes", [Context, String, String]),
|
|
129
|
+
__metadata("design:returntype", Promise)
|
|
130
|
+
], TemplateResolver.prototype, "authorizePagetreeTemplate", null);
|
|
131
|
+
__decorate([
|
|
132
|
+
Mutation(returns => ValidatedResponse),
|
|
133
|
+
__param(0, Ctx()),
|
|
134
|
+
__param(1, Arg('templateId', type => ID)),
|
|
135
|
+
__param(2, Arg('siteId', type => ID)),
|
|
136
|
+
__metadata("design:type", Function),
|
|
137
|
+
__metadata("design:paramtypes", [Context, String, String]),
|
|
138
|
+
__metadata("design:returntype", Promise)
|
|
139
|
+
], TemplateResolver.prototype, "authorizeSiteTemplate", null);
|
|
140
|
+
__decorate([
|
|
141
|
+
Mutation(returns => ValidatedResponse),
|
|
142
|
+
__param(0, Ctx()),
|
|
143
|
+
__param(1, Arg('templateId', type => ID)),
|
|
144
|
+
__param(2, Arg('pagetreeId', type => ID)),
|
|
145
|
+
__metadata("design:type", Function),
|
|
146
|
+
__metadata("design:paramtypes", [Context, String, String]),
|
|
147
|
+
__metadata("design:returntype", Promise)
|
|
148
|
+
], TemplateResolver.prototype, "deauthorizePagetreeTemplate", null);
|
|
149
|
+
__decorate([
|
|
150
|
+
Mutation(returns => ValidatedResponse),
|
|
151
|
+
__param(0, Ctx()),
|
|
152
|
+
__param(1, Arg('templateId', type => ID)),
|
|
153
|
+
__param(2, Arg('siteId', type => ID)),
|
|
154
|
+
__metadata("design:type", Function),
|
|
155
|
+
__metadata("design:paramtypes", [Context, String, String]),
|
|
156
|
+
__metadata("design:returntype", Promise)
|
|
157
|
+
], TemplateResolver.prototype, "deauthorizeSiteTemplate", null);
|
|
158
|
+
__decorate([
|
|
159
|
+
Mutation(returns => ValidatedResponse),
|
|
160
|
+
__param(0, Ctx()),
|
|
161
|
+
__param(1, Arg('templateId', type => ID)),
|
|
162
|
+
__param(2, Arg('universal')),
|
|
163
|
+
__metadata("design:type", Function),
|
|
164
|
+
__metadata("design:paramtypes", [Context, String, Boolean]),
|
|
165
|
+
__metadata("design:returntype", Promise)
|
|
166
|
+
], TemplateResolver.prototype, "setTemplateUniversal", null);
|
|
167
|
+
TemplateResolver = __decorate([
|
|
168
|
+
Resolver(of => Template)
|
|
169
|
+
], TemplateResolver);
|
|
170
|
+
export { TemplateResolver };
|
|
171
|
+
let TemplatePermissionsResolver = class TemplatePermissionsResolver {
|
|
172
|
+
async assign(ctx, template) {
|
|
173
|
+
return await ctx.svc(TemplateService).mayAssign(template);
|
|
174
|
+
}
|
|
175
|
+
async setUniversal(ctx, template) {
|
|
176
|
+
return await ctx.svc(TemplateService).maySetUniversal(template);
|
|
177
|
+
}
|
|
178
|
+
};
|
|
179
|
+
__decorate([
|
|
180
|
+
FieldResolver(returns => Boolean, { description: 'Authenticated user has permission to approve this template for use on a specific site. Currently based on GlobalRule.manageUsers.' }),
|
|
181
|
+
__param(0, Ctx()),
|
|
182
|
+
__param(1, Root()),
|
|
183
|
+
__metadata("design:type", Function),
|
|
184
|
+
__metadata("design:paramtypes", [Context, Template]),
|
|
185
|
+
__metadata("design:returntype", Promise)
|
|
186
|
+
], TemplatePermissionsResolver.prototype, "assign", null);
|
|
187
|
+
__decorate([
|
|
188
|
+
FieldResolver(returns => Boolean, { description: 'Authenticated user has permission to make this template universal or not. Currently based on GlobalRule.manageUsers.' }),
|
|
189
|
+
__param(0, Ctx()),
|
|
190
|
+
__param(1, Root()),
|
|
191
|
+
__metadata("design:type", Function),
|
|
192
|
+
__metadata("design:paramtypes", [Context, Template]),
|
|
193
|
+
__metadata("design:returntype", Promise)
|
|
194
|
+
], TemplatePermissionsResolver.prototype, "setUniversal", null);
|
|
195
|
+
TemplatePermissionsResolver = __decorate([
|
|
196
|
+
Resolver(of => TemplatePermissions)
|
|
197
|
+
], TemplatePermissionsResolver);
|
|
198
|
+
export { TemplatePermissionsResolver };
|
|
199
|
+
let TemplateAreaResolver = class TemplateAreaResolver {
|
|
200
|
+
async availableComponents(ctx, templateArea) {
|
|
201
|
+
return await ctx.svc(TemplateService).findByKeys(templateArea.availableComponents);
|
|
202
|
+
}
|
|
203
|
+
};
|
|
204
|
+
__decorate([
|
|
205
|
+
FieldResolver(returns => [Template], { description: 'Component templates that are possible inside this area. Does not take user/site permissions into account.' }),
|
|
206
|
+
__param(0, Ctx()),
|
|
207
|
+
__param(1, Root()),
|
|
208
|
+
__metadata("design:type", Function),
|
|
209
|
+
__metadata("design:paramtypes", [Context, TemplateArea]),
|
|
210
|
+
__metadata("design:returntype", Promise)
|
|
211
|
+
], TemplateAreaResolver.prototype, "availableComponents", null);
|
|
212
|
+
TemplateAreaResolver = __decorate([
|
|
213
|
+
Resolver(of => TemplateArea)
|
|
214
|
+
], TemplateAreaResolver);
|
|
215
|
+
export { TemplateAreaResolver };
|
|
216
|
+
//# sourceMappingURL=template.resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template.resolver.js","sourceRoot":"","sources":["../../src/template/template.resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { BaseService, ValidatedResponse } from '@txstate-mws/graphql-server';
|
|
2
|
+
import { Template, TemplateFilter, DosGatoService } from '../internal.js';
|
|
3
|
+
export declare class TemplateServiceInternal extends BaseService {
|
|
4
|
+
find(filter?: TemplateFilter): Promise<Template[]>;
|
|
5
|
+
findById(id: number): Promise<Template | undefined>;
|
|
6
|
+
findByKey(key: string): Promise<Template | undefined>;
|
|
7
|
+
findByKeys(keys: string[]): Promise<Template[]>;
|
|
8
|
+
findBySiteId(siteId: string, filter?: TemplateFilter): Promise<Template[]>;
|
|
9
|
+
findByPagetreeId(pagetreeId: string, filter?: TemplateFilter): Promise<Template[]>;
|
|
10
|
+
}
|
|
11
|
+
export declare class TemplateService extends DosGatoService<Template> {
|
|
12
|
+
raw: TemplateServiceInternal;
|
|
13
|
+
find(filter?: TemplateFilter): Promise<Template[]>;
|
|
14
|
+
findById(id: number): Promise<Template | undefined>;
|
|
15
|
+
findByKey(key: string): Promise<Template | undefined>;
|
|
16
|
+
findByKeys(keys: string[]): Promise<Template[]>;
|
|
17
|
+
findBySiteId(siteId: string, filter?: TemplateFilter): Promise<Template[]>;
|
|
18
|
+
findByPagetreeId(pagetreeId: string, filter?: TemplateFilter): Promise<Template[]>;
|
|
19
|
+
authorizeForPagetree(templateId: string, pagetreeId: string): Promise<ValidatedResponse>;
|
|
20
|
+
deauthorizeForPagetree(templateId: string, pagetreeId: string): Promise<ValidatedResponse>;
|
|
21
|
+
authorizeForSite(templateId: string, siteId: string): Promise<ValidatedResponse>;
|
|
22
|
+
deauthorizeForSite(templateId: string, siteId: string): Promise<ValidatedResponse>;
|
|
23
|
+
setUniversal(templateId: string, universal: boolean): Promise<ValidatedResponse>;
|
|
24
|
+
mayView(template: Template): Promise<boolean>;
|
|
25
|
+
mayAssign(template: Template): Promise<boolean>;
|
|
26
|
+
maySetUniversal(template: Template): Promise<boolean>;
|
|
27
|
+
}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import { ManyJoinedLoader, PrimaryKeyLoader } from 'dataloader-factory';
|
|
2
|
+
import { BaseService, ValidatedResponse } from '@txstate-mws/graphql-server';
|
|
3
|
+
import { getTemplates, getTemplatesByPagetree, getTemplatesBySite, DosGatoService, authorizeForPagetree, deauthorizeForPagetree, authorizeForSite, deauthorizeForSite, setUniversal, PagetreeServiceInternal, SiteServiceInternal } from '../internal.js';
|
|
4
|
+
const templatesByIdLoader = new PrimaryKeyLoader({
|
|
5
|
+
fetch: async (ids) => {
|
|
6
|
+
return await getTemplates({ ids });
|
|
7
|
+
}
|
|
8
|
+
});
|
|
9
|
+
const templatesByKeyLoader = new PrimaryKeyLoader({
|
|
10
|
+
fetch: async (keys) => {
|
|
11
|
+
return await getTemplates({ keys });
|
|
12
|
+
},
|
|
13
|
+
extractId: tmpl => tmpl.key,
|
|
14
|
+
idLoader: templatesByIdLoader
|
|
15
|
+
});
|
|
16
|
+
templatesByIdLoader.addIdLoader(templatesByKeyLoader);
|
|
17
|
+
const templatesBySiteIdLoader = new ManyJoinedLoader({
|
|
18
|
+
fetch: async (siteIds, filter) => {
|
|
19
|
+
return await getTemplatesBySite(siteIds, filter);
|
|
20
|
+
},
|
|
21
|
+
idLoader: [templatesByIdLoader, templatesByKeyLoader]
|
|
22
|
+
});
|
|
23
|
+
const templatesByPagetreeIdLoader = new ManyJoinedLoader({
|
|
24
|
+
fetch: async (pagetreeIds, filter) => {
|
|
25
|
+
return await getTemplatesByPagetree(pagetreeIds, filter);
|
|
26
|
+
},
|
|
27
|
+
idLoader: [templatesByIdLoader, templatesByKeyLoader]
|
|
28
|
+
});
|
|
29
|
+
export class TemplateServiceInternal extends BaseService {
|
|
30
|
+
async find(filter) {
|
|
31
|
+
const templates = await getTemplates(filter);
|
|
32
|
+
for (const t of templates) {
|
|
33
|
+
this.loaders.get(templatesByIdLoader).prime(t.id, t);
|
|
34
|
+
this.loaders.get(templatesByKeyLoader).prime(t.key, t);
|
|
35
|
+
}
|
|
36
|
+
return templates;
|
|
37
|
+
}
|
|
38
|
+
async findById(id) {
|
|
39
|
+
return await this.loaders.get(templatesByIdLoader).load(id);
|
|
40
|
+
}
|
|
41
|
+
async findByKey(key) {
|
|
42
|
+
return await this.loaders.get(templatesByKeyLoader).load(key);
|
|
43
|
+
}
|
|
44
|
+
async findByKeys(keys) {
|
|
45
|
+
return await this.loaders.loadMany(templatesByKeyLoader, keys);
|
|
46
|
+
}
|
|
47
|
+
async findBySiteId(siteId, filter) {
|
|
48
|
+
return await this.loaders.get(templatesBySiteIdLoader, filter).load(siteId);
|
|
49
|
+
}
|
|
50
|
+
async findByPagetreeId(pagetreeId, filter) {
|
|
51
|
+
return await this.loaders.get(templatesByPagetreeIdLoader, filter).load(pagetreeId);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
export class TemplateService extends DosGatoService {
|
|
55
|
+
constructor() {
|
|
56
|
+
super(...arguments);
|
|
57
|
+
this.raw = this.svc(TemplateServiceInternal);
|
|
58
|
+
}
|
|
59
|
+
async find(filter) {
|
|
60
|
+
return await this.removeUnauthorized(await this.raw.find(filter));
|
|
61
|
+
}
|
|
62
|
+
async findById(id) {
|
|
63
|
+
return await this.removeUnauthorized(await this.raw.findById(id));
|
|
64
|
+
}
|
|
65
|
+
async findByKey(key) {
|
|
66
|
+
return await this.removeUnauthorized(await this.raw.findByKey(key));
|
|
67
|
+
}
|
|
68
|
+
async findByKeys(keys) {
|
|
69
|
+
return await this.removeUnauthorized(await this.raw.findByKeys(keys));
|
|
70
|
+
}
|
|
71
|
+
async findBySiteId(siteId, filter) {
|
|
72
|
+
return await this.removeUnauthorized(await this.raw.findBySiteId(siteId, filter));
|
|
73
|
+
}
|
|
74
|
+
async findByPagetreeId(pagetreeId, filter) {
|
|
75
|
+
return await this.removeUnauthorized(await this.raw.findByPagetreeId(pagetreeId, filter));
|
|
76
|
+
}
|
|
77
|
+
async authorizeForPagetree(templateId, pagetreeId) {
|
|
78
|
+
const [template, pagetree] = await Promise.all([
|
|
79
|
+
this.raw.findById(Number(templateId)),
|
|
80
|
+
this.svc(PagetreeServiceInternal).findById(pagetreeId)
|
|
81
|
+
]);
|
|
82
|
+
if (!template)
|
|
83
|
+
throw new Error('Template to be authorized does not exist');
|
|
84
|
+
if (!pagetree)
|
|
85
|
+
throw new Error('Cannot authorize template for a pagetree that does not exist');
|
|
86
|
+
if (!(await this.mayAssign(template)))
|
|
87
|
+
throw new Error('Current user is not permitted to authorize this template for this pagetree.');
|
|
88
|
+
try {
|
|
89
|
+
await authorizeForPagetree(templateId, pagetreeId);
|
|
90
|
+
return new ValidatedResponse({ success: true });
|
|
91
|
+
}
|
|
92
|
+
catch (err) {
|
|
93
|
+
console.error(err);
|
|
94
|
+
throw new Error('An unknown error occurred while authorizing a template for a pagetree');
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
async deauthorizeForPagetree(templateId, pagetreeId) {
|
|
98
|
+
const [template, pagetree] = await Promise.all([
|
|
99
|
+
this.raw.findById(Number(templateId)),
|
|
100
|
+
this.svc(PagetreeServiceInternal).findById(pagetreeId)
|
|
101
|
+
]);
|
|
102
|
+
if (!template)
|
|
103
|
+
throw new Error('Template to be deauthorized does not exist');
|
|
104
|
+
if (!pagetree)
|
|
105
|
+
throw new Error('Cannot deauthorize template for a pagetree that does not exist');
|
|
106
|
+
if (!(await this.mayAssign(template)))
|
|
107
|
+
throw new Error('Current user is not permitted to deauthorize this template for this pagetree');
|
|
108
|
+
try {
|
|
109
|
+
const removed = await deauthorizeForPagetree(templateId, pagetreeId);
|
|
110
|
+
if (removed) {
|
|
111
|
+
return new ValidatedResponse({ success: true });
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
return ValidatedResponse.error('Template was not authorized for pagetree.');
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
catch (err) {
|
|
118
|
+
console.error(err);
|
|
119
|
+
throw new Error('An unknown error occurred while deauthorizing a template for a pagetree');
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
async authorizeForSite(templateId, siteId) {
|
|
123
|
+
const [template, site] = await Promise.all([
|
|
124
|
+
this.raw.findById(Number(templateId)),
|
|
125
|
+
this.svc(SiteServiceInternal).findById(siteId)
|
|
126
|
+
]);
|
|
127
|
+
if (!template)
|
|
128
|
+
throw new Error('Template to be authorized does not exist');
|
|
129
|
+
if (!site)
|
|
130
|
+
throw new Error('Cannot authorize template for a site that does not exist');
|
|
131
|
+
if (!(await this.mayAssign(template)))
|
|
132
|
+
throw new Error('Current user is not permitted to authorize this template for this site');
|
|
133
|
+
try {
|
|
134
|
+
await authorizeForSite(templateId, siteId);
|
|
135
|
+
return new ValidatedResponse({ success: true });
|
|
136
|
+
}
|
|
137
|
+
catch (err) {
|
|
138
|
+
console.error(err);
|
|
139
|
+
throw new Error('An unknown error occurred while authorizing a template for a site.');
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
async deauthorizeForSite(templateId, siteId) {
|
|
143
|
+
const [template, site] = await Promise.all([
|
|
144
|
+
this.raw.findById(Number(templateId)),
|
|
145
|
+
this.svc(SiteServiceInternal).findById(siteId)
|
|
146
|
+
]);
|
|
147
|
+
if (!template)
|
|
148
|
+
throw new Error('Template to be authorized does not exist');
|
|
149
|
+
if (!site)
|
|
150
|
+
throw new Error('Cannot authorize template for a site that does not exist');
|
|
151
|
+
if (!(await this.mayAssign(template)))
|
|
152
|
+
throw new Error('Current user is not permitted to deauthorize this template for this site');
|
|
153
|
+
try {
|
|
154
|
+
const removed = await deauthorizeForSite(templateId, siteId);
|
|
155
|
+
if (removed) {
|
|
156
|
+
return new ValidatedResponse({ success: true });
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
return ValidatedResponse.error('Template was not authorized for site.');
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
catch (err) {
|
|
163
|
+
console.log(err);
|
|
164
|
+
throw new Error('An unknown error occurred while deauthorizing a template for a site');
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
async setUniversal(templateId, universal) {
|
|
168
|
+
const template = await this.raw.findById(Number(templateId));
|
|
169
|
+
if (!template)
|
|
170
|
+
throw new Error('Template to be modified does not exist');
|
|
171
|
+
if (!(await this.maySetUniversal(template)))
|
|
172
|
+
throw new Error('Current user is not permitted to change whether or not this template is universal.');
|
|
173
|
+
try {
|
|
174
|
+
await setUniversal(templateId, universal);
|
|
175
|
+
return new ValidatedResponse({ success: true });
|
|
176
|
+
}
|
|
177
|
+
catch (err) {
|
|
178
|
+
console.error(err);
|
|
179
|
+
throw new Error('An unknown error occurred while setting the universal property for a template');
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
async mayView(template) {
|
|
183
|
+
return true;
|
|
184
|
+
}
|
|
185
|
+
async mayAssign(template) {
|
|
186
|
+
return await this.haveGlobalPerm('manageUsers');
|
|
187
|
+
}
|
|
188
|
+
async maySetUniversal(template) {
|
|
189
|
+
return await this.haveGlobalPerm('manageUsers');
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
//# sourceMappingURL=template.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template.service.js","sourceRoot":"","sources":["../../src/template/template.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { TemplateRule, TemplateRuleFilter, CreateTemplateRuleInput, UpdateTemplateRuleInput } from '../internal.js';
|
|
2
|
+
export declare function getTemplateRules(filter: TemplateRuleFilter): Promise<TemplateRule[]>;
|
|
3
|
+
export declare function createTemplateRule(args: CreateTemplateRuleInput): Promise<number>;
|
|
4
|
+
export declare function updateTemplateRule(args: UpdateTemplateRuleInput): Promise<number>;
|
|
5
|
+
export declare function deleteTemplateRule(ruleId: string): Promise<number>;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import db from 'mysql2-async/db';
|
|
2
|
+
import { TemplateRule } from '../internal.js';
|
|
3
|
+
import { isNotNull } from 'txstate-utils';
|
|
4
|
+
function processFilters(filter) {
|
|
5
|
+
const binds = [];
|
|
6
|
+
const where = [];
|
|
7
|
+
const joins = [];
|
|
8
|
+
if (filter.ids?.length) {
|
|
9
|
+
where.push(`templaterules.id IN (${db.in(binds, filter.ids)})`);
|
|
10
|
+
}
|
|
11
|
+
if (filter.roleIds?.length) {
|
|
12
|
+
where.push(`templaterules.roleId IN (${db.in(binds, filter.roleIds)})`);
|
|
13
|
+
}
|
|
14
|
+
if (filter.templateIds?.length) {
|
|
15
|
+
const ors = [];
|
|
16
|
+
if (filter.templateIds.some(id => !id))
|
|
17
|
+
ors.push('templaterules.templateId IS NULL');
|
|
18
|
+
const templateIds = filter.templateIds.filter(isNotNull);
|
|
19
|
+
if (templateIds.length)
|
|
20
|
+
ors.push(`templaterules.templateId IN (${db.in(binds, templateIds)})`);
|
|
21
|
+
where.push(ors.join('OR'));
|
|
22
|
+
}
|
|
23
|
+
if (filter.templateKeys?.length) {
|
|
24
|
+
if (filter.templateKeys.includes(null)) {
|
|
25
|
+
where.push(`(templates.key IN (${db.in(binds, filter.templateKeys)}) OR templaterules.templateId IS NULL)`);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
where.push(`templates.key IN (${db.in(binds, filter.templateKeys)})`);
|
|
29
|
+
}
|
|
30
|
+
joins.push('LEFT JOIN templates ON templaterules.templateId = templates.id');
|
|
31
|
+
}
|
|
32
|
+
if (filter.use) {
|
|
33
|
+
where.push('`use` IS TRUE');
|
|
34
|
+
}
|
|
35
|
+
return { binds, where, joins };
|
|
36
|
+
}
|
|
37
|
+
export async function getTemplateRules(filter) {
|
|
38
|
+
const { binds, where, joins } = processFilters(filter);
|
|
39
|
+
const rules = await db.getall(`SELECT templaterules.* FROM templaterules
|
|
40
|
+
${joins.join('\n')}
|
|
41
|
+
WHERE (${where.join(') AND (')})`, binds);
|
|
42
|
+
return rules.map(row => new TemplateRule(row));
|
|
43
|
+
}
|
|
44
|
+
export async function createTemplateRule(args) {
|
|
45
|
+
const columns = ['roleId'];
|
|
46
|
+
const binds = [];
|
|
47
|
+
if (!args.roleId) {
|
|
48
|
+
throw new Error('Must include a role ID when creating a template rule');
|
|
49
|
+
}
|
|
50
|
+
binds.push(args.roleId);
|
|
51
|
+
if (args.templateId) {
|
|
52
|
+
columns.push('templateId');
|
|
53
|
+
binds.push(args.templateId);
|
|
54
|
+
}
|
|
55
|
+
if (args.grants?.use) {
|
|
56
|
+
columns.push('`use`');
|
|
57
|
+
binds.push(args.grants.use);
|
|
58
|
+
}
|
|
59
|
+
return await db.insert(`INSERT INTO templaterules (${columns.join(',')}) VALUES(${columns.map(c => '?').join(',')})`, binds);
|
|
60
|
+
}
|
|
61
|
+
export async function updateTemplateRule(args) {
|
|
62
|
+
const updates = [];
|
|
63
|
+
const binds = [];
|
|
64
|
+
if (typeof args.templateId !== 'undefined') {
|
|
65
|
+
updates.push('templateId = ?');
|
|
66
|
+
binds.push(args.templateId);
|
|
67
|
+
}
|
|
68
|
+
if (isNotNull(args.grants?.use)) {
|
|
69
|
+
updates.push('`use` = ?');
|
|
70
|
+
binds.push(args.grants.use);
|
|
71
|
+
}
|
|
72
|
+
binds.push(String(args.ruleId));
|
|
73
|
+
return await db.update(`UPDATE templaterules
|
|
74
|
+
SET ${updates.join(', ')}
|
|
75
|
+
WHERE id = ?`, binds);
|
|
76
|
+
}
|
|
77
|
+
export async function deleteTemplateRule(ruleId) {
|
|
78
|
+
return await db.delete('DELETE FROM templaterules WHERE id = ?', [ruleId]);
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=templaterule.database.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templaterule.database.js","sourceRoot":"","sources":["../../src/templaterule/templaterule.database.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { ValidatedResponse, ValidatedResponseArgs } from '@txstate-mws/graphql-server';
|
|
2
|
+
export declare class TemplateRuleGrants {
|
|
3
|
+
use: boolean;
|
|
4
|
+
constructor(row?: any);
|
|
5
|
+
}
|
|
6
|
+
export declare class TemplateRule {
|
|
7
|
+
id: string;
|
|
8
|
+
type: string;
|
|
9
|
+
grants: TemplateRuleGrants;
|
|
10
|
+
roleId: string;
|
|
11
|
+
templateId?: number;
|
|
12
|
+
constructor(row: any);
|
|
13
|
+
}
|
|
14
|
+
export declare class TemplateRuleFilter {
|
|
15
|
+
ids?: string[];
|
|
16
|
+
roleIds?: string[];
|
|
17
|
+
templateKeys?: (string | null)[];
|
|
18
|
+
templateIds?: (number | null)[];
|
|
19
|
+
use?: boolean;
|
|
20
|
+
}
|
|
21
|
+
export declare class CreateTemplateRuleInput {
|
|
22
|
+
roleId: string;
|
|
23
|
+
templateId?: string;
|
|
24
|
+
grants?: TemplateRuleGrants;
|
|
25
|
+
}
|
|
26
|
+
export declare class UpdateTemplateRuleInput {
|
|
27
|
+
ruleId: string;
|
|
28
|
+
templateId?: string;
|
|
29
|
+
grants?: TemplateRuleGrants;
|
|
30
|
+
}
|
|
31
|
+
export declare class TemplateRuleResponse extends ValidatedResponse {
|
|
32
|
+
templateRule?: TemplateRule;
|
|
33
|
+
constructor(config: ValidatedResponseArgs & {
|
|
34
|
+
templateRule?: TemplateRule;
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
export declare class TemplateRulePermissions {
|
|
38
|
+
}
|