@pristine-ts/validation 2.0.4 → 2.0.6

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.
@@ -19,9 +19,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
19
19
  step((generator = generator.apply(thisArg, _arguments || [])).next());
20
20
  });
21
21
  };
22
- import { BadRequestHttpError, MethodRouterNode, RequestInterceptorPriorityEnum } from "@pristine-ts/networking";
22
+ import { MethodRouterNode, RequestInterceptorPriorityEnum } from "@pristine-ts/networking";
23
23
  import { Validator } from "@pristine-ts/class-validator";
24
- import { moduleScoped, Request, ServiceDefinitionTagEnum, tag, traced } from "@pristine-ts/common";
24
+ import { moduleScoped, Request, ServiceDefinitionTagEnum, tag, traced, ValidationError } from "@pristine-ts/common";
25
25
  import { ValidationModuleKeyname } from "../validation.module.keyname";
26
26
  import { inject, injectable } from "tsyringe";
27
27
  import { bodyValidationMetadataKeyname } from "../decorators/body-validation.decorator";
@@ -40,8 +40,9 @@ let BodyValidationRequestInterceptor = class BodyValidationRequestInterceptor {
40
40
  * @param validator The validator that validates objects.
41
41
  * @param dataMapper
42
42
  */
43
- constructor(loghandler, validator, dataMapper) {
43
+ constructor(loghandler, tracingManager, validator, dataMapper) {
44
44
  this.loghandler = loghandler;
45
+ this.tracingManager = tracingManager;
45
46
  this.validator = validator;
46
47
  this.dataMapper = dataMapper;
47
48
  this.priority = RequestInterceptorPriorityEnum.BodyMapping - 100;
@@ -68,8 +69,15 @@ let BodyValidationRequestInterceptor = class BodyValidationRequestInterceptor {
68
69
  // Validates if all the conditions are respected in the expected type.
69
70
  const errors = yield this.validator.validate(mappedBody);
70
71
  if (errors.length == 0) {
72
+ this.tracingManager.addMarkerToCurrentSpan("validation.passed", {
73
+ classType: bodyValidator.classType.name,
74
+ });
71
75
  return request;
72
76
  }
77
+ this.tracingManager.addMarkerToCurrentSpan("validation.failed", {
78
+ classType: bodyValidator.classType.name,
79
+ errorCount: String(errors.length),
80
+ });
73
81
  this.loghandler.error(`Error validating body of request.`, {
74
82
  eventGroupId: request.groupId,
75
83
  highlights: {
@@ -82,8 +90,10 @@ let BodyValidationRequestInterceptor = class BodyValidationRequestInterceptor {
82
90
  routeContext: methodNode.route.context,
83
91
  },
84
92
  });
85
- // If we received some error while validating we reject by throwing an error.
86
- throw new BadRequestHttpError("Validation error", errors);
93
+ // If we received some error while validating we reject by throwing an error. The
94
+ // `details.errors` array carries the structured class-validator output; the responders
95
+ // surface it to API callers (HTTP body) and CLI users (stderr lines).
96
+ throw new ValidationError("Validation error", { details: { errors } });
87
97
  });
88
98
  }
89
99
  };
@@ -98,7 +108,8 @@ BodyValidationRequestInterceptor = __decorate([
98
108
  tag(ServiceDefinitionTagEnum.RequestInterceptor),
99
109
  injectable(),
100
110
  __param(0, inject("LogHandlerInterface")),
101
- __metadata("design:paramtypes", [Object, Validator,
111
+ __param(1, inject("TracingManagerInterface")),
112
+ __metadata("design:paramtypes", [Object, Object, Validator,
102
113
  DataMapper])
103
114
  ], BodyValidationRequestInterceptor);
104
115
  export { BodyValidationRequestInterceptor };
@@ -1 +1 @@
1
- {"version":3,"file":"body-validation.request-interceptor.js","sourceRoot":"","sources":["../../../../src/interceptors/body-validation.request-interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAEhB,8BAA8B,EAC/B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAC,SAAS,EAAC,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAAC,YAAY,EAAE,OAAO,EAAE,wBAAwB,EAAE,GAAG,EAAE,MAAM,EAAC,MAAM,qBAAqB,CAAC;AACjG,OAAO,EAAC,uBAAuB,EAAC,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAC,MAAM,EAAE,UAAU,EAAC,MAAM,UAAU,CAAC;AAE5C,OAAO,EAAC,6BAA6B,EAAC,MAAM,yCAAyC,CAAC;AACtF,OAAO,EAAC,UAAU,EAAC,MAAM,kCAAkC,CAAC;AAE5D;;;;GAIG;AAII,IAAM,gCAAgC,GAAtC,MAAM,gCAAgC;IAI3C;;;;;;;OAOG;IACH,YAA2C,UAAgD,EAC9D,SAAoB,EACpB,UAAsB;QAFS,eAAU,GAAV,UAAU,CAAqB;QAC9D,cAAS,GAAT,SAAS,CAAW;QACpB,eAAU,GAAV,UAAU,CAAY;QAZnD,aAAQ,GAAG,8BAA8B,CAAC,WAAW,GAAG,GAAG,CAAC;IAc5D,CAAC;IAED;;;;;OAKG;IAEG,gBAAgB,CAAC,OAAgB,EAAE,UAA4B;;YACnE,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;YAE9E,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBACzE,OAAO,OAAO,CAAC;YACjB,CAAC;YAED,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,kCAAkC,EAAE;gBACxD,OAAO;gBACP,UAAU;gBACV,YAAY,EAAE,UAAU,CAAC,KAAK,CAAC,OAAO;aACvC,CAAC,CAAA;YAEF,6DAA6D;YAC7D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;YAExF,sEAAsE;YACtE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAEzD,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACvB,OAAO,OAAO,CAAC;YACjB,CAAC;YAGD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,mCAAmC,EAAE;gBACzD,YAAY,EAAE,OAAO,CAAC,OAAO;gBAC7B,UAAU,EAAE;oBACV,MAAM;oBACN,UAAU;iBACX;gBACD,KAAK,EAAE;oBACL,OAAO;oBACP,UAAU;oBACV,YAAY,EAAE,UAAU,CAAC,KAAK,CAAC,OAAO;iBACvC;aACF,CAAC,CAAA;YAEF,6EAA6E;YAC7E,MAAM,IAAI,mBAAmB,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;QAC5D,CAAC;KAAA;CACF,CAAA;AAxCO;IADL,MAAM,EAAE;;qCACuB,OAAO,EAAc,gBAAgB;;wEAuCpE;AAhEU,gCAAgC;IAH5C,YAAY,CAAC,uBAAuB,CAAC;IACrC,GAAG,CAAC,wBAAwB,CAAC,kBAAkB,CAAC;IAChD,UAAU,EAAE;IAaE,WAAA,MAAM,CAAC,qBAAqB,CAAC,CAAA;6CACF,SAAS;QACR,UAAU;GAdxC,gCAAgC,CAiE5C"}
1
+ {"version":3,"file":"body-validation.request-interceptor.js","sourceRoot":"","sources":["../../../../src/interceptors/body-validation.request-interceptor.ts"],"names":[],"mappings":"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"}