@dosgato/api 1.7.12 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/index.js +5 -2
  2. package/dist/index.js.map +1 -1
  3. package/dist/internal.d.ts +5 -0
  4. package/dist/internal.js +5 -0
  5. package/dist/internal.js.map +1 -1
  6. package/dist/migrations.js +40 -2
  7. package/dist/migrations.js.map +1 -1
  8. package/dist/page/page.database.js +2 -1
  9. package/dist/page/page.database.js.map +1 -1
  10. package/dist/page/page.indexing.d.ts +1 -0
  11. package/dist/page/page.indexing.js +19 -6
  12. package/dist/page/page.indexing.js.map +1 -1
  13. package/dist/page/page.model.d.ts +6 -0
  14. package/dist/page/page.model.js +26 -0
  15. package/dist/page/page.model.js.map +1 -1
  16. package/dist/page/page.resolver.d.ts +5 -1
  17. package/dist/page/page.resolver.js +48 -1
  18. package/dist/page/page.resolver.js.map +1 -1
  19. package/dist/page/page.routes.js +31 -21
  20. package/dist/page/page.routes.js.map +1 -1
  21. package/dist/page/page.service.d.ts +4 -1
  22. package/dist/page/page.service.js +125 -17
  23. package/dist/page/page.service.js.map +1 -1
  24. package/dist/scheduledpublish/scheduledpublish.cron.d.ts +1 -0
  25. package/dist/scheduledpublish/scheduledpublish.cron.js +40 -0
  26. package/dist/scheduledpublish/scheduledpublish.cron.js.map +1 -0
  27. package/dist/scheduledpublish/scheduledpublish.database.d.ts +38 -0
  28. package/dist/scheduledpublish/scheduledpublish.database.js +86 -0
  29. package/dist/scheduledpublish/scheduledpublish.database.js.map +1 -0
  30. package/dist/scheduledpublish/scheduledpublish.model.d.ts +76 -0
  31. package/dist/scheduledpublish/scheduledpublish.model.js +283 -0
  32. package/dist/scheduledpublish/scheduledpublish.model.js.map +1 -0
  33. package/dist/scheduledpublish/scheduledpublish.resolver.d.ts +16 -0
  34. package/dist/scheduledpublish/scheduledpublish.resolver.js +143 -0
  35. package/dist/scheduledpublish/scheduledpublish.resolver.js.map +1 -0
  36. package/dist/scheduledpublish/scheduledpublish.service.d.ts +22 -0
  37. package/dist/scheduledpublish/scheduledpublish.service.js +170 -0
  38. package/dist/scheduledpublish/scheduledpublish.service.js.map +1 -0
  39. package/dist/template/template.model.d.ts +1 -0
  40. package/dist/template/template.model.js +7 -0
  41. package/dist/template/template.model.js.map +1 -1
  42. package/dist/util/authservice.d.ts +1 -0
  43. package/dist/util/authservice.js +5 -0
  44. package/dist/util/authservice.js.map +1 -1
  45. package/dist/versionedservice/service.d.ts +7 -1
  46. package/dist/versionedservice/service.js +67 -17
  47. package/dist/versionedservice/service.js.map +1 -1
  48. package/dist/versionedservice/types.d.ts +4 -1
  49. package/dist/versionedservice/types.js.map +1 -1
  50. package/package.json +2 -2
@@ -0,0 +1,86 @@
1
+ import db from 'mysql2-async/db';
2
+ import { ScheduledPublish, ScheduledPublishAction, ScheduledPublishStatus } from '../internal.js';
3
+ function processFilters(filter) {
4
+ const binds = [];
5
+ const where = [];
6
+ const joins = new Map();
7
+ const statuses = filter?.statuses ?? [ScheduledPublishStatus.PENDING];
8
+ where.push(`sp.status IN (${db.in(binds, statuses)})`);
9
+ if (filter?.ids?.length) {
10
+ where.push(`sp.id IN (${db.in(binds, filter.ids)})`);
11
+ }
12
+ if (filter?.internalIds?.length) {
13
+ where.push(`sp.id IN (${db.in(binds, filter.internalIds)})`);
14
+ }
15
+ if (filter?.pageInternalIds?.length) {
16
+ where.push(`sp.pageInternalId IN (${db.in(binds, filter.pageInternalIds)})`);
17
+ }
18
+ if (filter?.pageIds?.length) {
19
+ joins.set('p', 'INNER JOIN pages p ON p.id = sp.pageInternalId');
20
+ where.push(`p.dataId IN (${db.in(binds, filter.pageIds)})`);
21
+ }
22
+ if (filter?.actions?.length) {
23
+ where.push(`sp.action IN (${db.in(binds, filter.actions)})`);
24
+ }
25
+ if (filter?.targetDateBefore) {
26
+ binds.push(filter.targetDateBefore.toUTC().toSQL());
27
+ where.push('sp.targetDate < ?');
28
+ }
29
+ if (filter?.targetDateAfter) {
30
+ binds.push(filter.targetDateAfter.toUTC().toSQL());
31
+ where.push('sp.targetDate > ?');
32
+ }
33
+ return { binds, where, joins };
34
+ }
35
+ export async function getScheduledPublishes(filter, tdb = db) {
36
+ const { binds, where, joins } = processFilters(filter);
37
+ const query = `SELECT sp.*, pages.dataId AS pageDataId FROM scheduledpublishes sp
38
+ INNER JOIN pages ON pages.id = sp.pageInternalId
39
+ ${[...joins.values()].join('\n')}
40
+ WHERE (${where.join(') AND (')})
41
+ ORDER BY sp.targetDate ASC`;
42
+ const rows = await tdb.getall(query, binds);
43
+ return rows.map((row) => new ScheduledPublish(row));
44
+ }
45
+ export async function countScheduledPublishes(filter, tdb = db) {
46
+ const { binds, where, joins } = processFilters(filter);
47
+ const query = `SELECT COUNT(*) FROM scheduledpublishes sp
48
+ ${[...joins.values()].join('\n')}
49
+ WHERE (${where.join(') AND (')})`;
50
+ return await tdb.getval(query, binds) ?? 0;
51
+ }
52
+ export async function createScheduledPublish(pageInternalId, action, targetDate, createdBy, recurrence) {
53
+ return await db.transaction(async (db) => {
54
+ await db.getrow('SELECT id FROM pages WHERE id = ? FOR UPDATE', [pageInternalId]);
55
+ const conflictingActions = action === ScheduledPublishAction.UNPUBLISH
56
+ ? [ScheduledPublishAction.UNPUBLISH]
57
+ : [ScheduledPublishAction.PUBLISH, ScheduledPublishAction.PUBLISH_WITH_SUBPAGES];
58
+ const binds = [ScheduledPublishStatus.PENDING, pageInternalId];
59
+ const existing = await db.getval(`SELECT id FROM scheduledpublishes WHERE status = ? AND pageInternalId = ? AND action IN (${db.in(binds, conflictingActions)}) LIMIT 1`, binds);
60
+ if (existing)
61
+ throw new Error('An active schedule of this type already exists for this page.');
62
+ return await db.insert(`INSERT INTO scheduledpublishes (pageInternalId, action, targetDate, status, recur, recurInterval, timezone, createdAt, createdBy, updatedAt, updatedBy)
63
+ VALUES (?, ?, ?, ?, ?, ?, ?, NOW(), ?, NOW(), ?)`, [pageInternalId, action, targetDate, ScheduledPublishStatus.PENDING, recurrence?.recur ?? null, recurrence?.recurInterval ?? null, recurrence?.timezone ?? null, createdBy, createdBy]);
64
+ });
65
+ }
66
+ export async function updateScheduledPublish(id, updates, tdb = db) {
67
+ await tdb.update('UPDATE scheduledpublishes SET action = ?, targetDate = ?, recur = ?, recurInterval = ?, timezone = ?, updatedAt = NOW(), updatedBy = ? WHERE id = ?', [updates.action, updates.targetDate, updates.recur, updates.recurInterval, updates.timezone, updates.updatedBy, id]);
68
+ }
69
+ export async function updateScheduledPublishStatus(id, status, error, tdb = db) {
70
+ const binds = [status, error ?? null, id];
71
+ await tdb.update('UPDATE scheduledpublishes SET status = ?, error = ? WHERE id = ?', binds);
72
+ }
73
+ export async function cancelActiveSchedulesForPages(pageInternalIds, tdb = db) {
74
+ if (!pageInternalIds.length)
75
+ return;
76
+ const binds = [ScheduledPublishStatus.CANCELLED, ScheduledPublishStatus.PENDING];
77
+ await tdb.update(`UPDATE scheduledpublishes SET status = ? WHERE status = ? AND pageInternalId IN (${db.in(binds, pageInternalIds)})`, binds);
78
+ }
79
+ export async function getDueSchedules(tdb = db) {
80
+ const rows = await tdb.getall(`SELECT sp.*, p.dataId AS pageDataId FROM scheduledpublishes sp
81
+ INNER JOIN pages p ON p.id = sp.pageInternalId
82
+ WHERE sp.status = ? AND sp.targetDate <= NOW()
83
+ ORDER BY sp.targetDate ASC`, [ScheduledPublishStatus.PENDING]);
84
+ return rows.map((row) => new ScheduledPublish(row));
85
+ }
86
+ //# sourceMappingURL=scheduledpublish.database.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduledpublish.database.js","sourceRoot":"","sources":["../../src/scheduledpublish/scheduledpublish.database.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ import { ValidatedResponse, type ValidatedResponseArgs } from '@txstate-mws/graphql-server';
2
+ import { DateTime } from 'luxon';
3
+ import { type ScheduledPublishRow, type Page } from '../internal.js';
4
+ export declare enum ScheduledPublishAction {
5
+ PUBLISH = "PUBLISH",
6
+ PUBLISH_WITH_SUBPAGES = "PUBLISH_WITH_SUBPAGES",
7
+ UNPUBLISH = "UNPUBLISH"
8
+ }
9
+ export declare enum ScheduledPublishStatus {
10
+ PENDING = "PENDING",
11
+ COMPLETED = "COMPLETED",
12
+ FAILED = "FAILED",
13
+ CANCELLED = "CANCELLED"
14
+ }
15
+ export declare enum ScheduledPublishRecurrence {
16
+ DAY = "DAY",
17
+ WEEK = "WEEK",
18
+ MONTH = "MONTH"
19
+ }
20
+ export declare class ScheduledPublishRecurrenceInfo {
21
+ type: ScheduledPublishRecurrence;
22
+ interval: number;
23
+ timezone: string;
24
+ constructor(type: ScheduledPublishRecurrence, interval: number, timezone: string);
25
+ }
26
+ export declare class ScheduledPublish {
27
+ id: string;
28
+ internalId: number;
29
+ pageInternalId: number;
30
+ pageDataId: string;
31
+ page?: Page;
32
+ action: ScheduledPublishAction;
33
+ targetDate: DateTime;
34
+ status: ScheduledPublishStatus;
35
+ recurrence?: ScheduledPublishRecurrenceInfo;
36
+ error?: string;
37
+ createdAt: DateTime;
38
+ createdBy: string;
39
+ updatedAt: DateTime;
40
+ updatedBy: string;
41
+ constructor(row: ScheduledPublishRow);
42
+ }
43
+ export declare class ScheduledPublishFilter {
44
+ ids?: string[];
45
+ internalIds?: number[];
46
+ pageIds?: string[];
47
+ pageInternalIds?: number[];
48
+ actions?: ScheduledPublishAction[];
49
+ statuses?: ScheduledPublishStatus[];
50
+ targetDateBefore?: DateTime;
51
+ targetDateAfter?: DateTime;
52
+ }
53
+ export declare class ScheduledPublishRecurrenceInput {
54
+ type: ScheduledPublishRecurrence;
55
+ interval?: number;
56
+ timezone?: string;
57
+ }
58
+ export declare class CreateScheduledPublishInput {
59
+ pageId: string;
60
+ action: ScheduledPublishAction;
61
+ targetDate: DateTime;
62
+ recurrence?: ScheduledPublishRecurrenceInput;
63
+ }
64
+ export declare class UpdateScheduledPublishInput {
65
+ action: ScheduledPublishAction;
66
+ targetDate: DateTime;
67
+ recurrence?: ScheduledPublishRecurrenceInput | null;
68
+ }
69
+ export declare class ScheduledPublishResponse extends ValidatedResponse {
70
+ scheduledPublish?: ScheduledPublish;
71
+ constructor(config?: ValidatedResponseArgs & {
72
+ scheduledPublish?: ScheduledPublish;
73
+ });
74
+ }
75
+ export declare class ScheduledPublishPermissions {
76
+ }
@@ -0,0 +1,283 @@
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 { ValidatedResponse } from '@txstate-mws/graphql-server';
11
+ import { DateTime } from 'luxon';
12
+ import { Field, ID, InputType, Int, ObjectType, registerEnumType } from 'type-graphql';
13
+ export var ScheduledPublishAction;
14
+ (function (ScheduledPublishAction) {
15
+ ScheduledPublishAction["PUBLISH"] = "PUBLISH";
16
+ ScheduledPublishAction["PUBLISH_WITH_SUBPAGES"] = "PUBLISH_WITH_SUBPAGES";
17
+ ScheduledPublishAction["UNPUBLISH"] = "UNPUBLISH";
18
+ })(ScheduledPublishAction || (ScheduledPublishAction = {}));
19
+ registerEnumType(ScheduledPublishAction, {
20
+ name: 'ScheduledPublishAction',
21
+ description: 'The type of scheduled action to perform.',
22
+ valuesConfig: {
23
+ PUBLISH: { description: 'Publish the page only.' },
24
+ PUBLISH_WITH_SUBPAGES: { description: 'Publish the page and all sub-pages.' },
25
+ UNPUBLISH: { description: 'Unpublish the page and all sub-pages.' }
26
+ }
27
+ });
28
+ export var ScheduledPublishStatus;
29
+ (function (ScheduledPublishStatus) {
30
+ ScheduledPublishStatus["PENDING"] = "PENDING";
31
+ ScheduledPublishStatus["COMPLETED"] = "COMPLETED";
32
+ ScheduledPublishStatus["FAILED"] = "FAILED";
33
+ ScheduledPublishStatus["CANCELLED"] = "CANCELLED";
34
+ })(ScheduledPublishStatus || (ScheduledPublishStatus = {}));
35
+ export var ScheduledPublishRecurrence;
36
+ (function (ScheduledPublishRecurrence) {
37
+ ScheduledPublishRecurrence["DAY"] = "DAY";
38
+ ScheduledPublishRecurrence["WEEK"] = "WEEK";
39
+ ScheduledPublishRecurrence["MONTH"] = "MONTH";
40
+ })(ScheduledPublishRecurrence || (ScheduledPublishRecurrence = {}));
41
+ registerEnumType(ScheduledPublishRecurrence, {
42
+ name: 'ScheduledPublishRecurrence',
43
+ description: 'The recurrence interval unit for a scheduled action.',
44
+ valuesConfig: {
45
+ DAY: { description: 'Recur every N days.' },
46
+ WEEK: { description: 'Recur every N weeks.' },
47
+ MONTH: { description: 'Recur every N months.' }
48
+ }
49
+ });
50
+ registerEnumType(ScheduledPublishStatus, {
51
+ name: 'ScheduledPublishStatus',
52
+ description: 'The current status of a scheduled publish entry.',
53
+ valuesConfig: {
54
+ PENDING: { description: 'Scheduled and waiting to execute.' },
55
+ COMPLETED: { description: 'Successfully executed.' },
56
+ FAILED: { description: 'Attempted to execute but encountered an error.' },
57
+ CANCELLED: { description: 'Cancelled by a user or by page deletion.' }
58
+ }
59
+ });
60
+ let ScheduledPublishRecurrenceInfo = class ScheduledPublishRecurrenceInfo {
61
+ type;
62
+ interval;
63
+ timezone;
64
+ constructor(type, interval, timezone) {
65
+ this.type = type;
66
+ this.interval = interval;
67
+ this.timezone = timezone;
68
+ }
69
+ };
70
+ __decorate([
71
+ Field(type => ScheduledPublishRecurrence),
72
+ __metadata("design:type", String)
73
+ ], ScheduledPublishRecurrenceInfo.prototype, "type", void 0);
74
+ __decorate([
75
+ Field(type => Int, { description: 'Number of days/weeks/months between recurrences.' }),
76
+ __metadata("design:type", Number)
77
+ ], ScheduledPublishRecurrenceInfo.prototype, "interval", void 0);
78
+ __decorate([
79
+ Field({ description: 'IANA timezone for DST-safe recurrence date calculation.' }),
80
+ __metadata("design:type", String)
81
+ ], ScheduledPublishRecurrenceInfo.prototype, "timezone", void 0);
82
+ ScheduledPublishRecurrenceInfo = __decorate([
83
+ ObjectType({ description: 'Recurrence configuration for a scheduled action.' }),
84
+ __metadata("design:paramtypes", [String, Number, String])
85
+ ], ScheduledPublishRecurrenceInfo);
86
+ export { ScheduledPublishRecurrenceInfo };
87
+ let ScheduledPublish = class ScheduledPublish {
88
+ id;
89
+ internalId;
90
+ pageInternalId;
91
+ pageDataId;
92
+ page;
93
+ action;
94
+ targetDate;
95
+ status;
96
+ recurrence;
97
+ error;
98
+ createdAt;
99
+ createdBy;
100
+ updatedAt;
101
+ updatedBy;
102
+ constructor(row) {
103
+ this.internalId = row.id;
104
+ this.id = String(row.id);
105
+ this.pageInternalId = row.pageInternalId;
106
+ this.pageDataId = String(row.pageDataId ?? row.dataId);
107
+ this.action = row.action;
108
+ this.targetDate = DateTime.fromJSDate(row.targetDate);
109
+ this.status = row.status;
110
+ this.recurrence = row.recur ? new ScheduledPublishRecurrenceInfo(row.recur, row.recurInterval ?? 1, row.timezone ?? 'America/Chicago') : undefined;
111
+ this.error = row.error ?? undefined;
112
+ this.createdAt = DateTime.fromJSDate(row.createdAt);
113
+ this.createdBy = row.createdBy;
114
+ this.updatedAt = DateTime.fromJSDate(row.updatedAt);
115
+ this.updatedBy = row.updatedBy;
116
+ }
117
+ };
118
+ __decorate([
119
+ Field(type => ID),
120
+ __metadata("design:type", String)
121
+ ], ScheduledPublish.prototype, "id", void 0);
122
+ __decorate([
123
+ Field(type => ScheduledPublishAction),
124
+ __metadata("design:type", String)
125
+ ], ScheduledPublish.prototype, "action", void 0);
126
+ __decorate([
127
+ Field({ description: 'The date and time at which this action will be executed.' }),
128
+ __metadata("design:type", DateTime)
129
+ ], ScheduledPublish.prototype, "targetDate", void 0);
130
+ __decorate([
131
+ Field(type => ScheduledPublishStatus),
132
+ __metadata("design:type", String)
133
+ ], ScheduledPublish.prototype, "status", void 0);
134
+ __decorate([
135
+ Field(type => ScheduledPublishRecurrenceInfo, { nullable: true, description: 'Recurrence configuration. When set, a new schedule is automatically created after execution.' }),
136
+ __metadata("design:type", ScheduledPublishRecurrenceInfo)
137
+ ], ScheduledPublish.prototype, "recurrence", void 0);
138
+ __decorate([
139
+ Field({ nullable: true, description: 'Error message recorded when the scheduled action failed.' }),
140
+ __metadata("design:type", String)
141
+ ], ScheduledPublish.prototype, "error", void 0);
142
+ __decorate([
143
+ Field(),
144
+ __metadata("design:type", DateTime)
145
+ ], ScheduledPublish.prototype, "createdAt", void 0);
146
+ __decorate([
147
+ Field(),
148
+ __metadata("design:type", DateTime)
149
+ ], ScheduledPublish.prototype, "updatedAt", void 0);
150
+ ScheduledPublish = __decorate([
151
+ ObjectType({ description: 'A scheduled publish or unpublish action for a page.' }),
152
+ __metadata("design:paramtypes", [Object])
153
+ ], ScheduledPublish);
154
+ export { ScheduledPublish };
155
+ let ScheduledPublishFilter = class ScheduledPublishFilter {
156
+ ids;
157
+ internalIds;
158
+ pageIds;
159
+ pageInternalIds;
160
+ actions;
161
+ statuses;
162
+ targetDateBefore;
163
+ targetDateAfter;
164
+ };
165
+ __decorate([
166
+ Field(type => [ID], { nullable: true }),
167
+ __metadata("design:type", Array)
168
+ ], ScheduledPublishFilter.prototype, "ids", void 0);
169
+ __decorate([
170
+ Field(type => [ID], { nullable: true, description: 'Filter by page data IDs.' }),
171
+ __metadata("design:type", Array)
172
+ ], ScheduledPublishFilter.prototype, "pageIds", void 0);
173
+ __decorate([
174
+ Field(type => [ScheduledPublishAction], { nullable: true }),
175
+ __metadata("design:type", Array)
176
+ ], ScheduledPublishFilter.prototype, "actions", void 0);
177
+ __decorate([
178
+ Field(type => [ScheduledPublishStatus], { nullable: true, description: 'Filter by status. Defaults to [PENDING] if not specified.' }),
179
+ __metadata("design:type", Array)
180
+ ], ScheduledPublishFilter.prototype, "statuses", void 0);
181
+ __decorate([
182
+ Field({ nullable: true, description: 'Return schedules with target date before this date.' }),
183
+ __metadata("design:type", DateTime)
184
+ ], ScheduledPublishFilter.prototype, "targetDateBefore", void 0);
185
+ __decorate([
186
+ Field({ nullable: true, description: 'Return schedules with target date after this date.' }),
187
+ __metadata("design:type", DateTime)
188
+ ], ScheduledPublishFilter.prototype, "targetDateAfter", void 0);
189
+ ScheduledPublishFilter = __decorate([
190
+ InputType()
191
+ ], ScheduledPublishFilter);
192
+ export { ScheduledPublishFilter };
193
+ let ScheduledPublishRecurrenceInput = class ScheduledPublishRecurrenceInput {
194
+ type;
195
+ interval;
196
+ timezone;
197
+ };
198
+ __decorate([
199
+ Field(type => ScheduledPublishRecurrence),
200
+ __metadata("design:type", String)
201
+ ], ScheduledPublishRecurrenceInput.prototype, "type", void 0);
202
+ __decorate([
203
+ Field(type => Int, { nullable: true, description: 'Number of days/weeks/months between recurrences. Defaults to 1.' }),
204
+ __metadata("design:type", Number)
205
+ ], ScheduledPublishRecurrenceInput.prototype, "interval", void 0);
206
+ __decorate([
207
+ Field({ nullable: true, description: 'IANA timezone for DST-safe recurrence date calculation. Defaults to server timezone.' }),
208
+ __metadata("design:type", String)
209
+ ], ScheduledPublishRecurrenceInput.prototype, "timezone", void 0);
210
+ ScheduledPublishRecurrenceInput = __decorate([
211
+ InputType({ description: 'Recurrence configuration input.' })
212
+ ], ScheduledPublishRecurrenceInput);
213
+ export { ScheduledPublishRecurrenceInput };
214
+ let CreateScheduledPublishInput = class CreateScheduledPublishInput {
215
+ pageId;
216
+ action;
217
+ targetDate;
218
+ recurrence;
219
+ };
220
+ __decorate([
221
+ Field(type => ID),
222
+ __metadata("design:type", String)
223
+ ], CreateScheduledPublishInput.prototype, "pageId", void 0);
224
+ __decorate([
225
+ Field(type => ScheduledPublishAction),
226
+ __metadata("design:type", String)
227
+ ], CreateScheduledPublishInput.prototype, "action", void 0);
228
+ __decorate([
229
+ Field({ description: 'The date and time to execute the action. Must be at least 5 minutes in the future.' }),
230
+ __metadata("design:type", DateTime)
231
+ ], CreateScheduledPublishInput.prototype, "targetDate", void 0);
232
+ __decorate([
233
+ Field(type => ScheduledPublishRecurrenceInput, { nullable: true, description: 'Recurrence configuration. When set, a new schedule is automatically created after execution.' }),
234
+ __metadata("design:type", ScheduledPublishRecurrenceInput)
235
+ ], CreateScheduledPublishInput.prototype, "recurrence", void 0);
236
+ CreateScheduledPublishInput = __decorate([
237
+ InputType()
238
+ ], CreateScheduledPublishInput);
239
+ export { CreateScheduledPublishInput };
240
+ let UpdateScheduledPublishInput = class UpdateScheduledPublishInput {
241
+ action;
242
+ targetDate;
243
+ recurrence;
244
+ };
245
+ __decorate([
246
+ Field(type => ScheduledPublishAction),
247
+ __metadata("design:type", String)
248
+ ], UpdateScheduledPublishInput.prototype, "action", void 0);
249
+ __decorate([
250
+ Field({ description: 'New target date. Must be at least 5 minutes in the future.' }),
251
+ __metadata("design:type", DateTime)
252
+ ], UpdateScheduledPublishInput.prototype, "targetDate", void 0);
253
+ __decorate([
254
+ Field(type => ScheduledPublishRecurrenceInput, { nullable: true, description: 'Recurrence configuration. Set to null to remove recurrence.' }),
255
+ __metadata("design:type", Object)
256
+ ], UpdateScheduledPublishInput.prototype, "recurrence", void 0);
257
+ UpdateScheduledPublishInput = __decorate([
258
+ InputType()
259
+ ], UpdateScheduledPublishInput);
260
+ export { UpdateScheduledPublishInput };
261
+ let ScheduledPublishResponse = class ScheduledPublishResponse extends ValidatedResponse {
262
+ scheduledPublish;
263
+ constructor(config) {
264
+ super(config ?? {});
265
+ this.scheduledPublish = config?.scheduledPublish;
266
+ }
267
+ };
268
+ __decorate([
269
+ Field({ nullable: true }),
270
+ __metadata("design:type", ScheduledPublish)
271
+ ], ScheduledPublishResponse.prototype, "scheduledPublish", void 0);
272
+ ScheduledPublishResponse = __decorate([
273
+ ObjectType(),
274
+ __metadata("design:paramtypes", [Object])
275
+ ], ScheduledPublishResponse);
276
+ export { ScheduledPublishResponse };
277
+ let ScheduledPublishPermissions = class ScheduledPublishPermissions {
278
+ };
279
+ ScheduledPublishPermissions = __decorate([
280
+ ObjectType()
281
+ ], ScheduledPublishPermissions);
282
+ export { ScheduledPublishPermissions };
283
+ //# sourceMappingURL=scheduledpublish.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduledpublish.model.js","sourceRoot":"","sources":["../../src/scheduledpublish/scheduledpublish.model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { Context } from '@txstate-mws/graphql-server';
2
+ import { ScheduledPublish, ScheduledPublishFilter, ScheduledPublishResponse, CreateScheduledPublishInput, UpdateScheduledPublishInput, Page, User } from '../internal.js';
3
+ export declare class ScheduledPublishResolver {
4
+ scheduledPublishes(ctx: Context, filter?: ScheduledPublishFilter): Promise<ScheduledPublish[]>;
5
+ createScheduledPublish(ctx: Context, args: CreateScheduledPublishInput, validateOnly?: boolean): Promise<ScheduledPublishResponse>;
6
+ updateScheduledPublish(ctx: Context, scheduledPublishId: string, args: UpdateScheduledPublishInput, validateOnly?: boolean): Promise<ScheduledPublishResponse>;
7
+ cancelScheduledPublish(ctx: Context, scheduledPublishId: string): Promise<ScheduledPublishResponse>;
8
+ page(ctx: Context, schedule: ScheduledPublish): Promise<Page | undefined>;
9
+ createdByUser(ctx: Context, schedule: ScheduledPublish): Promise<User | undefined>;
10
+ updatedByUser(ctx: Context, schedule: ScheduledPublish): Promise<User | undefined>;
11
+ permissions(schedule: ScheduledPublish): ScheduledPublish;
12
+ }
13
+ export declare class ScheduledPublishPermissionsResolver {
14
+ edit(ctx: Context, schedule: ScheduledPublish): Promise<boolean>;
15
+ cancel(ctx: Context, schedule: ScheduledPublish): Promise<boolean>;
16
+ }
@@ -0,0 +1,143 @@
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 } from '@txstate-mws/graphql-server';
14
+ import { Resolver, Query, Arg, Ctx, FieldResolver, Root, Mutation, ID } from 'type-graphql';
15
+ import { ScheduledPublish, ScheduledPublishFilter, ScheduledPublishResponse, ScheduledPublishPermissions, ScheduledPublishService, CreateScheduledPublishInput, UpdateScheduledPublishInput, Page, PageServiceInternal, User, UserService } from '../internal.js';
16
+ let ScheduledPublishResolver = class ScheduledPublishResolver {
17
+ async scheduledPublishes(ctx, filter) {
18
+ return await ctx.svc(ScheduledPublishService).find(filter);
19
+ }
20
+ async createScheduledPublish(ctx, args, validateOnly) {
21
+ return await ctx.svc(ScheduledPublishService).create(args, validateOnly);
22
+ }
23
+ async updateScheduledPublish(ctx, scheduledPublishId, args, validateOnly) {
24
+ return await ctx.svc(ScheduledPublishService).update(scheduledPublishId, args, validateOnly);
25
+ }
26
+ async cancelScheduledPublish(ctx, scheduledPublishId) {
27
+ return await ctx.svc(ScheduledPublishService).cancel(scheduledPublishId);
28
+ }
29
+ async page(ctx, schedule) {
30
+ return await ctx.svc(PageServiceInternal).findByInternalId(schedule.pageInternalId);
31
+ }
32
+ async createdByUser(ctx, schedule) {
33
+ return await ctx.svc(UserService).findById(schedule.createdBy);
34
+ }
35
+ async updatedByUser(ctx, schedule) {
36
+ return await ctx.svc(UserService).findById(schedule.updatedBy);
37
+ }
38
+ permissions(schedule) {
39
+ return schedule;
40
+ }
41
+ };
42
+ __decorate([
43
+ Query(returns => [ScheduledPublish], { description: 'Retrieve scheduled publish entries. Defaults to showing only active schedules.' }),
44
+ __param(0, Ctx()),
45
+ __param(1, Arg('filter', { nullable: true })),
46
+ __metadata("design:type", Function),
47
+ __metadata("design:paramtypes", [Context, ScheduledPublishFilter]),
48
+ __metadata("design:returntype", Promise)
49
+ ], ScheduledPublishResolver.prototype, "scheduledPublishes", null);
50
+ __decorate([
51
+ Mutation(returns => ScheduledPublishResponse, { description: 'Schedule a future publish or unpublish action for a page.' }),
52
+ __param(0, Ctx()),
53
+ __param(1, Arg('args')),
54
+ __param(2, Arg('validateOnly', { nullable: true, description: 'When true, the mutation will not save but will return the validation response as normal.' })),
55
+ __metadata("design:type", Function),
56
+ __metadata("design:paramtypes", [Context,
57
+ CreateScheduledPublishInput, Boolean]),
58
+ __metadata("design:returntype", Promise)
59
+ ], ScheduledPublishResolver.prototype, "createScheduledPublish", null);
60
+ __decorate([
61
+ Mutation(returns => ScheduledPublishResponse, { description: 'Update a scheduled publish entry.' }),
62
+ __param(0, Ctx()),
63
+ __param(1, Arg('scheduledPublishId', type => ID)),
64
+ __param(2, Arg('args')),
65
+ __param(3, Arg('validateOnly', { nullable: true, description: 'When true, the mutation will not save but will return the validation response as normal.' })),
66
+ __metadata("design:type", Function),
67
+ __metadata("design:paramtypes", [Context, String, UpdateScheduledPublishInput, Boolean]),
68
+ __metadata("design:returntype", Promise)
69
+ ], ScheduledPublishResolver.prototype, "updateScheduledPublish", null);
70
+ __decorate([
71
+ Mutation(returns => ScheduledPublishResponse, { description: 'Cancel a scheduled publish entry.' }),
72
+ __param(0, Ctx()),
73
+ __param(1, Arg('scheduledPublishId', type => ID)),
74
+ __metadata("design:type", Function),
75
+ __metadata("design:paramtypes", [Context, String]),
76
+ __metadata("design:returntype", Promise)
77
+ ], ScheduledPublishResolver.prototype, "cancelScheduledPublish", null);
78
+ __decorate([
79
+ FieldResolver(returns => Page, { nullable: true, description: 'The page this schedule applies to.' }),
80
+ __param(0, Ctx()),
81
+ __param(1, Root()),
82
+ __metadata("design:type", Function),
83
+ __metadata("design:paramtypes", [Context, ScheduledPublish]),
84
+ __metadata("design:returntype", Promise)
85
+ ], ScheduledPublishResolver.prototype, "page", null);
86
+ __decorate([
87
+ FieldResolver(returns => User, { nullable: true, description: 'The user who created this schedule entry.' }),
88
+ __param(0, Ctx()),
89
+ __param(1, Root()),
90
+ __metadata("design:type", Function),
91
+ __metadata("design:paramtypes", [Context, ScheduledPublish]),
92
+ __metadata("design:returntype", Promise)
93
+ ], ScheduledPublishResolver.prototype, "createdByUser", null);
94
+ __decorate([
95
+ FieldResolver(returns => User, { nullable: true, description: 'The user who last updated this schedule entry. This is the user whose permissions will be used when executing.' }),
96
+ __param(0, Ctx()),
97
+ __param(1, Root()),
98
+ __metadata("design:type", Function),
99
+ __metadata("design:paramtypes", [Context, ScheduledPublish]),
100
+ __metadata("design:returntype", Promise)
101
+ ], ScheduledPublishResolver.prototype, "updatedByUser", null);
102
+ __decorate([
103
+ FieldResolver(returns => ScheduledPublishPermissions, {
104
+ description: 'Reveal the simplified results after all authorization rules are taken into account for the current user.'
105
+ }),
106
+ __param(0, Root()),
107
+ __metadata("design:type", Function),
108
+ __metadata("design:paramtypes", [ScheduledPublish]),
109
+ __metadata("design:returntype", void 0)
110
+ ], ScheduledPublishResolver.prototype, "permissions", null);
111
+ ScheduledPublishResolver = __decorate([
112
+ Resolver(of => ScheduledPublish)
113
+ ], ScheduledPublishResolver);
114
+ export { ScheduledPublishResolver };
115
+ let ScheduledPublishPermissionsResolver = class ScheduledPublishPermissionsResolver {
116
+ async edit(ctx, schedule) {
117
+ return await ctx.svc(ScheduledPublishService).mayEdit(schedule);
118
+ }
119
+ async cancel(ctx, schedule) {
120
+ return await ctx.svc(ScheduledPublishService).mayCancel(schedule);
121
+ }
122
+ };
123
+ __decorate([
124
+ FieldResolver(returns => Boolean, { description: 'User may edit this schedule entry.' }),
125
+ __param(0, Ctx()),
126
+ __param(1, Root()),
127
+ __metadata("design:type", Function),
128
+ __metadata("design:paramtypes", [Context, ScheduledPublish]),
129
+ __metadata("design:returntype", Promise)
130
+ ], ScheduledPublishPermissionsResolver.prototype, "edit", null);
131
+ __decorate([
132
+ FieldResolver(returns => Boolean, { description: 'User may cancel this schedule entry.' }),
133
+ __param(0, Ctx()),
134
+ __param(1, Root()),
135
+ __metadata("design:type", Function),
136
+ __metadata("design:paramtypes", [Context, ScheduledPublish]),
137
+ __metadata("design:returntype", Promise)
138
+ ], ScheduledPublishPermissionsResolver.prototype, "cancel", null);
139
+ ScheduledPublishPermissionsResolver = __decorate([
140
+ Resolver(of => ScheduledPublishPermissions)
141
+ ], ScheduledPublishPermissionsResolver);
142
+ export { ScheduledPublishPermissionsResolver };
143
+ //# sourceMappingURL=scheduledpublish.resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduledpublish.resolver.js","sourceRoot":"","sources":["../../src/scheduledpublish/scheduledpublish.resolver.ts"],"names":[],"mappings":"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"}