Difference between revisions of "API:priv:get-user"

From EjudgeWiki
(Created page with "Навигация: Главная страница/Система ejudge/Использование/API/API:priv:get-user|get-user (привиле...")
 
(...)
 
Line 1: Line 1:
 
Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[API]]/[[API:priv:get-user|get-user (привилегированный)]]
 
Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[API]]/[[API:priv:get-user|get-user (привилегированный)]]
 +
 +
Запрос возвращает информацию о пользователе.
 +
 +
Уровень доступа: администратор в контесте (аутентификация с
 +
помощью API key или EJSID/session_id).
 +
 +
Method: <code>GET</code>
 +
 +
Параметры:
 +
* <code>contest_id</code> (int) - идентификатор турнира
 +
* <code>other_user_id</code> (int) - идентификатор турнира
 +
* <code>other_user_login</code> (string) - идентификатор турнира
 +
* <code>action</code> (string) - строка get-user
 +
 +
Response content type: <tt>application/json</tt>
 +
 +
В случае ошибки возвращается JSON и устанавливается статус http-запроса.
 +
 +
{
 +
  "ok": false,
 +
  "server_time": UNIX-TIMESTAMP,
 +
  "action": "get-submit",
 +
  "error": {
 +
    "num": ERROR-CODE,
 +
    "symbol": ERROR-SYMBOL
 +
  }
 +
}
 +
 +
В случае успеха возвращается JSON:
 +
 +
{
 +
  "ok": true,
 +
  "result": {
 +
    "submit_id": ID,
 +
    "user_id": USER-ID,
 +
    "prob_id": PROB-ID,
 +
    "lang_id": LANG-ID,
 +
    "ext_user_kind": EXT-USER-KIND,
 +
    "ext_user": EXT-USER,
 +
    "notify_driver": NOTIFY-DRIVER,
 +
    "notify_kind" : NOTIFY-KIND,
 +
    "notify_queue" : NOTIFY-QUEUE,
 +
    "status": STATUS,
 +
    "status_str": STATUS-SHORT-STR,
 +
    "compiler_output": COMPILER-MESSAGES,
 +
    "test_checker_output": TEST-CHECKER-MESSAGES,
 +
    "time": CPU-TIME,
 +
    "real_time": REAL-TIME,
 +
    "exit_code": PROCESS-EXIT-CODE,
 +
    "term_signal": TERMINATION-SIGNAL,
 +
    "max_memory_used": VIRT-MEM-USE,
 +
    "max_rss": MEMORY-USE,
 +
    "input": INPUT,
 +
    "output": OUTPUT-TEXT,
 +
    "error": ERROR-TEXT
 +
  }
 +
}
 +
 +
Поля <code>ext_user_kind</code>, <code>ext_user</code> содержат [[Внешние идентификаторы пользователей|внешний идентификатор пользователя]] ([[Изменения в версии 3.11.0|3.11.0]]), если он был установлен при отправке посылки.
 +
 +
Поля <code>notify_driver</code>, <code>notify_kind</code>, <code>notify_queue</code> содержат [[Нотификации во внешние системы|идентификатор очереди сообщений]] ([[Изменения в версии 3.11.0|3.11.0]]), если он был установлен при отправке посылки.
 +
 +
Пример кода на python:
 +
 +
import requests
 +
import os
 +
import urllib.parse
 +
 +
URL = 'http://HOST/cgi-bin/master'
 +
TOKEN = 'TOKEN'
 +
CONTEST_ID = 1
 +
SUBMIT_ID = 50
 +
 +
headers = {
 +
        "Authorization": "Bearer AQAA" + TOKEN
 +
}
 +
 +
data = {
 +
        "contest_id" : CONTEST_ID,
 +
        "json" : 1,
 +
        "action" : "get-submit",
 +
        "submit_id" : SUBMIT_ID,
 +
}
 +
response = requests.get(URL+"?"+urllib.parse.urlencode(data), headers=headers)
 +
print(response.json())
 +
 +
 +
 +
 +
Поддерживается начиная с версии [[изменения в версии 3.13.0|3.13.0]].

Latest revision as of 05:52, 29 October 2024

Навигация: Главная страница/Система ejudge/Использование/API/get-user (привилегированный)

Запрос возвращает информацию о пользователе.

Уровень доступа: администратор в контесте (аутентификация с помощью API key или EJSID/session_id).

Method: GET

Параметры:

  • contest_id (int) - идентификатор турнира
  • other_user_id (int) - идентификатор турнира
  • other_user_login (string) - идентификатор турнира
  • action (string) - строка get-user

Response content type: application/json

В случае ошибки возвращается JSON и устанавливается статус http-запроса.

{
  "ok": false,
  "server_time": UNIX-TIMESTAMP,
  "action": "get-submit",
  "error": {
    "num": ERROR-CODE,
    "symbol": ERROR-SYMBOL
  }
}

В случае успеха возвращается JSON:

{
  "ok": true,
  "result": {
    "submit_id": ID,
    "user_id": USER-ID,
    "prob_id": PROB-ID,
    "lang_id": LANG-ID,
    "ext_user_kind": EXT-USER-KIND,
    "ext_user": EXT-USER,
    "notify_driver": NOTIFY-DRIVER,
    "notify_kind" : NOTIFY-KIND,
    "notify_queue" : NOTIFY-QUEUE,
    "status": STATUS,
    "status_str": STATUS-SHORT-STR,
    "compiler_output": COMPILER-MESSAGES,
    "test_checker_output": TEST-CHECKER-MESSAGES,
    "time": CPU-TIME,
    "real_time": REAL-TIME,
    "exit_code": PROCESS-EXIT-CODE,
    "term_signal": TERMINATION-SIGNAL,
    "max_memory_used": VIRT-MEM-USE,
    "max_rss": MEMORY-USE,
    "input": INPUT,
    "output": OUTPUT-TEXT,
    "error": ERROR-TEXT
  }
}

Поля ext_user_kind, ext_user содержат внешний идентификатор пользователя (3.11.0), если он был установлен при отправке посылки.

Поля notify_driver, notify_kind, notify_queue содержат идентификатор очереди сообщений (3.11.0), если он был установлен при отправке посылки.

Пример кода на python:

import requests
import os
import urllib.parse

URL = 'http://HOST/cgi-bin/master'
TOKEN = 'TOKEN'
CONTEST_ID = 1
SUBMIT_ID = 50

headers = {
        "Authorization": "Bearer AQAA" + TOKEN
}

data = {
        "contest_id" : CONTEST_ID,
        "json" : 1,
        "action" : "get-submit",
        "submit_id" : SUBMIT_ID,
}
response = requests.get(URL+"?"+urllib.parse.urlencode(data), headers=headers)
print(response.json())



Поддерживается начиная с версии 3.13.0.