@pvh-afl/graphql 1.1.44 → 1.1.45
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loyalty.service.d.ts","sourceRoot":"","sources":["../../src/loyalty/loyalty.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAU,MAAM,eAAe,CAAC;AACpF,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,0BAA0B,EAC1B,2BAA2B,EAC5B,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"loyalty.service.d.ts","sourceRoot":"","sources":["../../src/loyalty/loyalty.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAU,MAAM,eAAe,CAAC;AACpF,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,0BAA0B,EAC1B,2BAA2B,EAC5B,MAAM,iBAAiB,CAAC;AAUzB;;;;GAIG;AACH,qBACa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;gBADnB,aAAa,EAAE,sBAAsB,EACrC,mBAAmB,EAAE,mBAAmB;IAGrD,kBAAkB,CACtB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,qBAAqB,CAAC;IAa3B,wBAAwB,CAC5B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,0BAA0B,GAChC,OAAO,CAAC,2BAA2B,CAAC;CAsDxC"}
|
|
@@ -4,6 +4,13 @@ exports.LoyaltyService = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const common_1 = require("@nestjs/common");
|
|
6
6
|
const core_1 = require("@pvh-afl/core");
|
|
7
|
+
/**
|
|
8
|
+
* Tags a caller is allowed to query via `getShopifyDiscountsByTag`.
|
|
9
|
+
*
|
|
10
|
+
* Public endpoint: only these tags may be queried. Others are rejected before
|
|
11
|
+
* the Shopify Admin API is called. Extend as new pools are approved.
|
|
12
|
+
*/
|
|
13
|
+
const ALLOWED_DISCOUNT_TAGS = ['PROMOTIONAL'];
|
|
7
14
|
/**
|
|
8
15
|
* Loyalty Service
|
|
9
16
|
*
|
|
@@ -24,6 +31,20 @@ let LoyaltyService = class LoyaltyService {
|
|
|
24
31
|
return this.couponService.getCustomerCoupons(brand, input.mobile, input.state);
|
|
25
32
|
}
|
|
26
33
|
async getShopifyDiscountsByTag(brand, input) {
|
|
34
|
+
// Reject tags outside the allowlist before hitting the Shopify Admin API.
|
|
35
|
+
if (!ALLOWED_DISCOUNT_TAGS.includes(input.tag)) {
|
|
36
|
+
core_1.logger.warn('getShopifyDiscountsByTag: tag not in allowlist — rejected', {
|
|
37
|
+
brand,
|
|
38
|
+
tag: input.tag,
|
|
39
|
+
});
|
|
40
|
+
// Do NOT reveal the allowlist in the message — that would let a caller
|
|
41
|
+
// enumerate the valid promotional pools. State only that this tag is not
|
|
42
|
+
// allowed; the code + rejected tag are enough for the caller to act on.
|
|
43
|
+
throw new common_1.BadRequestException({
|
|
44
|
+
code: 'INVALID_DISCOUNT_TAG',
|
|
45
|
+
message: `Tag "${input.tag}" is not allowed.`,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
27
48
|
core_1.logger.info('Fetching Shopify discounts by tag', {
|
|
28
49
|
brand,
|
|
29
50
|
tag: input.tag,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loyalty.service.js","sourceRoot":"","sources":["../../src/loyalty/loyalty.service.ts"],"names":[],"mappings":";;;;AAAA,
|
|
1
|
+
{"version":3,"file":"loyalty.service.js","sourceRoot":"","sources":["../../src/loyalty/loyalty.service.ts"],"names":[],"mappings":";;;;AAAA,2CAAiE;AACjE,wCAAoF;AAQpF;;;;;GAKG;AACH,MAAM,qBAAqB,GAAG,CAAC,aAAa,CAAC,CAAC;AAE9C;;;;GAIG;AAEI,IAAM,cAAc,GAApB,MAAM,cAAc;IAEN;IACA;IAFnB,YACmB,aAAqC,EACrC,mBAAwC;QADxC,kBAAa,GAAb,aAAa,CAAwB;QACrC,wBAAmB,GAAnB,mBAAmB,CAAqB;IACxD,CAAC;IAEJ,KAAK,CAAC,kBAAkB,CACtB,KAAa,EACb,KAA2B;QAE3B,aAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;YACvC,KAAK;YACL,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAC1C,KAAK,EACL,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,KAAK,CACZ,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,wBAAwB,CAC5B,KAAa,EACb,KAAiC;QAEjC,0EAA0E;QAC1E,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,aAAM,CAAC,IAAI,CAAC,2DAA2D,EAAE;gBACvE,KAAK;gBACL,GAAG,EAAE,KAAK,CAAC,GAAG;aACf,CAAC,CAAC;YACH,uEAAuE;YACvE,yEAAyE;YACzE,wEAAwE;YACxE,MAAM,IAAI,4BAAmB,CAAC;gBAC5B,IAAI,EAAE,sBAAsB;gBAC5B,OAAO,EAAE,QAAQ,KAAK,CAAC,GAAG,mBAAmB;aAC9C,CAAC,CAAC;QACL,CAAC;QAED,aAAM,CAAC,IAAI,CAAC,mCAAmC,EAAE;YAC/C,KAAK;YACL,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAChE,KAAK,EACL,KAAK,CAAC,GAAG,EACT,KAAK,CAAC,KAAK,CACZ,CAAC;QAEF,MAAM,OAAO,GACX,SAAS,CAAC,MAAM,GAAG,CAAC;YAClB,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,0BAA0B,KAAK,CAAC,GAAG,GAAG;YACjE,CAAC,CAAC,gCAAgC,KAAK,CAAC,GAAG,GAAG,CAAC;QAEnD,OAAO;YACL,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC/B,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,YAAY,EAAE,CAAC,CAAC,YAAY;gBAC5B,aAAa,EAAE,CAAC,CAAC,aAAa;gBAC9B,YAAY,EAAE,CAAC,CAAC,YAAY;gBAC5B,aAAa,EAAE,CAAC,CAAC,aAAa;gBAC9B,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,sBAAsB,EAAE,CAAC,CAAC,sBAAsB;gBAChD,YAAY,EAAE,CAAC,CAAC,YAAY;gBAC5B,IAAI,EAAE,CAAC,CAAC,IAAI;aACb,CAAC,CAAC;YACH,OAAO;SACR,CAAC;IACJ,CAAC;CACF,CAAA;AA/EY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;6CAGuB,6BAAsB;QAChB,0BAAmB;GAHhD,cAAc,CA+E1B"}
|