Коа и валидации: как передать токен аутентификации валидатору для вызова API? - PullRequest
0 голосов
/ 01 февраля 2020

У меня есть класс, назовем его first.ts, в котором есть функция с именем post, которая принимает контекстный объект koa, содержащий соответствующие детали от клиента для вызова API (например, body, auth token, et c.). Функция преобразует тело запроса в класс ValidatedObject, проверяет объект и затем отправляет его в конечную точку.

first.ts:

import { plainToClass } from 'class-transformer';
import { Context } from 'koa';

public static async post(ctx: Context) {
    const validatedObject: ValidatedObject = plainToClass(ValidatedObject, ctx.request.body);
    // validates the object, and, if no errors, sends it to some api
}

И ValidatedObject.ts выглядит примерно так :

import { ValidateNested } from 'class-validator';
import { Type } from 'class-transformer';

export default class ValidatedObject {

  @ValidateNested()
  @Type(() => NestedObject)
  apiValidatedObject: NestedObject;

  // some other relevant fields
}

В NestedObject.ts в конечную точку делается вызов API для проверки правильности apiValidatedObject (логика c которого не должна относиться к этому вопросу). Чтобы выполнить этот вызов API, необходимо получить доступ к токену аутентификации, хранящемуся в объекте контекста в first.ts. Как передать объект контекста из first.ts вниз по слоям в NestedObject.ts, чтобы можно было сделать вызов проверки API?

...