В рамках #194 был сделан метод обработки таблиц. Теперь обработанные данные нужно перенести на таблицы первого уровня. Первым приоритетом нужно переносить каталог координат и каталог имён.
Это включает в себя метод (обсуждавшийся в дискуссии https://github.com/orgs/HyperLEDA/discussions/171) POST /api/v1/admin/table/status:
{
"table_id": 12345,
"overrides": [
{ // этому объекту будет явным образом присвоен pgc-номер 123456, вне зависимости от того, существует объект с pgc-номером 123456 уже или нет.
"id": "2d6afe64-d9a2-441c-8896-6eac9279da2a", // hyperleda_internal_id, будет отдаваться в GET /api/v1/table/status
"pgc": 123456
},
{ // этому объекту будет присвоен следующий свободный pgc-номер.
"id": "433894c5-e1f1-4b72-a51e-c7eb00bfe7a5"
}
]
}
Этот метод будет делать примерно следующее:
- Батчами по batch_size объектов для всех объектов из
rawdata.objects:
- Применяет присланные оверрайды - если в оверрайде не указан pgc, то присваивает объекту явным образом статус
new. Если прислан, то присваивает явным образом статус existing и указанный pgc.
- Для всех объектов со статусом
new присвоить новые pgc-номера, вставить их в реестр объектов (таблица common.pgc) и переносить на первый уровень (что это значит - дальше).
- Для всех объектов со статусом
existing - создаёт вне несуществующие pgc (такое может случиться только если pgc был указан в качестве оверрайда), переносит все объекты на первый уровень.
Объекты в статусе collided будут игнорироваться (кроме тех, что указаны в секции overrides).
В рамках #194 был сделан метод обработки таблиц. Теперь обработанные данные нужно перенести на таблицы первого уровня. Первым приоритетом нужно переносить каталог координат и каталог имён.
Это включает в себя метод (обсуждавшийся в дискуссии https://github.com/orgs/HyperLEDA/discussions/171)
POST /api/v1/admin/table/status:{ "table_id": 12345, "overrides": [ { // этому объекту будет явным образом присвоен pgc-номер 123456, вне зависимости от того, существует объект с pgc-номером 123456 уже или нет. "id": "2d6afe64-d9a2-441c-8896-6eac9279da2a", // hyperleda_internal_id, будет отдаваться в GET /api/v1/table/status "pgc": 123456 }, { // этому объекту будет присвоен следующий свободный pgc-номер. "id": "433894c5-e1f1-4b72-a51e-c7eb00bfe7a5" } ] }Этот метод будет делать примерно следующее:
rawdata.objects:new. Если прислан, то присваивает явным образом статусexistingи указанный pgc.newприсвоить новые pgc-номера, вставить их в реестр объектов (таблицаcommon.pgc) и переносить на первый уровень (что это значит - дальше).existing- создаёт вне несуществующие pgc (такое может случиться только если pgc был указан в качестве оверрайда), переносит все объекты на первый уровень.Объекты в статусе
collidedбудут игнорироваться (кроме тех, что указаны в секции overrides).