@carlonicora/nestjs-neo4jsonapi 8.13.0 → 8.14.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/dist/foundations/account-deletion/repositories/account-deletion.wipe.repository.d.ts +2 -1
- package/dist/foundations/account-deletion/repositories/account-deletion.wipe.repository.d.ts.map +1 -1
- package/dist/foundations/account-deletion/repositories/account-deletion.wipe.repository.js +8 -1
- package/dist/foundations/account-deletion/repositories/account-deletion.wipe.repository.js.map +1 -1
- package/dist/foundations/company/repositories/company.repository.d.ts +2 -2
- package/dist/foundations/company/repositories/company.repository.d.ts.map +1 -1
- package/dist/foundations/company/repositories/company.repository.js +10 -2
- package/dist/foundations/company/repositories/company.repository.js.map +1 -1
- package/dist/foundations/referral/controllers/index.d.ts +2 -0
- package/dist/foundations/referral/controllers/index.d.ts.map +1 -1
- package/dist/foundations/referral/controllers/index.js +2 -0
- package/dist/foundations/referral/controllers/index.js.map +1 -1
- package/dist/foundations/referral/controllers/referral.admin.controller.d.ts +24 -0
- package/dist/foundations/referral/controllers/referral.admin.controller.d.ts.map +1 -0
- package/dist/foundations/referral/controllers/referral.admin.controller.js +100 -0
- package/dist/foundations/referral/controllers/referral.admin.controller.js.map +1 -0
- package/dist/foundations/referral/controllers/referral.public.controller.d.ts +19 -0
- package/dist/foundations/referral/controllers/referral.public.controller.d.ts.map +1 -0
- package/dist/foundations/referral/controllers/referral.public.controller.js +57 -0
- package/dist/foundations/referral/controllers/referral.public.controller.js.map +1 -0
- package/dist/foundations/referral/dtos/index.d.ts +1 -0
- package/dist/foundations/referral/dtos/index.d.ts.map +1 -1
- package/dist/foundations/referral/dtos/index.js +1 -0
- package/dist/foundations/referral/dtos/index.js.map +1 -1
- package/dist/foundations/referral/dtos/referral-visit.post.dto.d.ts +11 -0
- package/dist/foundations/referral/dtos/referral-visit.post.dto.d.ts.map +1 -0
- package/dist/foundations/referral/dtos/referral-visit.post.dto.js +48 -0
- package/dist/foundations/referral/dtos/referral-visit.post.dto.js.map +1 -0
- package/dist/foundations/referral/entities/index.d.ts +11 -0
- package/dist/foundations/referral/entities/index.d.ts.map +1 -1
- package/dist/foundations/referral/entities/index.js +11 -0
- package/dist/foundations/referral/entities/index.js.map +1 -1
- package/dist/foundations/referral/entities/referral-admin-referral.d.ts +23 -0
- package/dist/foundations/referral/entities/referral-admin-referral.d.ts.map +1 -0
- package/dist/foundations/referral/entities/referral-admin-referral.js +23 -0
- package/dist/foundations/referral/entities/referral-admin-referral.js.map +1 -0
- package/dist/foundations/referral/entities/referral-admin-referral.meta.d.ts +3 -0
- package/dist/foundations/referral/entities/referral-admin-referral.meta.d.ts.map +1 -0
- package/dist/foundations/referral/entities/referral-admin-referral.meta.js +10 -0
- package/dist/foundations/referral/entities/referral-admin-referral.meta.js.map +1 -0
- package/dist/foundations/referral/entities/referral-admin-referrer.d.ts +22 -0
- package/dist/foundations/referral/entities/referral-admin-referrer.d.ts.map +1 -0
- package/dist/foundations/referral/entities/referral-admin-referrer.js +23 -0
- package/dist/foundations/referral/entities/referral-admin-referrer.js.map +1 -0
- package/dist/foundations/referral/entities/referral-admin-referrer.meta.d.ts +3 -0
- package/dist/foundations/referral/entities/referral-admin-referrer.meta.d.ts.map +1 -0
- package/dist/foundations/referral/entities/referral-admin-referrer.meta.js +10 -0
- package/dist/foundations/referral/entities/referral-admin-referrer.meta.js.map +1 -0
- package/dist/foundations/referral/entities/referral-admin-summary.d.ts +23 -0
- package/dist/foundations/referral/entities/referral-admin-summary.d.ts.map +1 -0
- package/dist/foundations/referral/entities/referral-admin-summary.js +22 -0
- package/dist/foundations/referral/entities/referral-admin-summary.js.map +1 -0
- package/dist/foundations/referral/entities/referral-admin-summary.meta.d.ts +3 -0
- package/dist/foundations/referral/entities/referral-admin-summary.meta.d.ts.map +1 -0
- package/dist/foundations/referral/entities/referral-admin-summary.meta.js +10 -0
- package/dist/foundations/referral/entities/referral-admin-summary.meta.js.map +1 -0
- package/dist/foundations/referral/entities/referral-invite.d.ts +27 -0
- package/dist/foundations/referral/entities/referral-invite.d.ts.map +1 -0
- package/dist/foundations/referral/entities/referral-invite.js +28 -0
- package/dist/foundations/referral/entities/referral-invite.js.map +1 -0
- package/dist/foundations/referral/entities/referral-invite.meta.d.ts +3 -0
- package/dist/foundations/referral/entities/referral-invite.meta.d.ts.map +1 -0
- package/dist/foundations/referral/entities/referral-invite.meta.js +10 -0
- package/dist/foundations/referral/entities/referral-invite.meta.js.map +1 -0
- package/dist/foundations/referral/entities/referral-source.d.ts +10 -0
- package/dist/foundations/referral/entities/referral-source.d.ts.map +1 -0
- package/dist/foundations/referral/entities/referral-source.js +9 -0
- package/dist/foundations/referral/entities/referral-source.js.map +1 -0
- package/dist/foundations/referral/entities/referral-visit.d.ts +19 -0
- package/dist/foundations/referral/entities/referral-visit.d.ts.map +1 -0
- package/dist/foundations/referral/entities/referral-visit.js +21 -0
- package/dist/foundations/referral/entities/referral-visit.js.map +1 -0
- package/dist/foundations/referral/entities/referral-visit.meta.d.ts +7 -0
- package/dist/foundations/referral/entities/referral-visit.meta.d.ts.map +1 -0
- package/dist/foundations/referral/entities/referral-visit.meta.js +14 -0
- package/dist/foundations/referral/entities/referral-visit.meta.js.map +1 -0
- package/dist/foundations/referral/entities/referral.d.ts +3 -0
- package/dist/foundations/referral/entities/referral.d.ts.map +1 -1
- package/dist/foundations/referral/entities/referral.js +1 -0
- package/dist/foundations/referral/entities/referral.js.map +1 -1
- package/dist/foundations/referral/index.d.ts +1 -0
- package/dist/foundations/referral/index.d.ts.map +1 -1
- package/dist/foundations/referral/index.js +1 -0
- package/dist/foundations/referral/index.js.map +1 -1
- package/dist/foundations/referral/referral.module.d.ts.map +1 -1
- package/dist/foundations/referral/referral.module.js +20 -1
- package/dist/foundations/referral/referral.module.js.map +1 -1
- package/dist/foundations/referral/repositories/index.d.ts +1 -0
- package/dist/foundations/referral/repositories/index.d.ts.map +1 -1
- package/dist/foundations/referral/repositories/index.js +1 -0
- package/dist/foundations/referral/repositories/index.js.map +1 -1
- package/dist/foundations/referral/repositories/referral.admin.repository.d.ts +106 -0
- package/dist/foundations/referral/repositories/referral.admin.repository.d.ts.map +1 -0
- package/dist/foundations/referral/repositories/referral.admin.repository.js +380 -0
- package/dist/foundations/referral/repositories/referral.admin.repository.js.map +1 -0
- package/dist/foundations/referral/repositories/referral.repository.d.ts +34 -0
- package/dist/foundations/referral/repositories/referral.repository.d.ts.map +1 -1
- package/dist/foundations/referral/repositories/referral.repository.js +82 -0
- package/dist/foundations/referral/repositories/referral.repository.js.map +1 -1
- package/dist/foundations/referral/services/index.d.ts +1 -0
- package/dist/foundations/referral/services/index.d.ts.map +1 -1
- package/dist/foundations/referral/services/index.js +1 -0
- package/dist/foundations/referral/services/index.js.map +1 -1
- package/dist/foundations/referral/services/referral.admin.service.d.ts +53 -0
- package/dist/foundations/referral/services/referral.admin.service.d.ts.map +1 -0
- package/dist/foundations/referral/services/referral.admin.service.js +94 -0
- package/dist/foundations/referral/services/referral.admin.service.js.map +1 -0
- package/dist/foundations/referral/services/referral.service.d.ts +10 -2
- package/dist/foundations/referral/services/referral.service.d.ts.map +1 -1
- package/dist/foundations/referral/services/referral.service.js +34 -4
- package/dist/foundations/referral/services/referral.service.js.map +1 -1
- package/package.json +1 -1
|
@@ -16,7 +16,12 @@ const abstract_repository_1 = require("../../../core/neo4j/abstracts/abstract.re
|
|
|
16
16
|
const neo4j_service_1 = require("../../../core/neo4j/services/neo4j.service");
|
|
17
17
|
const security_service_1 = require("../../../core/security/services/security.service");
|
|
18
18
|
const company_meta_1 = require("../../company/entities/company.meta");
|
|
19
|
+
const user_meta_1 = require("../../user/entities/user.meta");
|
|
19
20
|
const referral_1 = require("../entities/referral");
|
|
21
|
+
const referral_invite_1 = require("../entities/referral-invite");
|
|
22
|
+
const referral_invite_meta_1 = require("../entities/referral-invite.meta");
|
|
23
|
+
const referral_visit_1 = require("../entities/referral-visit");
|
|
24
|
+
const referral_visit_meta_1 = require("../entities/referral-visit.meta");
|
|
20
25
|
const referral_meta_1 = require("../entities/referral.meta");
|
|
21
26
|
let ReferralRepository = class ReferralRepository extends abstract_repository_1.AbstractRepository {
|
|
22
27
|
constructor(neo4j, securityService, clsService) {
|
|
@@ -37,12 +42,22 @@ let ReferralRepository = class ReferralRepository extends abstract_repository_1.
|
|
|
37
42
|
}
|
|
38
43
|
/**
|
|
39
44
|
* Create a new referral with REFERRED_BY and REFERS_TO relationships.
|
|
45
|
+
*
|
|
46
|
+
* Company check: the referred company (the caller's own) goes through
|
|
47
|
+
* validateRelatedNodes. The REFERRED_BY link to the referrer company skips that
|
|
48
|
+
* check, because a link to another company is the point of the record.
|
|
49
|
+
* Owner-approved exception (Carlo, 2026-10-30, D18), the same scope as the
|
|
50
|
+
* 2026-10-26 exception on createReferralIfAbsent.
|
|
40
51
|
* @param params.id - The referral ID
|
|
41
52
|
* @param params.referrerCompanyId - The company that made the referral
|
|
42
53
|
* @param params.referredCompanyId - The company that was referred
|
|
54
|
+
* @param params.source - How the referral came about (link or direct)
|
|
43
55
|
* @returns true if the referral was created, false if one or both companies don't exist
|
|
44
56
|
*/
|
|
45
57
|
async createReferral(params) {
|
|
58
|
+
await this.neo4j.validateRelatedNodes({
|
|
59
|
+
nodes: [{ id: params.referredCompanyId, label: company_meta_1.companyMeta.labelName }],
|
|
60
|
+
});
|
|
46
61
|
const results = await this.neo4j.executeInTransaction([
|
|
47
62
|
{
|
|
48
63
|
query: `
|
|
@@ -51,6 +66,7 @@ let ReferralRepository = class ReferralRepository extends abstract_repository_1.
|
|
|
51
66
|
CREATE (${referral_meta_1.referralMeta.nodeName}:${referral_meta_1.referralMeta.labelName} {
|
|
52
67
|
id: $id,
|
|
53
68
|
status: $status,
|
|
69
|
+
source: $source,
|
|
54
70
|
createdAt: datetime(),
|
|
55
71
|
updatedAt: datetime()
|
|
56
72
|
})
|
|
@@ -63,6 +79,7 @@ let ReferralRepository = class ReferralRepository extends abstract_repository_1.
|
|
|
63
79
|
referrerCompanyId: params.referrerCompanyId,
|
|
64
80
|
referredCompanyId: params.referredCompanyId,
|
|
65
81
|
status: "pending",
|
|
82
|
+
source: params.source,
|
|
66
83
|
},
|
|
67
84
|
},
|
|
68
85
|
]);
|
|
@@ -83,6 +100,7 @@ let ReferralRepository = class ReferralRepository extends abstract_repository_1.
|
|
|
83
100
|
* @param params.id - The referral ID
|
|
84
101
|
* @param params.referrerCompanyId - The company that made the referral
|
|
85
102
|
* @param params.referredCompanyId - The company that was referred
|
|
103
|
+
* @param params.source - How the referral came about (link or direct)
|
|
86
104
|
*/
|
|
87
105
|
async createReferralIfAbsent(params) {
|
|
88
106
|
await this.neo4j.validateRelatedNodes({
|
|
@@ -95,6 +113,7 @@ let ReferralRepository = class ReferralRepository extends abstract_repository_1.
|
|
|
95
113
|
referrerCompanyId: params.referrerCompanyId,
|
|
96
114
|
referredCompanyId: params.referredCompanyId,
|
|
97
115
|
status: "pending",
|
|
116
|
+
source: params.source,
|
|
98
117
|
};
|
|
99
118
|
query.query += `
|
|
100
119
|
MATCH (referrer:${company_meta_1.companyMeta.labelName} {id: $referrerCompanyId})
|
|
@@ -103,6 +122,7 @@ let ReferralRepository = class ReferralRepository extends abstract_repository_1.
|
|
|
103
122
|
CREATE (${referral_meta_1.referralMeta.nodeName}:${referral_meta_1.referralMeta.labelName} {
|
|
104
123
|
id: $id,
|
|
105
124
|
status: $status,
|
|
125
|
+
source: $source,
|
|
106
126
|
createdAt: datetime(),
|
|
107
127
|
updatedAt: datetime()
|
|
108
128
|
})
|
|
@@ -111,6 +131,68 @@ let ReferralRepository = class ReferralRepository extends abstract_repository_1.
|
|
|
111
131
|
`;
|
|
112
132
|
await this.neo4j.writeOne(query);
|
|
113
133
|
}
|
|
134
|
+
/**
|
|
135
|
+
* Record one referral invite email sent by a user of a company. The invitee
|
|
136
|
+
* address is never stored. Both ids must be server-derived (CLS).
|
|
137
|
+
* @param params.id - The invite ID
|
|
138
|
+
* @param params.companyId - The sender's company
|
|
139
|
+
* @param params.userId - The sender
|
|
140
|
+
*/
|
|
141
|
+
async createInvite(params) {
|
|
142
|
+
await this.neo4j.validateRelatedNodes({
|
|
143
|
+
nodes: [
|
|
144
|
+
{ id: params.companyId, label: company_meta_1.companyMeta.labelName },
|
|
145
|
+
{ id: params.userId, label: user_meta_1.userMeta.labelName },
|
|
146
|
+
],
|
|
147
|
+
});
|
|
148
|
+
const query = this.neo4j.initQuery({ serialiser: referral_invite_1.ReferralInviteDescriptor.model });
|
|
149
|
+
query.queryParams = {
|
|
150
|
+
...query.queryParams,
|
|
151
|
+
id: params.id,
|
|
152
|
+
companyId: params.companyId,
|
|
153
|
+
userId: params.userId,
|
|
154
|
+
};
|
|
155
|
+
query.query += `
|
|
156
|
+
MATCH (company:${company_meta_1.companyMeta.labelName} {id: $companyId})
|
|
157
|
+
MATCH (sender:${user_meta_1.userMeta.labelName} {id: $userId})
|
|
158
|
+
CREATE (${referral_invite_meta_1.referralInviteMeta.nodeName}:${referral_invite_meta_1.referralInviteMeta.labelName} {
|
|
159
|
+
id: $id,
|
|
160
|
+
createdAt: datetime(),
|
|
161
|
+
updatedAt: datetime()
|
|
162
|
+
})
|
|
163
|
+
CREATE (${referral_invite_meta_1.referralInviteMeta.nodeName})-[:SENT_BY]->(company)
|
|
164
|
+
CREATE (${referral_invite_meta_1.referralInviteMeta.nodeName})-[:SENT_BY_USER]->(sender)
|
|
165
|
+
`;
|
|
166
|
+
await this.neo4j.writeOne(query);
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Record one visit to a company's referral link. Runs on a public route with no
|
|
170
|
+
* company in CLS, so the company check is existence only. The company id comes
|
|
171
|
+
* from the referral code lookup, never from the request.
|
|
172
|
+
* @param params.id - The visit ID
|
|
173
|
+
* @param params.referrerCompanyId - The company owning the referral code
|
|
174
|
+
*/
|
|
175
|
+
async createVisit(params) {
|
|
176
|
+
await this.neo4j.validateRelatedNodes({
|
|
177
|
+
nodes: [{ id: params.referrerCompanyId, label: company_meta_1.companyMeta.labelName }],
|
|
178
|
+
});
|
|
179
|
+
const query = this.neo4j.initQuery({ serialiser: referral_visit_1.ReferralVisitDescriptor.model });
|
|
180
|
+
query.queryParams = {
|
|
181
|
+
...query.queryParams,
|
|
182
|
+
id: params.id,
|
|
183
|
+
referrerCompanyId: params.referrerCompanyId,
|
|
184
|
+
};
|
|
185
|
+
query.query += `
|
|
186
|
+
MATCH (referrer:${company_meta_1.companyMeta.labelName} {id: $referrerCompanyId})
|
|
187
|
+
CREATE (${referral_visit_meta_1.referralVisitMeta.nodeName}:${referral_visit_meta_1.referralVisitMeta.labelName} {
|
|
188
|
+
id: $id,
|
|
189
|
+
createdAt: datetime(),
|
|
190
|
+
updatedAt: datetime()
|
|
191
|
+
})
|
|
192
|
+
CREATE (${referral_visit_meta_1.referralVisitMeta.nodeName})-[:VISITED]->(referrer)
|
|
193
|
+
`;
|
|
194
|
+
await this.neo4j.writeOne(query);
|
|
195
|
+
}
|
|
114
196
|
/**
|
|
115
197
|
* Find a pending referral by the referred company ID.
|
|
116
198
|
* Uses custom result processing to properly load both referrer and referred relationships
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"referral.repository.js","sourceRoot":"","sources":["../../../../src/foundations/referral/repositories/referral.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,2CAAwC;AACxC,2FAAuF;AACvF,8EAA0E;AAC1E,uFAAmF;AAEnF,sEAAkE;AAClE,mDAAoE;AACpE,6DAAyD;AAGlD,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,wCAAqE;IAG3G,YAAY,KAAmB,EAAE,eAAgC,EAAE,UAAsB;QACvF,KAAK,CAAC,KAAK,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;QAHzB,eAAU,GAAG,6BAAkB,CAAC;IAInD,CAAC;IAED;;OAEG;IACO,oBAAoB;QAC5B,OAAO;eACI,4BAAY,CAAC,QAAQ,sBAAsB,4BAAY,CAAC,QAAQ,aAAa,0BAAW,CAAC,SAAS;eAClG,4BAAY,CAAC,QAAQ,oBAAoB,4BAAY,CAAC,QAAQ,aAAa,0BAAW,CAAC,SAAS;eAChG,4BAAY,CAAC,QAAQ;UAC1B,4BAAY,CAAC,QAAQ;UACrB,4BAAY,CAAC,QAAQ;KAC1B,CAAC;IACJ,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"referral.repository.js","sourceRoot":"","sources":["../../../../src/foundations/referral/repositories/referral.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,2CAAwC;AACxC,2FAAuF;AACvF,8EAA0E;AAC1E,uFAAmF;AAEnF,sEAAkE;AAClE,6DAAyD;AACzD,mDAAoE;AACpE,iEAAuE;AACvE,2EAAsE;AAEtE,+DAAqE;AACrE,yEAAoE;AACpE,6DAAyD;AAGlD,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,wCAAqE;IAG3G,YAAY,KAAmB,EAAE,eAAgC,EAAE,UAAsB;QACvF,KAAK,CAAC,KAAK,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;QAHzB,eAAU,GAAG,6BAAkB,CAAC;IAInD,CAAC;IAED;;OAEG;IACO,oBAAoB;QAC5B,OAAO;eACI,4BAAY,CAAC,QAAQ,sBAAsB,4BAAY,CAAC,QAAQ,aAAa,0BAAW,CAAC,SAAS;eAClG,4BAAY,CAAC,QAAQ,oBAAoB,4BAAY,CAAC,QAAQ,aAAa,0BAAW,CAAC,SAAS;eAChG,4BAAY,CAAC,QAAQ;UAC1B,4BAAY,CAAC,QAAQ;UACrB,4BAAY,CAAC,QAAQ;KAC1B,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,cAAc,CAAC,MAKpB;QACC,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC;YACpC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,iBAAiB,EAAE,KAAK,EAAE,0BAAW,CAAC,SAAS,EAAE,CAAC;SACxE,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC;YACpD;gBACE,KAAK,EAAE;4BACa,0BAAW,CAAC,SAAS;4BACrB,0BAAW,CAAC,SAAS;oBAC7B,4BAAY,CAAC,QAAQ,IAAI,4BAAY,CAAC,SAAS;;;;;;;oBAO/C,4BAAY,CAAC,QAAQ;oBACrB,4BAAY,CAAC,QAAQ;mBACtB,4BAAY,CAAC,QAAQ;SAC/B;gBACD,MAAM,EAAE;oBACN,EAAE,EAAE,MAAM,CAAC,EAAE;oBACb,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;oBAC3C,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;oBAC3C,MAAM,EAAE,SAAS;oBACjB,MAAM,EAAE,MAAM,CAAC,MAAM;iBACtB;aACF;SACF,CAAC,CAAC;QAEH,mEAAmE;QACnE,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,sBAAsB,CAAC,MAK5B;QACC,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC;YACpC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,iBAAiB,EAAE,KAAK,EAAE,0BAAW,CAAC,SAAS,EAAE,CAAC;SACxE,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,6BAAkB,CAAC,KAAK,EAAE,CAAC,CAAC;QAE7E,KAAK,CAAC,WAAW,GAAG;YAClB,GAAG,KAAK,CAAC,WAAW;YACpB,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;YAC3C,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;YAC3C,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;QAEF,KAAK,CAAC,KAAK,IAAI;wBACK,0BAAW,CAAC,SAAS;wBACrB,0BAAW,CAAC,SAAS;mCACV,4BAAY,CAAC,SAAS;gBACzC,4BAAY,CAAC,QAAQ,IAAI,4BAAY,CAAC,SAAS;;;;;;;gBAO/C,4BAAY,CAAC,QAAQ;gBACrB,4BAAY,CAAC,QAAQ;KAChC,CAAC;QAEF,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,YAAY,CAAC,MAAyD;QAC1E,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC;YACpC,KAAK,EAAE;gBACL,EAAE,EAAE,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,0BAAW,CAAC,SAAS,EAAE;gBACtD,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,oBAAQ,CAAC,SAAS,EAAE;aACjD;SACF,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,0CAAwB,CAAC,KAAK,EAAE,CAAC,CAAC;QAEnF,KAAK,CAAC,WAAW,GAAG;YAClB,GAAG,KAAK,CAAC,WAAW;YACpB,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;QAEF,KAAK,CAAC,KAAK,IAAI;uBACI,0BAAW,CAAC,SAAS;sBACtB,oBAAQ,CAAC,SAAS;gBACxB,yCAAkB,CAAC,QAAQ,IAAI,yCAAkB,CAAC,SAAS;;;;;gBAK3D,yCAAkB,CAAC,QAAQ;gBAC3B,yCAAkB,CAAC,QAAQ;KACtC,CAAC;QAEF,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,WAAW,CAAC,MAAiD;QACjE,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC;YACpC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,iBAAiB,EAAE,KAAK,EAAE,0BAAW,CAAC,SAAS,EAAE,CAAC;SACxE,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,wCAAuB,CAAC,KAAK,EAAE,CAAC,CAAC;QAElF,KAAK,CAAC,WAAW,GAAG;YAClB,GAAG,KAAK,CAAC,WAAW;YACpB,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;SAC5C,CAAC;QAEF,KAAK,CAAC,KAAK,IAAI;wBACK,0BAAW,CAAC,SAAS;gBAC7B,uCAAiB,CAAC,QAAQ,IAAI,uCAAiB,CAAC,SAAS;;;;;gBAKzD,uCAAiB,CAAC,QAAQ;KACrC,CAAC;QAEF,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,8BAA8B,CAAC,MAAqC;QACxE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAClC;eACS,4BAAY,CAAC,QAAQ,IAAI,4BAAY,CAAC,SAAS,6BAA6B,0BAAW,CAAC,SAAS;cAClG,4BAAY,CAAC,QAAQ;eACpB,4BAAY,CAAC,QAAQ,+BAA+B,0BAAW,CAAC,SAAS;eACzE,4BAAY,CAAC,QAAQ;OAC7B,EACD;YACE,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;YAC3C,MAAM,EAAE,SAAS;SAClB,CACF,CAAC;QAEF,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAE7C,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,4BAAY,CAAC,QAAQ,CAAC,CAAC;QACvD,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAE5C,qDAAqD;QACrD,+DAA+D;QAC/D,0FAA0F;QAC1F,MAAM,QAAQ,GAAa;YACzB,EAAE,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE;YAC9B,IAAI,EAAE,4BAAY,CAAC,IAAI;YACvB,MAAM,EAAE,YAAY,CAAC,UAAU,CAAC,MAAM;YACtC,SAAS,EAAE,YAAY,CAAC,UAAU,CAAC,SAAS;YAC5C,SAAS,EAAE,YAAY,CAAC,UAAU,CAAC,SAAS;YAC5C,WAAW,EAAE,YAAY,CAAC,UAAU,CAAC,WAAW;YAChD,aAAa,EAAE,YAAY,CAAC,UAAU,CAAC,aAAa;YACpD,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAE,EAAE,EAAE,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,EAAc,CAAC,CAAC,CAAC,SAAS;YACpF,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAE,EAAE,EAAE,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,EAAc,CAAC,CAAC,CAAC,SAAS;SACrF,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,gBAAgB,CAAC,MAAqD;QAC1E,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;YACxB,WAAW,EAAE;gBACX,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,MAAM,EAAE,WAAW;aACpB;YACD,KAAK,EAAE;iBACI,4BAAY,CAAC,QAAQ,IAAI,4BAAY,CAAC,SAAS;cAClD,4BAAY,CAAC,QAAQ;cACrB,4BAAY,CAAC,QAAQ;cACrB,4BAAY,CAAC,QAAQ;cACrB,4BAAY,CAAC,QAAQ;OAC5B;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,iCAAiC,CAAC,MAAqC;QAC3E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAClC;eACS,4BAAY,CAAC,QAAQ,IAAI,4BAAY,CAAC,SAAS,+BAA+B,0BAAW,CAAC,SAAS;cACpG,4BAAY,CAAC,QAAQ;qBACd,4BAAY,CAAC,QAAQ;OACnC,EACD;YACE,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;YAC3C,MAAM,EAAE,WAAW;SACpB,CACF,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9C,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;CACF,CAAA;AAlSY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;qCAIQ,4BAAY,EAAmB,kCAAe,EAAc,uBAAU;GAH9E,kBAAkB,CAkS9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/foundations/referral/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/foundations/referral/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC"}
|
|
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./referral.service"), exports);
|
|
18
18
|
__exportStar(require("./registration-referral.hook"), exports);
|
|
19
|
+
__exportStar(require("./referral.admin.service"), exports);
|
|
19
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/foundations/referral/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,+DAA6C"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/foundations/referral/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,+DAA6C;AAC7C,2DAAyC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { ClsService } from "nestjs-cls";
|
|
2
|
+
import { JsonApiListDocument } from "../../../core/jsonapi/interfaces/jsonapi.document.interface";
|
|
3
|
+
import { JsonApiService } from "../../../core/jsonapi/services/jsonapi.service";
|
|
4
|
+
import { AbstractService } from "../../../core/neo4j/abstracts/abstract.service";
|
|
5
|
+
import { UserRepository } from "../../user/repositories/user.repository";
|
|
6
|
+
import { Referral, ReferralDescriptor } from "../entities/referral";
|
|
7
|
+
import { ReferralAdminPeriod, ReferralAdminRepository, ReferralAdminSort } from "../repositories/referral.admin.repository";
|
|
8
|
+
import { ReferralRepository } from "../repositories/referral.repository";
|
|
9
|
+
/**
|
|
10
|
+
* Serialises the platform-wide referral report as JSON:API documents.
|
|
11
|
+
*
|
|
12
|
+
* Extends AbstractService over the Referral descriptor and its repository,
|
|
13
|
+
* mirroring AnalyticsAdminService: the inherited CRUD is not reachable from any
|
|
14
|
+
* route on ReferralAdminController, but keeps the base class coherent. Summary,
|
|
15
|
+
* referrers and referrals serialise with their synthetic descriptors' models,
|
|
16
|
+
* because their rows are aggregates, not nodes.
|
|
17
|
+
*
|
|
18
|
+
* Platform administrators' companies are excluded from every number.
|
|
19
|
+
*/
|
|
20
|
+
export declare class ReferralAdminService extends AbstractService<Referral, typeof ReferralDescriptor.relationships> {
|
|
21
|
+
private readonly referralAdminRepository;
|
|
22
|
+
private readonly userRepository;
|
|
23
|
+
protected readonly descriptor: import("../../..").EntityDescriptor<Referral, {
|
|
24
|
+
referrer: {
|
|
25
|
+
model: import("../../..").DataMeta;
|
|
26
|
+
direction: "out";
|
|
27
|
+
relationship: string;
|
|
28
|
+
cardinality: "one";
|
|
29
|
+
};
|
|
30
|
+
referred: {
|
|
31
|
+
model: import("../../..").DataMeta;
|
|
32
|
+
direction: "out";
|
|
33
|
+
relationship: string;
|
|
34
|
+
cardinality: "one";
|
|
35
|
+
};
|
|
36
|
+
}>;
|
|
37
|
+
constructor(jsonApiService: JsonApiService, referralRepository: ReferralRepository, clsService: ClsService, referralAdminRepository: ReferralAdminRepository, userRepository: UserRepository);
|
|
38
|
+
getSummary(params: {
|
|
39
|
+
period: ReferralAdminPeriod;
|
|
40
|
+
}): Promise<JsonApiListDocument>;
|
|
41
|
+
getReferrers(params: {
|
|
42
|
+
period: ReferralAdminPeriod;
|
|
43
|
+
sort: ReferralAdminSort;
|
|
44
|
+
}): Promise<JsonApiListDocument>;
|
|
45
|
+
getReferrals(params: {
|
|
46
|
+
period: ReferralAdminPeriod;
|
|
47
|
+
}): Promise<JsonApiListDocument>;
|
|
48
|
+
/** The period's start as an ISO datetime, or null for "all". */
|
|
49
|
+
private _from;
|
|
50
|
+
private _daysBefore;
|
|
51
|
+
private _excludeUserIds;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=referral.admin.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"referral.admin.service.d.ts","sourceRoot":"","sources":["../../../../src/foundations/referral/services/referral.admin.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,6DAA6D,CAAC;AAClG,OAAO,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAIpE,OAAO,EAEL,mBAAmB,EACnB,uBAAuB,EACvB,iBAAiB,EAClB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAIzE;;;;;;;;;;GAUG;AACH,qBACa,oBAAqB,SAAQ,eAAe,CAAC,QAAQ,EAAE,OAAO,kBAAkB,CAAC,aAAa,CAAC;IAOxG,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAPjC,SAAS,CAAC,QAAQ,CAAC,UAAU;;;;;;;;;;;;;OAAsB;gBAGjD,cAAc,EAAE,cAAc,EAC9B,kBAAkB,EAAE,kBAAkB,EACtC,UAAU,EAAE,UAAU,EACL,uBAAuB,EAAE,uBAAuB,EAChD,cAAc,EAAE,cAAc;IAK3C,UAAU,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,mBAAmB,CAAA;KAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAejF,YAAY,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,mBAAmB,CAAC;QAAC,IAAI,EAAE,iBAAiB,CAAA;KAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAY5G,YAAY,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,mBAAmB,CAAA;KAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAWzF,gEAAgE;IAChE,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,WAAW;YAIL,eAAe;CAI9B"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ReferralAdminService = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const nestjs_cls_1 = require("nestjs-cls");
|
|
15
|
+
const jsonapi_service_1 = require("../../../core/jsonapi/services/jsonapi.service");
|
|
16
|
+
const abstract_service_1 = require("../../../core/neo4j/abstracts/abstract.service");
|
|
17
|
+
const user_repository_1 = require("../../user/repositories/user.repository");
|
|
18
|
+
const referral_1 = require("../entities/referral");
|
|
19
|
+
const referral_admin_referral_1 = require("../entities/referral-admin-referral");
|
|
20
|
+
const referral_admin_referrer_1 = require("../entities/referral-admin-referrer");
|
|
21
|
+
const referral_admin_summary_1 = require("../entities/referral-admin-summary");
|
|
22
|
+
const referral_admin_repository_1 = require("../repositories/referral.admin.repository");
|
|
23
|
+
const referral_repository_1 = require("../repositories/referral.repository");
|
|
24
|
+
const ONE_DAY_MS = 24 * 60 * 60 * 1000;
|
|
25
|
+
/**
|
|
26
|
+
* Serialises the platform-wide referral report as JSON:API documents.
|
|
27
|
+
*
|
|
28
|
+
* Extends AbstractService over the Referral descriptor and its repository,
|
|
29
|
+
* mirroring AnalyticsAdminService: the inherited CRUD is not reachable from any
|
|
30
|
+
* route on ReferralAdminController, but keeps the base class coherent. Summary,
|
|
31
|
+
* referrers and referrals serialise with their synthetic descriptors' models,
|
|
32
|
+
* because their rows are aggregates, not nodes.
|
|
33
|
+
*
|
|
34
|
+
* Platform administrators' companies are excluded from every number.
|
|
35
|
+
*/
|
|
36
|
+
let ReferralAdminService = class ReferralAdminService extends abstract_service_1.AbstractService {
|
|
37
|
+
constructor(jsonApiService, referralRepository, clsService, referralAdminRepository, userRepository) {
|
|
38
|
+
super(jsonApiService, referralRepository, clsService, referral_1.ReferralDescriptor.model);
|
|
39
|
+
this.referralAdminRepository = referralAdminRepository;
|
|
40
|
+
this.userRepository = userRepository;
|
|
41
|
+
this.descriptor = referral_1.ReferralDescriptor;
|
|
42
|
+
}
|
|
43
|
+
async getSummary(params) {
|
|
44
|
+
const now = new Date();
|
|
45
|
+
const days = referral_admin_repository_1.REFERRAL_ADMIN_PERIODS[params.period];
|
|
46
|
+
const excludeUserIds = await this._excludeUserIds();
|
|
47
|
+
const rows = await this.referralAdminRepository.findSummary({
|
|
48
|
+
from: days === null ? null : this._daysBefore(now, days),
|
|
49
|
+
previousFrom: days === null ? null : this._daysBefore(now, 2 * days),
|
|
50
|
+
to: now.toISOString(),
|
|
51
|
+
excludeUserIds,
|
|
52
|
+
});
|
|
53
|
+
return this.jsonApiService.buildList(referral_admin_summary_1.ReferralAdminSummaryDescriptor.model, rows);
|
|
54
|
+
}
|
|
55
|
+
async getReferrers(params) {
|
|
56
|
+
const excludeUserIds = await this._excludeUserIds();
|
|
57
|
+
const rows = await this.referralAdminRepository.findReferrers({
|
|
58
|
+
from: this._from(params.period),
|
|
59
|
+
sort: params.sort,
|
|
60
|
+
excludeUserIds,
|
|
61
|
+
});
|
|
62
|
+
return this.jsonApiService.buildList(referral_admin_referrer_1.ReferralAdminReferrerDescriptor.model, rows);
|
|
63
|
+
}
|
|
64
|
+
async getReferrals(params) {
|
|
65
|
+
const excludeUserIds = await this._excludeUserIds();
|
|
66
|
+
const rows = await this.referralAdminRepository.findReferrals({
|
|
67
|
+
from: this._from(params.period),
|
|
68
|
+
excludeUserIds,
|
|
69
|
+
});
|
|
70
|
+
return this.jsonApiService.buildList(referral_admin_referral_1.ReferralAdminReferralDescriptor.model, rows);
|
|
71
|
+
}
|
|
72
|
+
/** The period's start as an ISO datetime, or null for "all". */
|
|
73
|
+
_from(period) {
|
|
74
|
+
const days = referral_admin_repository_1.REFERRAL_ADMIN_PERIODS[period];
|
|
75
|
+
return days === null ? null : this._daysBefore(new Date(), days);
|
|
76
|
+
}
|
|
77
|
+
_daysBefore(now, days) {
|
|
78
|
+
return new Date(now.getTime() - days * ONE_DAY_MS).toISOString();
|
|
79
|
+
}
|
|
80
|
+
async _excludeUserIds() {
|
|
81
|
+
const admins = await this.userRepository.findPlatformAdministrators();
|
|
82
|
+
return admins.map((admin) => admin.id);
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
exports.ReferralAdminService = ReferralAdminService;
|
|
86
|
+
exports.ReferralAdminService = ReferralAdminService = __decorate([
|
|
87
|
+
(0, common_1.Injectable)(),
|
|
88
|
+
__metadata("design:paramtypes", [jsonapi_service_1.JsonApiService,
|
|
89
|
+
referral_repository_1.ReferralRepository,
|
|
90
|
+
nestjs_cls_1.ClsService,
|
|
91
|
+
referral_admin_repository_1.ReferralAdminRepository,
|
|
92
|
+
user_repository_1.UserRepository])
|
|
93
|
+
], ReferralAdminService);
|
|
94
|
+
//# sourceMappingURL=referral.admin.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"referral.admin.service.js","sourceRoot":"","sources":["../../../../src/foundations/referral/services/referral.admin.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -73,12 +73,20 @@ export declare class ReferralService implements ReferralCompletionHandler {
|
|
|
73
73
|
referrerCompanyId: string;
|
|
74
74
|
referredCompanyId: string;
|
|
75
75
|
}): Promise<void>;
|
|
76
|
+
/**
|
|
77
|
+
* Record one visit to a referral link. Never throws for a bad code: an empty or
|
|
78
|
+
* unknown code, or a disabled feature, writes nothing. Never feeds a reward.
|
|
79
|
+
* @param params.referralCode - The referral code from the visited link
|
|
80
|
+
*/
|
|
81
|
+
recordVisit(params: {
|
|
82
|
+
referralCode: string;
|
|
83
|
+
}): Promise<void>;
|
|
76
84
|
/**
|
|
77
85
|
* Queue a referral invite email to be sent.
|
|
78
86
|
* Enforces a configurable cooldown per company+email to prevent spam.
|
|
79
87
|
* @param params.email - The email address to send the invite to
|
|
80
|
-
* @throws BadRequestException if the email was already invited within the cooldown period
|
|
81
|
-
* @throws BadRequestException if the email is already registered in the system
|
|
88
|
+
* @throws BadRequestException (code REFERRAL_ALREADY_INVITED) if the email was already invited within the cooldown period
|
|
89
|
+
* @throws BadRequestException (code REFERRAL_ALREADY_REGISTERED) if the email is already registered in the system
|
|
82
90
|
*/
|
|
83
91
|
sendReferralInvite(params: {
|
|
84
92
|
email: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"referral.service.d.ts","sourceRoot":"","sources":["../../../../src/foundations/referral/services/referral.service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGxC,OAAO,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,+CAA+C,CAAC;AAExF,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"referral.service.d.ts","sourceRoot":"","sources":["../../../../src/foundations/referral/services/referral.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,7 @@ const company_repository_1 = require("../../company/repositories/company.reposit
|
|
|
28
28
|
const user_repository_1 = require("../../user/repositories/user.repository");
|
|
29
29
|
const referral_repository_1 = require("../repositories/referral.repository");
|
|
30
30
|
const referral_code_1 = require("../entities/referral-code");
|
|
31
|
+
const referral_source_1 = require("../entities/referral-source");
|
|
31
32
|
const referral_stats_1 = require("../entities/referral-stats");
|
|
32
33
|
const referral_config_interface_1 = require("../interfaces/referral.config.interface");
|
|
33
34
|
let ReferralService = ReferralService_1 = class ReferralService {
|
|
@@ -115,6 +116,7 @@ let ReferralService = ReferralService_1 = class ReferralService {
|
|
|
115
116
|
id: referralId,
|
|
116
117
|
referrerCompanyId: referrerCompany.id,
|
|
117
118
|
referredCompanyId,
|
|
119
|
+
source: referral_source_1.REFERRAL_SOURCE.link,
|
|
118
120
|
});
|
|
119
121
|
if (created) {
|
|
120
122
|
this.logger.log(`Created pending referral ${referralId}: ${referrerCompany.id} referred ${referredCompanyId}`);
|
|
@@ -140,14 +142,35 @@ let ReferralService = ReferralService_1 = class ReferralService {
|
|
|
140
142
|
id: (0, crypto_1.randomUUID)(),
|
|
141
143
|
referrerCompanyId: params.referrerCompanyId,
|
|
142
144
|
referredCompanyId: params.referredCompanyId,
|
|
145
|
+
source: referral_source_1.REFERRAL_SOURCE.direct,
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Record one visit to a referral link. Never throws for a bad code: an empty or
|
|
150
|
+
* unknown code, or a disabled feature, writes nothing. Never feeds a reward.
|
|
151
|
+
* @param params.referralCode - The referral code from the visited link
|
|
152
|
+
*/
|
|
153
|
+
async recordVisit(params) {
|
|
154
|
+
if (!this.isEnabled)
|
|
155
|
+
return;
|
|
156
|
+
if (!params.referralCode)
|
|
157
|
+
return;
|
|
158
|
+
const referrerCompany = await this.companyRepository.findByReferralCode({
|
|
159
|
+
referralCode: params.referralCode,
|
|
160
|
+
});
|
|
161
|
+
if (!referrerCompany)
|
|
162
|
+
return;
|
|
163
|
+
await this.referralRepository.createVisit({
|
|
164
|
+
id: (0, crypto_1.randomUUID)(),
|
|
165
|
+
referrerCompanyId: referrerCompany.id,
|
|
143
166
|
});
|
|
144
167
|
}
|
|
145
168
|
/**
|
|
146
169
|
* Queue a referral invite email to be sent.
|
|
147
170
|
* Enforces a configurable cooldown per company+email to prevent spam.
|
|
148
171
|
* @param params.email - The email address to send the invite to
|
|
149
|
-
* @throws BadRequestException if the email was already invited within the cooldown period
|
|
150
|
-
* @throws BadRequestException if the email is already registered in the system
|
|
172
|
+
* @throws BadRequestException (code REFERRAL_ALREADY_INVITED) if the email was already invited within the cooldown period
|
|
173
|
+
* @throws BadRequestException (code REFERRAL_ALREADY_REGISTERED) if the email is already registered in the system
|
|
151
174
|
*/
|
|
152
175
|
async sendReferralInvite(params) {
|
|
153
176
|
const companyId = this.clsService.get("companyId");
|
|
@@ -157,12 +180,18 @@ let ReferralService = ReferralService_1 = class ReferralService {
|
|
|
157
180
|
const redis = this.cacheService.getRedisClient();
|
|
158
181
|
const existingInvite = await redis.get(inviteKey);
|
|
159
182
|
if (existingInvite) {
|
|
160
|
-
throw new common_1.BadRequestException(
|
|
183
|
+
throw new common_1.BadRequestException({
|
|
184
|
+
code: "REFERRAL_ALREADY_INVITED",
|
|
185
|
+
message: "You already sent an invitation to this email recently",
|
|
186
|
+
});
|
|
161
187
|
}
|
|
162
188
|
// Check if the email is already registered in the system
|
|
163
189
|
const existingUser = await this.userRepository.findByEmail({ email: params.email });
|
|
164
190
|
if (existingUser) {
|
|
165
|
-
throw new common_1.BadRequestException(
|
|
191
|
+
throw new common_1.BadRequestException({
|
|
192
|
+
code: "REFERRAL_ALREADY_REGISTERED",
|
|
193
|
+
message: "This email is already registered in the system",
|
|
194
|
+
});
|
|
166
195
|
}
|
|
167
196
|
const company = await this.companyRepository.findByCompanyId({ companyId });
|
|
168
197
|
const user = await this.userRepository.findByUserId({ userId, companyId });
|
|
@@ -170,6 +199,7 @@ let ReferralService = ReferralService_1 = class ReferralService {
|
|
|
170
199
|
const referralCode = company.referralCode || (await this.getOrCreateReferralCode());
|
|
171
200
|
// Mark this email as invited (with configured TTL)
|
|
172
201
|
await redis.setex(inviteKey, this.config.inviteCooldownSeconds, "1");
|
|
202
|
+
await this.referralRepository.createInvite({ id: (0, crypto_1.randomUUID)(), companyId, userId });
|
|
173
203
|
await this.emailQueue.add("referral-invite", {
|
|
174
204
|
jobType: "referral-invite",
|
|
175
205
|
payload: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"referral.service.js","sourceRoot":"","sources":["../../../../src/foundations/referral/services/referral.service.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"referral.service.js","sourceRoot":"","sources":["../../../../src/foundations/referral/services/referral.service.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED