Даний веб-сервіс дозволяє WS знайти джобу по реєстру девайсів використовуючи адмін панель за допомогою пошукових параметрів.
Ключові положення
Це квері метод graphQl використовуюється тільки в адміністративній панелі.
Тільки автентифіковані та авторизовані співробітників NHS з відповідними скоупами можуть здійсними пошук джоб по реєстру девасів.
Квері повертає перелік джобів реєстру девайсів профільтровані по пошуковим параметрам.
Специфікація
"Reads and enables pagination through a set of `DeviceRegistryJob`."
deviceRegistryJobs(
"A condition to be used in determining which values should be returned by the collection."
filter: DeviceRegistryJobFilter
"The method to use when ordering collection items."
orderBy: DeviceRegistryJobOrderBy
"Read all values in the set after (below) this cursor."
after: String
"Read all values in the set before (above) this cursor."
before: String
"Only read the first _n_ values of the set."
first: Int
"Only read the last _n_ values of the set."
last: Int
): DeviceRegistryJobConnection!
"""
Filter for Device registry job.
"""
input DeviceRegistryJobFilter {
"Device registry job status filters."
status: JobStatus
}
"""
List of fields to sort both asc and desc side `DeviceRegistryJob`.
"""
enum DeviceRegistryJobOrderBy {
"Sort Device registry job by started at in ascending order"
STARTED_AT_ASC
"Sort Device registry job by started at in descending order"
STARTED_AT_DESC
}
"""
A connection to a list of `DeviceRegistryJob` values.
"""
type DeviceRegistryJobConnection {
"Information to aid in pagination."
pageInfo: PageInfo!
"A list of nodes."
nodes: [DeviceRegistryJob]
"A list of edges."
edges: [DeviceRegistryJobEdge]
}
"""
Reads and enables pagination through a set of `DeviceRegistryJob`.
"""
type DeviceRegistryJobEdge {
"The item at the end of the edge."
node: DeviceRegistryJob!
"A cursor for use in pagination."
cursor: String!
}
"""
An object for DeviceRegistryJob.
"""
type DeviceRegistryJob implements Node {
"The ID of an object"
id: ID!
"Primary key identifier from the database"
databaseId: UUID!
"Job name."
name: String
"Device registry Job status."
status: JobStatus!
"Job execution strategy."
strategy: JobStrategy!
"Date and time when the job starts."
startedAt: DateTime!
"Date and time when the job ends."
endedAt: DateTime
"Tasks within this job."
tasks(
"A condition to be used in determining which values should be returned by the collection."
filter: TaskFilter
"The method to use when ordering collection items."
orderBy: TaskOrderBy
"Read all values in the set after (below) this cursor."
after: String
"Read all values in the set before (above) this cursor."
before: String
"Only read the first _n_ values of the set."
first: Int
"Only read the last _n_ values of the set."
last: Int
): TaskConnection!
"Type of register originating device registry data. The value should be present in the `REGISTER_TYPE` dictionary."
registerType: String!
"Device registry job reason description."
reasonDescription: String!
}
Авторизація
Перевірити валідність токену доступу
в разі помилки - повернути 401 (“Invalid access token”) в разі неуспішних валідацій
Перевірити, що токен дійсний
в разі помилки - повернути 401 (“Invalid access token”)
Перевірити скоупи користувачів на можливість виконання даної дії (скоуп = 'device_registry_job:read')
повернути 403 (“Your scope does not allow to access this resource. Missing allowances: device_registry_job:read”) в разі невалідних скоупів
Перевірити юридичну особу
Отримати client_id з токену.
Перевірити статус юридичної особи (status = ACTIVE)
в разі помилки - повернути 409 ('client_id refers to legal entity that is not active')
Перевірти тип клієнта (type = NHS)
в разі помилки - повернути 403 ('You don't have permission to access this resource')
Сервісна логіка
Отримати перелік всіх джоб по реєстру медвиробів з таблиці джоб JABBA DB, профільтровані по:
типи джобів реєстру медвиробів (jabba.jobs.type):
upload_device_definitions_registry
вказані додаткові пошукові параметри
статус. Знайти по jobs.status
Застосувати додаткове сортування
за-замовчуванням відсортувати записи по полю inserted_at в спадаючому порядку
Відобразии відповідь у відповідності до специфікації