@dosgato/api 1.6.13 → 1.6.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/tag/tag.database.d.ts +1 -1
- package/dist/tag/tag.database.js +17 -4
- package/dist/tag/tag.database.js.map +1 -1
- package/dist/tag/tag.resolver.d.ts +2 -2
- package/dist/tag/tag.resolver.js +7 -6
- package/dist/tag/tag.resolver.js.map +1 -1
- package/dist/tag/tag.service.d.ts +2 -2
- package/dist/tag/tag.service.js +8 -7
- package/dist/tag/tag.service.js.map +1 -1
- package/package.json +1 -1
|
@@ -8,4 +8,4 @@ export declare function getTagPageIds(tagIds: string[]): Promise<{
|
|
|
8
8
|
}[]>;
|
|
9
9
|
export declare function addUserTags(tagIds: string[], pageInternalIds: number[]): Promise<void>;
|
|
10
10
|
export declare function removeUserTags(tagIds: string[], pageInternalIds: number[]): Promise<void>;
|
|
11
|
-
export declare function replaceUserTags(tagIds: string[],
|
|
11
|
+
export declare function replaceUserTags(tagIds: string[], pageInternalIds: number[], includeChildren?: boolean): Promise<void>;
|
package/dist/tag/tag.database.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import db from 'mysql2-async/db';
|
|
2
|
+
import { DeleteStateDefault, getPages } from '../internal.js';
|
|
2
3
|
export async function getPageTagIds(internalIds) {
|
|
3
4
|
const binds = [];
|
|
4
5
|
return await db.getall(`SELECT tagId, pageId FROM pages_tags WHERE pageId IN (${db.in(binds, internalIds)})`, binds);
|
|
@@ -25,17 +26,29 @@ export async function removeUserTags(tagIds, pageInternalIds) {
|
|
|
25
26
|
const binds = [];
|
|
26
27
|
await db.insert(`DELETE FROM pages_tags WHERE (tagId, pageId) IN (${db.in(binds, pairs)})`, binds);
|
|
27
28
|
}
|
|
28
|
-
export async function replaceUserTags(tagIds,
|
|
29
|
+
export async function replaceUserTags(tagIds, pageInternalIds, includeChildren) {
|
|
29
30
|
await db.transaction(async (db) => {
|
|
30
|
-
let binds = [
|
|
31
|
-
let
|
|
31
|
+
let binds = [];
|
|
32
|
+
let childInternalIds = [];
|
|
33
|
+
if (includeChildren) {
|
|
34
|
+
const refetchedPages = await getPages({ internalIds: pageInternalIds }, db);
|
|
35
|
+
const children = await getPages({ deleteStates: DeleteStateDefault, internalIdPathsRecursive: refetchedPages.map(page => `${page.path}${page.path === '/' ? '' : '/'}${page.internalId}`) }, db);
|
|
36
|
+
childInternalIds = children.map(p => p.internalId);
|
|
37
|
+
}
|
|
38
|
+
let query = `DELETE FROM pages_tags WHERE pageId IN (${db.in(binds, [...pageInternalIds, ...childInternalIds])})`;
|
|
32
39
|
if (tagIds.length) {
|
|
33
40
|
query += ` AND tagId NOT IN (${db.in(binds, tagIds)})`;
|
|
34
41
|
}
|
|
35
42
|
await db.delete(query, binds);
|
|
36
43
|
binds = [];
|
|
37
44
|
if (tagIds.length) {
|
|
38
|
-
|
|
45
|
+
const values = [];
|
|
46
|
+
for (const tagId of tagIds) {
|
|
47
|
+
for (const pageInternalId of [...pageInternalIds, ...childInternalIds]) {
|
|
48
|
+
values.push(`('${tagId}', ${pageInternalId})`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
await db.insert(`INSERT INTO pages_tags (tagId, pageId) VALUES ${values.join(', ')} ON DUPLICATE KEY UPDATE tagId=tagId`);
|
|
39
52
|
}
|
|
40
53
|
});
|
|
41
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tag.database.js","sourceRoot":"","sources":["../../src/tag/tag.database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"tag.database.js","sourceRoot":"","sources":["../../src/tag/tag.database.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Page, PageFilter,
|
|
1
|
+
import { Page, PageFilter, PagesResponse, UserTag } from '../internal.js';
|
|
2
2
|
import { Context } from '@txstate-mws/graphql-server';
|
|
3
3
|
export declare class UserTagResolver {
|
|
4
4
|
pages(ctx: Context, tag: UserTag, filter?: PageFilter): Promise<Page[]>;
|
|
5
5
|
addTagsToPages(ctx: Context, tagIds: string[], pageIds: string[]): Promise<PagesResponse>;
|
|
6
6
|
removeTagsFromPages(ctx: Context, tagIds: string[], pageIds: string[]): Promise<PagesResponse>;
|
|
7
|
-
replaceTagsOnPage(ctx: Context, tagIds: string[],
|
|
7
|
+
replaceTagsOnPage(ctx: Context, tagIds: string[], pageIds: string[], includeChildren?: boolean): Promise<PagesResponse>;
|
|
8
8
|
}
|
package/dist/tag/tag.resolver.js
CHANGED
|
@@ -11,7 +11,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
11
11
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
12
|
};
|
|
13
13
|
import { Arg, Ctx, FieldResolver, ID, Mutation, Resolver, Root } from 'type-graphql';
|
|
14
|
-
import { Page, PageFilter,
|
|
14
|
+
import { Page, PageFilter, PageService, PagesResponse, TagService, UserTag } from '../internal.js';
|
|
15
15
|
import { Context } from '@txstate-mws/graphql-server';
|
|
16
16
|
let UserTagResolver = class UserTagResolver {
|
|
17
17
|
async pages(ctx, tag, filter) {
|
|
@@ -23,8 +23,8 @@ let UserTagResolver = class UserTagResolver {
|
|
|
23
23
|
async removeTagsFromPages(ctx, tagIds, pageIds) {
|
|
24
24
|
return await ctx.svc(TagService).removeTagsFromPages(tagIds, pageIds);
|
|
25
25
|
}
|
|
26
|
-
async replaceTagsOnPage(ctx, tagIds,
|
|
27
|
-
return await ctx.svc(TagService).setPageTags(tagIds,
|
|
26
|
+
async replaceTagsOnPage(ctx, tagIds, pageIds, includeChildren) {
|
|
27
|
+
return await ctx.svc(TagService).setPageTags(tagIds, pageIds, includeChildren);
|
|
28
28
|
}
|
|
29
29
|
};
|
|
30
30
|
__decorate([
|
|
@@ -55,12 +55,13 @@ __decorate([
|
|
|
55
55
|
__metadata("design:returntype", Promise)
|
|
56
56
|
], UserTagResolver.prototype, "removeTagsFromPages", null);
|
|
57
57
|
__decorate([
|
|
58
|
-
Mutation(returns =>
|
|
58
|
+
Mutation(returns => PagesResponse, { description: 'Replace the user tags on the given pages. Any pre-existing non-listed tags will be removed.' }),
|
|
59
59
|
__param(0, Ctx()),
|
|
60
60
|
__param(1, Arg('tagIds', type => [ID])),
|
|
61
|
-
__param(2, Arg('
|
|
61
|
+
__param(2, Arg('pageIds', type => [ID])),
|
|
62
|
+
__param(3, Arg('includeChildren', { nullable: true })),
|
|
62
63
|
__metadata("design:type", Function),
|
|
63
|
-
__metadata("design:paramtypes", [Context, Array,
|
|
64
|
+
__metadata("design:paramtypes", [Context, Array, Array, Boolean]),
|
|
64
65
|
__metadata("design:returntype", Promise)
|
|
65
66
|
], UserTagResolver.prototype, "replaceTagsOnPage", null);
|
|
66
67
|
UserTagResolver = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tag.resolver.js","sourceRoot":"","sources":["../../src/tag/tag.resolver.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,aAAa,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACpF,OAAO,EAAE,IAAI,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"tag.resolver.js","sourceRoot":"","sources":["../../src/tag/tag.resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BaseService } from '@txstate-mws/graphql-server';
|
|
2
2
|
import { OneToManyLoader, ParentDocumentLoader } from 'dataloader-factory';
|
|
3
|
-
import { type Page,
|
|
3
|
+
import { type Page, PagesResponse, type UserTag, UserTagGroup } from '../internal.js';
|
|
4
4
|
export declare const tagIdsByPageIdLoader: OneToManyLoader<number, {
|
|
5
5
|
tagId: string;
|
|
6
6
|
pageId: number;
|
|
@@ -14,5 +14,5 @@ export declare class TagServiceInternal extends BaseService {
|
|
|
14
14
|
export declare class TagService extends TagServiceInternal {
|
|
15
15
|
addTagsToPages(tagIds: string[], pageDataIds: string[]): Promise<PagesResponse>;
|
|
16
16
|
removeTagsFromPages(tagIds: string[], pageDataIds: string[]): Promise<PagesResponse>;
|
|
17
|
-
setPageTags(tagIds: string[],
|
|
17
|
+
setPageTags(tagIds: string[], pageDataIds: string[], includeChildren?: boolean): Promise<PagesResponse>;
|
|
18
18
|
}
|
package/dist/tag/tag.service.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BaseService } from '@txstate-mws/graphql-server';
|
|
2
2
|
import { OneToManyLoader, ParentDocumentLoader } from 'dataloader-factory';
|
|
3
|
-
import { DataServiceInternal,
|
|
3
|
+
import { DataServiceInternal, PageService, PageServiceInternal, PagesResponse, UserTagGroup, VersionedService } from '../internal.js';
|
|
4
4
|
import { addUserTags, getPageTagIds, removeUserTags, replaceUserTags } from './tag.database.js';
|
|
5
5
|
export const tagIdsByPageIdLoader = new OneToManyLoader({
|
|
6
6
|
fetch: async (pageIds) => await getPageTagIds(pageIds),
|
|
@@ -58,13 +58,14 @@ export class TagService extends TagServiceInternal {
|
|
|
58
58
|
this.loaders.clear();
|
|
59
59
|
return new PagesResponse({ success: true, pages });
|
|
60
60
|
}
|
|
61
|
-
async setPageTags(tagIds,
|
|
62
|
-
const
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
61
|
+
async setPageTags(tagIds, pageDataIds, includeChildren) {
|
|
62
|
+
const pages = await this.svc(PageServiceInternal).findByIds(pageDataIds);
|
|
63
|
+
const pageSvc = this.svc(PageService);
|
|
64
|
+
if (pages.some(p => !pageSvc.mayUpdate(p)))
|
|
65
|
+
throw new Error('You are not authorized to edit all of the selected pages.');
|
|
66
|
+
await replaceUserTags(tagIds, pages.map(p => p.internalId), includeChildren);
|
|
66
67
|
this.loaders.clear();
|
|
67
|
-
return new
|
|
68
|
+
return new PagesResponse({ success: true, pages });
|
|
68
69
|
}
|
|
69
70
|
}
|
|
70
71
|
//# sourceMappingURL=tag.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tag.service.js","sourceRoot":"","sources":["../../src/tag/tag.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAmC,MAAM,6BAA6B,CAAA;AAC1F,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAC1E,OAAO,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"tag.service.js","sourceRoot":"","sources":["../../src/tag/tag.service.ts"],"names":[],"mappings":"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"}
|