Возврат значения перечисления

Рейтинг: 0Ответов: 1Опубликовано: 17.02.2023

Допустим у меня в схеме есть такое перечисление:

enum Role {
  USER  @map("Пользователь")
  JUDGE @map("Судья")
  ADMIN @map("Администратор")
  @@map("roles")
}

Я сделал запрос к базе и получил следующий результат

{
  type: "USER"
}

И вот вопрос: можно ли как-то получить значение которое я указал на русском языке (оно в базе именно в таком виде хранится). Понятно, что можно самостоятельно перебирать ответ и выводить нужное, но может есть более правильный вариант?

Ответы

▲ 1

Да можно Вот есть запрос, чуть его дополним

enum Role {
  USER  @map("Пользователь")
  JUDGE @map("Судья")
  ADMIN @map("Администратор")
  @@map("roles")
}

type User {
  id: ID!
  role: Role!
}

query {
  users {
    id
    role
    roleName: _get(Role, role, 'map')
  }
}

Вот или так можно Вот твой код

enum Role {
  USER  @map("Пользователь") @value("USER")
  JUDGE @map("Судья") @value("JUDGE")
  ADMIN @map("Администратор") @value("ADMIN")
  @@map("roles")
}

Добавим еще чутка)

{
  role {
    type
    ...on Role {
      name: type @values
    }
  }
}

Вот и получаем!)(получаем json)

{
  "data": {
    "role": {
      "type": "USER",
      "name": "Пользователь"
    }
  }
}