@lilaquadrat/studio 13.1.0 → 15.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/helpers.d.ts +1 -1
- package/lib/helpers.js +1 -1
- package/lib/models.d.ts +4 -4
- package/lib/models.js +3 -2
- package/lib/models.js.map +1 -1
- package/lib/services.d.ts +5 -2
- package/lib/services.js +4 -2
- package/lib/services.js.map +1 -1
- package/lib/src/Immutable.class.d.ts +0 -1
- package/lib/src/Immutable.class.js.map +1 -1
- package/lib/src/classes/paymentProviders/PaymentProviderFactory.class.d.ts +1 -1
- package/lib/src/classes/paymentProviders/StripePaymentProvider.class.d.ts +1 -1
- package/lib/src/helpers/createError.d.ts +1 -1
- package/lib/src/helpers/permissionScopes.d.ts +6 -0
- package/lib/src/helpers/permissionScopes.js +286 -0
- package/lib/src/helpers/permissionScopes.js.map +1 -0
- package/lib/src/helpers/shiftPlanAllocation.d.ts +2 -38
- package/lib/src/helpers/shiftPlanAllocation.js.map +1 -1
- package/lib/src/helpers/shiftPlanCoverage.d.ts +0 -1
- package/lib/src/helpers/structureMatch.d.ts +1 -5
- package/lib/src/helpers/structureMatch.js.map +1 -1
- package/lib/src/helpers/verifyToken.d.ts +1 -8
- package/lib/src/helpers/verifyToken.js.map +1 -1
- package/lib/src/models/access.model.d.ts +1 -12
- package/lib/src/models/access.model.js.map +1 -1
- package/lib/src/models/cart.model.js +36 -1
- package/lib/src/models/cart.model.js.map +1 -1
- package/lib/src/models/design.model.js +30 -33
- package/lib/src/models/design.model.js.map +1 -1
- package/lib/src/models/environment.model.d.ts +4 -0
- package/lib/src/models/environment.model.js +47 -0
- package/lib/src/models/environment.model.js.map +1 -0
- package/lib/src/models/id.model.d.ts +2 -12
- package/lib/src/models/id.model.js.map +1 -1
- package/lib/src/models/migration.model.d.ts +22 -0
- package/lib/src/models/migration.model.js +51 -0
- package/lib/src/models/migration.model.js.map +1 -0
- package/lib/src/models/participant.model.d.ts +1 -1
- package/lib/src/models/participant.model.js +1 -1
- package/lib/src/models/participant.model.js.map +1 -1
- package/lib/src/models/permissions.model.d.ts +1 -6
- package/lib/src/models/permissions.model.js +0 -285
- package/lib/src/models/permissions.model.js.map +1 -1
- package/lib/src/models/project.model.js +180 -34
- package/lib/src/models/project.model.js.map +1 -1
- package/lib/src/models/publish.model.js +1 -0
- package/lib/src/models/publish.model.js.map +1 -1
- package/lib/src/services/access.service.js.map +1 -1
- package/lib/src/services/cart.service.d.ts +7 -1
- package/lib/src/services/cart.service.js +29 -3
- package/lib/src/services/cart.service.js.map +1 -1
- package/lib/src/services/designs.service.d.ts +39 -2
- package/lib/src/services/designs.service.js +92 -2
- package/lib/src/services/designs.service.js.map +1 -1
- package/lib/src/services/environments.service.d.ts +15 -0
- package/lib/src/services/environments.service.js +20 -0
- package/lib/src/services/environments.service.js.map +1 -0
- package/lib/src/services/history.service.d.ts +1 -2
- package/lib/src/services/history.service.js.map +1 -1
- package/lib/src/services/historySeen.service.d.ts +1 -8
- package/lib/src/services/historySeen.service.js.map +1 -1
- package/lib/src/services/id.service.d.ts +1 -1
- package/lib/src/services/listParticipants.service.d.ts +3 -4
- package/lib/src/services/listParticipants.service.js +4 -4
- package/lib/src/services/listParticipants.service.js.map +1 -1
- package/lib/src/services/migrations.service.d.ts +60 -0
- package/lib/src/services/migrations.service.js +221 -0
- package/lib/src/services/migrations.service.js.map +1 -0
- package/lib/src/services/participants.service.d.ts +1 -1
- package/lib/src/services/permissions.service.d.ts +1 -1
- package/lib/src/services/permissions.service.js +6 -2
- package/lib/src/services/permissions.service.js.map +1 -1
- package/lib/src/services/shifts.service.d.ts +1 -1
- package/lib/src/services/shifts.service.js.map +1 -1
- package/lib/src/services/tracker.service.d.ts +8 -5
- package/lib/src/services/tracker.service.js +12 -3
- package/lib/src/services/tracker.service.js.map +1 -1
- package/lib/tests/cartModel.spec.d.ts +1 -0
- package/lib/tests/cartModel.spec.js +13 -0
- package/lib/tests/cartModel.spec.js.map +1 -0
- package/lib/tests/designModel.spec.d.ts +1 -0
- package/lib/tests/designModel.spec.js +69 -0
- package/lib/tests/designModel.spec.js.map +1 -0
- package/lib/tests/designsService.spec.d.ts +1 -0
- package/lib/tests/designsService.spec.js +170 -0
- package/lib/tests/designsService.spec.js.map +1 -0
- package/lib/tests/getUnsetObject.spec.js +3 -0
- package/lib/tests/getUnsetObject.spec.js.map +1 -1
- package/lib/tests/listParticipantsServiceJoin.spec.js +48 -0
- package/lib/tests/listParticipantsServiceJoin.spec.js.map +1 -1
- package/lib/tests/migrationModel.spec.d.ts +1 -0
- package/lib/tests/migrationModel.spec.js +38 -0
- package/lib/tests/migrationModel.spec.js.map +1 -0
- package/lib/tests/migrationsService.spec.d.ts +1 -0
- package/lib/tests/migrationsService.spec.js +163 -0
- package/lib/tests/migrationsService.spec.js.map +1 -0
- package/lib/tests/permissionsModel.spec.js +1 -1
- package/lib/tests/projectModel.spec.d.ts +1 -0
- package/lib/tests/projectModel.spec.js +83 -0
- package/lib/tests/projectModel.spec.js.map +1 -0
- package/lib/tests/shiftPlanCoverage.spec.js.map +1 -1
- package/lib/tests/trackerResolveUser.spec.d.ts +1 -0
- package/lib/tests/trackerResolveUser.spec.js +26 -0
- package/lib/tests/trackerResolveUser.spec.js.map +1 -0
- package/package.json +2 -2
- package/lib/src/interfaces/CategoryBookedTime.d.ts +0 -5
- package/lib/src/interfaces/CategoryBookedTime.js +0 -2
- package/lib/src/interfaces/CategoryBookedTime.js.map +0 -1
- package/lib/src/interfaces/ListPlanningParticipant.d.ts +0 -17
- package/lib/src/interfaces/ListPlanningParticipant.js +0 -2
- package/lib/src/interfaces/ListPlanningParticipant.js.map +0 -1
- package/lib/src/interfaces/Participant.d.ts +0 -62
- package/lib/src/interfaces/Participant.js +0 -4
- package/lib/src/interfaces/Participant.js.map +0 -1
- package/lib/src/interfaces/PaymentProviderBase.d.ts +0 -14
- package/lib/src/interfaces/PaymentProviderBase.js +0 -2
- package/lib/src/interfaces/PaymentProviderBase.js.map +0 -1
- package/lib/src/interfaces/PlanCoveragePreparation.d.ts +0 -17
- package/lib/src/interfaces/PlanCoveragePreparation.js +0 -2
- package/lib/src/interfaces/PlanCoveragePreparation.js.map +0 -1
- package/lib/src/interfaces/PlanningParticipantsResult.d.ts +0 -12
- package/lib/src/interfaces/PlanningParticipantsResult.js +0 -2
- package/lib/src/interfaces/PlanningParticipantsResult.js.map +0 -1
- package/lib/src/interfaces/ShiftAutofillResult.d.ts +0 -6
- package/lib/src/interfaces/ShiftAutofillResult.js +0 -2
- package/lib/src/interfaces/ShiftAutofillResult.js.map +0 -1
- package/lib/src/interfaces/ShiftReportContextOptions.d.ts +0 -9
- package/lib/src/interfaces/ShiftReportContextOptions.js +0 -2
- package/lib/src/interfaces/ShiftReportContextOptions.js.map +0 -1
- package/lib/src/interfaces/TrackerDailyLimitGroup.d.ts +0 -7
- package/lib/src/interfaces/TrackerDailyLimitGroup.js +0 -2
- package/lib/src/interfaces/TrackerDailyLimitGroup.js.map +0 -1
- package/lib/src/interfaces/TrackerDailyLimitInput.d.ts +0 -8
- package/lib/src/interfaces/TrackerDailyLimitInput.js +0 -2
- package/lib/src/interfaces/TrackerDailyLimitInput.js.map +0 -1
- package/lib/src/interfaces/TrackerStatisticsBucket.d.ts +0 -13
- package/lib/src/interfaces/TrackerStatisticsBucket.js +0 -2
- package/lib/src/interfaces/TrackerStatisticsBucket.js.map +0 -1
- package/lib/src/interfaces/TrackerStatisticsRange.d.ts +0 -6
- package/lib/src/interfaces/TrackerStatisticsRange.js +0 -2
- package/lib/src/interfaces/TrackerStatisticsRange.js.map +0 -1
- package/lib/src/interfaces/TrackerTimeSum.d.ts +0 -4
- package/lib/src/interfaces/TrackerTimeSum.js +0 -2
- package/lib/src/interfaces/TrackerTimeSum.js.map +0 -1
|
@@ -14,7 +14,28 @@ export class CartService {
|
|
|
14
14
|
addPayment(id, payment, options) {
|
|
15
15
|
return this.model.db.updateOne({ _id: id, company: options.company, project: options.project }, { $set: { payment, modified: new Date(), state: 'finished' } });
|
|
16
16
|
}
|
|
17
|
-
|
|
17
|
+
/**
|
|
18
|
+
* only carries the buyer identity over to a cart when the request actually provides it,
|
|
19
|
+
* so item-only updates never wipe a previously saved name; empty values are dropped
|
|
20
|
+
* because the field must stay a trimmed non-empty string
|
|
21
|
+
*/
|
|
22
|
+
applyIdentity(target, source) {
|
|
23
|
+
['prename', 'name'].forEach((key) => {
|
|
24
|
+
const value = source[key];
|
|
25
|
+
if (value === undefined)
|
|
26
|
+
return;
|
|
27
|
+
if (typeof value === 'string') {
|
|
28
|
+
const trimmed = value.trim();
|
|
29
|
+
if (trimmed)
|
|
30
|
+
target[key] = trimmed;
|
|
31
|
+
else
|
|
32
|
+
delete target[key];
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
delete target[key];
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
async create(attributes, options, identity) {
|
|
18
39
|
const insertCart = {
|
|
19
40
|
company: options.company,
|
|
20
41
|
project: options.project,
|
|
@@ -22,6 +43,8 @@ export class CartService {
|
|
|
22
43
|
state: 'open',
|
|
23
44
|
attributes,
|
|
24
45
|
};
|
|
46
|
+
if (identity)
|
|
47
|
+
this.applyIdentity(insertCart, identity);
|
|
25
48
|
await this.model.db.insertOne(insertCart);
|
|
26
49
|
return insertCart;
|
|
27
50
|
}
|
|
@@ -50,6 +73,8 @@ export class CartService {
|
|
|
50
73
|
returnCart.attributes = cart.attributes;
|
|
51
74
|
safeCart.items = safeItems;
|
|
52
75
|
safeCart.attributes = cart.attributes;
|
|
76
|
+
this.applyIdentity(safeCart, cart);
|
|
77
|
+
this.applyIdentity(returnCart, cart);
|
|
53
78
|
safeCart.modified = new Date();
|
|
54
79
|
const validateCart = { ...safeCart };
|
|
55
80
|
delete validateCart._id;
|
|
@@ -140,7 +165,8 @@ export class CartService {
|
|
|
140
165
|
await Promise.all(promiseArray);
|
|
141
166
|
}
|
|
142
167
|
const stripe = new Stripe(stripeProvider.token);
|
|
143
|
-
|
|
168
|
+
/** touches modified so an old cart is not reaped while checkout is in flight */
|
|
169
|
+
await this.model.db.updateOne({ _id: id }, { $set: { state: 'checkout', modified: new Date() } });
|
|
144
170
|
/**
|
|
145
171
|
* if the cart has a successUrl, we add the cartId to the query string
|
|
146
172
|
* to show the proper success page with invoice
|
|
@@ -155,7 +181,7 @@ export class CartService {
|
|
|
155
181
|
billing_address_collection: 'required',
|
|
156
182
|
line_items: lineItems,
|
|
157
183
|
automatic_tax: { enabled: true },
|
|
158
|
-
metadata: { ...cart?.attributes, cartId: cart._id.toString() },
|
|
184
|
+
metadata: { ...cart?.attributes, ...(cart.prename ? { prename: cart.prename } : {}), ...(cart.name ? { name: cart.name } : {}), cartId: cart._id.toString() },
|
|
159
185
|
allow_promotion_codes: true,
|
|
160
186
|
success_url: cart.attributes?.successUrl,
|
|
161
187
|
cancel_url: cart.attributes?.cancelUrl,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cart.service.js","sourceRoot":"","sources":["../../../src/services/cart.service.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,yBAAyB,CAAC;AAEhD,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAC9C,OAAO,YAAY,MAAM,4BAA4B,CAAC;AACtD,OAAO,cAAc,MAAM,sCAAsC,CAAC;AAClE,OAAO,uBAAuB,MAAM,+BAA+B,CAAC;AACpE,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,MAAM,OAAO,WAAW;IAAxB;QAEE,UAAK,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"cart.service.js","sourceRoot":"","sources":["../../../src/services/cart.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,44 @@
|
|
|
1
|
-
import { Design } from '@lilaquadrat/interfaces';
|
|
2
|
-
import
|
|
1
|
+
import { Design, DesignInput, DesignListOptions, ProjectDesign } from '@lilaquadrat/interfaces';
|
|
2
|
+
import { ObjectId } from 'mongodb';
|
|
3
|
+
import Immutable from '../Immutable.class.js';
|
|
4
|
+
/** the caller's project: the only designs a request may reach, besides the shared library */
|
|
5
|
+
type Scope = {
|
|
6
|
+
company: string;
|
|
7
|
+
project: string;
|
|
8
|
+
};
|
|
3
9
|
declare class DesignsService extends Immutable<Design> {
|
|
4
10
|
model: import("../classes/modelv2.class.js").default<Design, string>;
|
|
11
|
+
/** the shared design catalog every project can pick from */
|
|
12
|
+
static readonly library: {
|
|
13
|
+
company: string;
|
|
14
|
+
project: string;
|
|
15
|
+
};
|
|
16
|
+
save(company: string, project: string, data: DesignInput, user: string, app: string): Promise<(import("mongodb").UpdateResult<import("bson").Document> & {
|
|
17
|
+
_id: ObjectId;
|
|
18
|
+
}) | import("@lilaquadrat/interfaces").CreateResult<import("@lilaquadrat/interfaces").BasicData<Design>>>;
|
|
19
|
+
/** a project may read its own designs and the shared library */
|
|
20
|
+
private accessible;
|
|
21
|
+
private isPermitted;
|
|
22
|
+
single(internalId: ObjectId, company: string, project: string): Promise<import("mongodb").WithId<Design> | null>;
|
|
23
|
+
/**
|
|
24
|
+
* resolves the design a project selects; the stored pointer is client input, so it may
|
|
25
|
+
* only address the caller's own project or the shared library
|
|
26
|
+
*/
|
|
27
|
+
reference(design: ProjectDesign, scope: Scope): Promise<import("mongodb").WithId<Design> | null>;
|
|
28
|
+
/**
|
|
29
|
+
* lists a project's own designs plus the shared library, app target only; the files
|
|
30
|
+
* stay out of the response so the list stays small
|
|
31
|
+
*/
|
|
32
|
+
list(options: DesignListOptions): Promise<{
|
|
33
|
+
data: import("mongodb").WithId<Design>[] | undefined;
|
|
34
|
+
all: number | undefined;
|
|
35
|
+
sites: import("@lilaquadrat/interfaces").DatabaseQuerySites;
|
|
36
|
+
count: number | undefined;
|
|
37
|
+
}>;
|
|
38
|
+
/** name and id are what a project picks a design by, description is a fallback */
|
|
39
|
+
private search;
|
|
40
|
+
/** removes one of the project's own designs, the shared library stays read only */
|
|
41
|
+
remove(internalId: ObjectId, company: string, project: string, user: string, app: string): Promise<import("mongodb").DeleteResult>;
|
|
5
42
|
}
|
|
6
43
|
declare const _default: DesignsService;
|
|
7
44
|
export default _default;
|
|
@@ -1,10 +1,100 @@
|
|
|
1
|
-
import Immutable from
|
|
2
|
-
import
|
|
1
|
+
import Immutable from '../Immutable.class.js';
|
|
2
|
+
import ControllerHelper from '../helpers/ControllerHelper.js';
|
|
3
|
+
import ImmutableError from '../classes/errors/Immutable.error.js';
|
|
4
|
+
import escapeRegExp from '../helpers/escapeRegExp.js';
|
|
5
|
+
import DesignModel from '../models/design.model.js';
|
|
3
6
|
class DesignsService extends Immutable {
|
|
4
7
|
constructor() {
|
|
5
8
|
super(...arguments);
|
|
6
9
|
this.model = DesignModel;
|
|
7
10
|
}
|
|
11
|
+
async save(company, project, data, user, app) {
|
|
12
|
+
const id = data.id || 'default';
|
|
13
|
+
const name = data.name || id;
|
|
14
|
+
return this.immutableUpsert({ company, project, id, target: data.target }, {
|
|
15
|
+
company,
|
|
16
|
+
project,
|
|
17
|
+
id,
|
|
18
|
+
name,
|
|
19
|
+
target: data.target,
|
|
20
|
+
files: data.files,
|
|
21
|
+
...(data.description !== undefined ? { description: data.description } : {}),
|
|
22
|
+
}, user, 'change', app);
|
|
23
|
+
}
|
|
24
|
+
/** a project may read its own designs and the shared library */
|
|
25
|
+
accessible(company, project) {
|
|
26
|
+
return {
|
|
27
|
+
$or: [
|
|
28
|
+
{ company, project },
|
|
29
|
+
{ company: DesignsService.library.company, project: DesignsService.library.project },
|
|
30
|
+
],
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
isPermitted(company, project, scope) {
|
|
34
|
+
if (company === scope.company && project === scope.project)
|
|
35
|
+
return true;
|
|
36
|
+
return company === DesignsService.library.company && project === DesignsService.library.project;
|
|
37
|
+
}
|
|
38
|
+
single(internalId, company, project) {
|
|
39
|
+
return this.model.db.findOne({
|
|
40
|
+
_id: internalId,
|
|
41
|
+
...this.accessible(company, project),
|
|
42
|
+
target: 'app',
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* resolves the design a project selects; the stored pointer is client input, so it may
|
|
47
|
+
* only address the caller's own project or the shared library
|
|
48
|
+
*/
|
|
49
|
+
async reference(design, scope) {
|
|
50
|
+
if (!this.isPermitted(design.company, design.project, scope))
|
|
51
|
+
return null;
|
|
52
|
+
return this.model.db.findOne({
|
|
53
|
+
company: design.company,
|
|
54
|
+
project: design.project,
|
|
55
|
+
id: design.id,
|
|
56
|
+
target: 'app',
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* lists a project's own designs plus the shared library, app target only; the files
|
|
61
|
+
* stay out of the response so the list stays small
|
|
62
|
+
*/
|
|
63
|
+
list(options) {
|
|
64
|
+
const search = this.search(options.search);
|
|
65
|
+
const query = {
|
|
66
|
+
$and: [
|
|
67
|
+
this.accessible(options.company, options.project),
|
|
68
|
+
...(search ? [search] : []),
|
|
69
|
+
],
|
|
70
|
+
target: 'app',
|
|
71
|
+
};
|
|
72
|
+
return ControllerHelper.list(query, { files: 0 }, options.site, options.limit, DesignModel, options.sort, options.order)
|
|
73
|
+
.then((data) => ControllerHelper.buildResponse(data, options.site || 1, options.limit));
|
|
74
|
+
}
|
|
75
|
+
/** name and id are what a project picks a design by, description is a fallback */
|
|
76
|
+
search(search) {
|
|
77
|
+
const term = search?.trim();
|
|
78
|
+
if (!term)
|
|
79
|
+
return undefined;
|
|
80
|
+
const pattern = new RegExp(escapeRegExp(term), 'i');
|
|
81
|
+
return {
|
|
82
|
+
$or: [
|
|
83
|
+
{ name: pattern },
|
|
84
|
+
{ id: pattern },
|
|
85
|
+
{ description: pattern },
|
|
86
|
+
],
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
/** removes one of the project's own designs, the shared library stays read only */
|
|
90
|
+
async remove(internalId, company, project, user, app) {
|
|
91
|
+
const design = await this.model.db.findOne({ _id: internalId, company, project });
|
|
92
|
+
if (!design?._id)
|
|
93
|
+
throw new ImmutableError('DESIGN_NOT_FOUND');
|
|
94
|
+
return this.delete(design._id, user, app);
|
|
95
|
+
}
|
|
8
96
|
}
|
|
97
|
+
/** the shared design catalog every project can pick from */
|
|
98
|
+
DesignsService.library = { company: 'lilaquadrat', project: 'designs' };
|
|
9
99
|
export default new DesignsService();
|
|
10
100
|
//# sourceMappingURL=designs.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"designs.service.js","sourceRoot":"","sources":["../../../src/services/designs.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"designs.service.js","sourceRoot":"","sources":["../../../src/services/designs.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Environment } from '@lilaquadrat/interfaces';
|
|
2
|
+
import Immutable from '../Immutable.class.js';
|
|
3
|
+
/**
|
|
4
|
+
* the environment of this deployment. exactly one document exists, so there is
|
|
5
|
+
* no list, create or delete — only reading and updating it.
|
|
6
|
+
*/
|
|
7
|
+
declare class EnvironmentsService extends Immutable<Environment> {
|
|
8
|
+
model: import("../classes/modelv2.class.js").default<Environment, string>;
|
|
9
|
+
get(): Promise<import("mongodb").WithId<Environment> | null>;
|
|
10
|
+
update(data: Environment, user: string, app: string): Promise<(import("mongodb").UpdateResult<import("bson").Document> & {
|
|
11
|
+
_id: import("bson").ObjectId;
|
|
12
|
+
}) | import("@lilaquadrat/interfaces").CreateResult<import("@lilaquadrat/interfaces").BasicData<Environment>>>;
|
|
13
|
+
}
|
|
14
|
+
declare const _default: EnvironmentsService;
|
|
15
|
+
export default _default;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import Immutable from '../Immutable.class.js';
|
|
2
|
+
import EnvironmentModel from '../models/environment.model.js';
|
|
3
|
+
/**
|
|
4
|
+
* the environment of this deployment. exactly one document exists, so there is
|
|
5
|
+
* no list, create or delete — only reading and updating it.
|
|
6
|
+
*/
|
|
7
|
+
class EnvironmentsService extends Immutable {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this.model = EnvironmentModel;
|
|
11
|
+
}
|
|
12
|
+
get() {
|
|
13
|
+
return this.model.db.findOne({}, { projection: { history: 0 } });
|
|
14
|
+
}
|
|
15
|
+
update(data, user, app) {
|
|
16
|
+
return this.immutableUpsert({}, data, user, 'change', app);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export default new EnvironmentsService();
|
|
20
|
+
//# sourceMappingURL=environments.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environments.service.js","sourceRoot":"","sources":["../../../src/services/environments.service.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAC9C,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;AAE9D;;;GAGG;AACH,MAAM,mBAAoB,SAAQ,SAAsB;IAAxD;;QAEE,UAAK,GAAG,gBAAgB,CAAC;IAc3B,CAAC;IAZC,GAAG;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEnE,CAAC;IAED,MAAM,CAAC,IAAiB,EAAE,IAAY,EAAE,GAAW;QAEjD,OAAO,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;IAE7D,CAAC;CAEF;AAED,eAAe,IAAI,mBAAmB,EAAE,CAAC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Filter, ObjectId, OrderedBulkOperation, UnorderedBulkOperation, Document } from 'mongodb';
|
|
2
|
-
import { HistoryReason, History, BasicData, Options } from '@lilaquadrat/interfaces';
|
|
3
|
-
import { HistorySeenKey } from './historySeen.service.js';
|
|
2
|
+
import { HistoryReason, History, BasicData, Options, HistorySeenKey } from '@lilaquadrat/interfaces';
|
|
4
3
|
type HistoryTenantUser = Pick<HistorySeenKey, 'user' | 'company' | 'project'>;
|
|
5
4
|
declare class HistoryService {
|
|
6
5
|
model: import("../classes/modelv2.class.js").default<History, string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history.service.js","sourceRoot":"","sources":["../../../src/services/history.service.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,QAAQ,GACT,MAAM,SAAS,CAAC;AACjB,OAAO,oBAAoB,MAAM,yCAAyC,CAAC;AAC3E,OAAO,kBAAkB,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,YAAY,MAAM,oCAAoC,CAAC;AAE9D,OAAO,sBAAsB,MAAM,2CAA2C,CAAC;AAC/E,OAAO,
|
|
1
|
+
{"version":3,"file":"history.service.js","sourceRoot":"","sources":["../../../src/services/history.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,5 @@
|
|
|
1
1
|
import { Filter, ObjectId } from 'mongodb';
|
|
2
|
-
import { History } from '@lilaquadrat/interfaces';
|
|
3
|
-
export interface HistorySeenKey {
|
|
4
|
-
user: string;
|
|
5
|
-
company: string;
|
|
6
|
-
project?: string;
|
|
7
|
-
model: string;
|
|
8
|
-
scope: string;
|
|
9
|
-
}
|
|
2
|
+
import { History, HistorySeenKey } from '@lilaquadrat/interfaces';
|
|
10
3
|
declare class HistorySeenService {
|
|
11
4
|
/** bounds the cost of counting a long unseen history, callers display anything at the limit as "limit+" */
|
|
12
5
|
readonly countLimit = 100;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"historySeen.service.js","sourceRoot":"","sources":["../../../src/services/historySeen.service.ts"],"names":[],"mappings":"AAEA,OAAO,YAAY,MAAM,4BAA4B,CAAC;AACtD,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"historySeen.service.js","sourceRoot":"","sources":["../../../src/services/historySeen.service.ts"],"names":[],"mappings":"AAEA,OAAO,YAAY,MAAM,4BAA4B,CAAC;AACtD,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;AAE9D,MAAM,kBAAkB;IAAxB;QAEE,2GAA2G;QAClG,eAAU,GAAG,GAAG,CAAC;IAgF5B,CAAC;IA9EC;;;OAGG;IACK,aAAa,CAAC,GAAmB,EAAE,WAA4B;QAErE,MAAM,MAAM,GAAoB;YAC9B,GAAG,WAAW;YACd,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,eAAe,EAAE,GAAG,CAAC,KAAK;SAC3B,CAAC;QAEF,IAAI,GAAG,CAAC,OAAO;YAAE,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAE9C,OAAO,MAAM,CAAC;IAEhB,CAAC;IAEO,SAAS,CAAC,GAAmB;QAEnC,MAAM,SAAS,GAAwB;YACrC,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,KAAK,EAAE,GAAG,CAAC,KAAK;SACjB,CAAC;QAEF,IAAI,GAAG,CAAC,OAAO;YAAE,SAAS,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAEjD,OAAO,SAAS,CAAC;IAEnB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,CAAC,GAAmB,EAAE,WAA4B;QAEjE,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACzG,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAEpD,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;QAE3C,IAAI,MAAM,EAAE,UAAU;YAAE,MAAM,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;QAEhE,OAAO,YAAY,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAE5E,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,QAAQ,CAAC,GAAmB,EAAE,WAA4B;QAE9D,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,YAAY,CAAC,EAAE;aACnC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;aACtE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;aACjB,KAAK,CAAC,CAAC,CAAC;aACR,OAAO,EAAE,CAAC;QAEb,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAEzB,MAAM,gBAAgB,CAAC,EAAE,CAAC,SAAS,CACjC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EACnB;YACE,IAAI,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,GAAG,EAAE;YAChC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE,EAAE;SAC7B,EACD,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB,CAAC;QAEF,OAAO,MAAM,CAAC,GAAG,CAAC;IAEpB,CAAC;CAEF;AAED,eAAe,IAAI,kBAAkB,EAAE,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ObjectId } from 'mongodb';
|
|
2
2
|
export default class IdService {
|
|
3
|
-
static getCurrent(company: string, project: string, app: string, model: string): Promise<import("mongodb").WithId<import("
|
|
3
|
+
static getCurrent(company: string, project: string, app: string, model: string): Promise<import("mongodb").WithId<import("@lilaquadrat/interfaces").IdCounter> | null>;
|
|
4
4
|
static getUnique(company: string, project?: string, app?: string, model?: string, dynamicKey?: string | number | ObjectId): Promise<number>;
|
|
5
5
|
}
|
|
@@ -2,8 +2,7 @@ import { ObjectId, UnorderedBulkOperation, UpdateResult, WithId } from 'mongodb'
|
|
|
2
2
|
import Immutable from '../Immutable.class.js';
|
|
3
3
|
import { Agreement, AgreementResponse, BasicData, CustomerPersonWithEmail, EmailsContent, History, HistoryReason, HistoryWithType, List, ListParticipants, ListParticipantWithCustomerAndPayment, ObjectIdString, Options, PlanningScope, PlanningShiftMembership, ShiftPlanCoverageSummary, ShiftPlanningProjectOptions, ShiftReportContext, SkipLimitSort, Structure, UserAppWithOptions } from '@lilaquadrat/interfaces';
|
|
4
4
|
import { ValidateFunction } from 'ajv';
|
|
5
|
-
import type { PlanningParticipantsResult } from '
|
|
6
|
-
import type { PlanCoveragePreparation } from '../interfaces/PlanCoveragePreparation.js';
|
|
5
|
+
import type { PlanningParticipantsResult, PlanCoveragePreparation } from '@lilaquadrat/interfaces';
|
|
7
6
|
export declare class ListParticipantsService extends Immutable<ListParticipants> {
|
|
8
7
|
model: import("../classes/modelv2.class.js").default<ListParticipants, string>;
|
|
9
8
|
singleForPlanning(list: ObjectId, participant: ObjectId, options: Required<UserAppWithOptions>): Promise<WithId<ListParticipants> | null>;
|
|
@@ -332,7 +331,7 @@ export declare class ListParticipantsService extends Immutable<ListParticipants>
|
|
|
332
331
|
/**
|
|
333
332
|
* join a list through payment
|
|
334
333
|
*/
|
|
335
|
-
joinViaPayment(listInternalId: ObjectId, customerId: ObjectId, message: string | undefined, category: string, payment: ObjectId, agreements: AgreementResponse[], options: Required<UserAppWithOptions>): Promise<ObjectId>;
|
|
334
|
+
joinViaPayment(listInternalId: ObjectId, customerId: ObjectId, message: string | undefined, category: string, payment: ObjectId, cart: ObjectId | undefined, agreements: AgreementResponse[], options: Required<UserAppWithOptions>): Promise<ObjectId>;
|
|
336
335
|
/**
|
|
337
336
|
* join a list from members perspective
|
|
338
337
|
*/
|
|
@@ -346,7 +345,7 @@ export declare class ListParticipantsService extends Immutable<ListParticipants>
|
|
|
346
345
|
*/
|
|
347
346
|
sendStateAndAudienceAwareEmail(listId: ObjectId, customerId: ObjectId, state: ListParticipants['state'], audience: EmailsContent['audience'], options: Required<UserAppWithOptions> & {
|
|
348
347
|
disableEmailConfirmedCheck?: boolean;
|
|
349
|
-
}): Promise<void | import("@lilaquadrat/interfaces").CreateResult<BasicData<import("@lilaquadrat/interfaces").Publish>>>;
|
|
348
|
+
}, cart?: ObjectId): Promise<void | import("@lilaquadrat/interfaces").CreateResult<BasicData<import("@lilaquadrat/interfaces").Publish>>>;
|
|
350
349
|
hasOpenSlotForCategory(listInternalId: ObjectId, category: string, options: Required<UserAppWithOptions>): Promise<boolean>;
|
|
351
350
|
remove(list: ObjectId, participationId: ObjectId, options: Required<UserAppWithOptions>): Promise<import("mongodb").DeleteResult>;
|
|
352
351
|
/**
|
|
@@ -792,7 +792,7 @@ export class ListParticipantsService extends Immutable {
|
|
|
792
792
|
/**
|
|
793
793
|
* join a list through payment
|
|
794
794
|
*/
|
|
795
|
-
async joinViaPayment(listInternalId, customerId, message, category, payment, agreements, options) {
|
|
795
|
+
async joinViaPayment(listInternalId, customerId, message, category, payment, cart, agreements, options) {
|
|
796
796
|
const list = await ListsService.single(listInternalId, undefined, options);
|
|
797
797
|
if (!list)
|
|
798
798
|
throw new Error('LIST_NOT_FOUND');
|
|
@@ -805,7 +805,7 @@ export class ListParticipantsService extends Immutable {
|
|
|
805
805
|
throw new Error('LIST_CANNOT_JOIN');
|
|
806
806
|
}
|
|
807
807
|
await this.addParticipant(listInternalId, list.mode, customerId, entryState, message, category, payment, undefined, agreements, options);
|
|
808
|
-
await this.sendStateAndAudienceAwareEmail(list._id, customerId, entryState, 'public', { ...options, disableEmailConfirmedCheck: true });
|
|
808
|
+
await this.sendStateAndAudienceAwareEmail(list._id, customerId, entryState, 'public', { ...options, disableEmailConfirmedCheck: true }, cart);
|
|
809
809
|
return customerId;
|
|
810
810
|
}
|
|
811
811
|
/**
|
|
@@ -924,7 +924,7 @@ export class ListParticipantsService extends Immutable {
|
|
|
924
924
|
* Sends an email based on participant state and audience criteria.
|
|
925
925
|
* if the options for disableEmailConfirmedCheck is set to true, the email will be sent regardless of the email confirmation status.
|
|
926
926
|
*/
|
|
927
|
-
async sendStateAndAudienceAwareEmail(listId, customerId, state, audience, options) {
|
|
927
|
+
async sendStateAndAudienceAwareEmail(listId, customerId, state, audience, options, cart) {
|
|
928
928
|
const list = await ListsService.single(listId, undefined, options);
|
|
929
929
|
if (!list)
|
|
930
930
|
return;
|
|
@@ -940,7 +940,7 @@ export class ListParticipantsService extends Immutable {
|
|
|
940
940
|
return;
|
|
941
941
|
}
|
|
942
942
|
}
|
|
943
|
-
return publishService.email(safeObjectId(email.contentId), customerId, undefined, { ...options, relatedData: { list: listId } });
|
|
943
|
+
return publishService.email(safeObjectId(email.contentId), customerId, undefined, { ...options, relatedData: { list: listId, ...(cart ? { cart } : {}) } });
|
|
944
944
|
}
|
|
945
945
|
async hasOpenSlotForCategory(listInternalId, category, options) {
|
|
946
946
|
const aggregation = [
|