Универсальный сервис, понимая, нахожусь ли я в контексте GRAPHQL или HTTP-контексте? - PullRequest
0 голосов
/ 29 апреля 2019

Есть ли что-то, что я могу внедрить, чтобы понять, в каком контексте я нахожусь, то есть моя служба была вызвана из запроса graphql или запроса http.

У меня есть служба области запроса, и мне нужно вернуть заголовок. Заголовок хранится в объекте REQUEST, который может быть автоматически введен, если он является контекстом HTTP или иным образом доступен (как я настраивал ранее) в контексте graphql, поэтому

return this.request.headers["test"]

OR

return this.context.request.headers["test"]

Но мне нужно понять, в каком контексте я нахожусь, чтобы вернуть правильный объект

Есть идеи?

Заранее спасибо

1 Ответ

1 голос
/ 29 апреля 2019

Вы можете просто создать вспомогательную функцию для получения заголовка:

getHeader(key: string) {
  if (this.request && this.request.headers && this.request.headers[key]) {
    return this.request.headers[key];
  } else if (this.context.request && this.context.request.headers && this.context.request.headers[key]) {
    return this.context.request.headers[key];
  } else {
    throw new BadRequestException(`Required header ${key} is missing`);
  }
}
...