Skip to content

Instantly share code, notes, and snippets.

@findingtheconcept
Last active June 4, 2021 20:00
Show Gist options
  • Save findingtheconcept/2c23d4096ca43155230e4d92e7cf1c64 to your computer and use it in GitHub Desktop.
Save findingtheconcept/2c23d4096ca43155230e4d92e7cf1c64 to your computer and use it in GitHub Desktop.

Документация для разработчиков CRM cистемы для dvmn.org

Разделы


Обратите внимание!

Все поля, начинающиеся на _ (нижнее подчёркивание) автоматически генерируюстся базой данных и их заполнять не нужно.

{
	"_id": "", // ObjectId
	"role": "", // String (admin/manager)
    "login": "", // String
    "password": "", // String
    "name": "", // String
    "surname": "", // String
    "midname": "" // String
}

Пример

{
	"_id": "60b8fb2f02d3ea001f45d116",
	"role": "admin",
    "login": "crmadmin", 
    "password": "strongPa$$wor9", 
    "name": "Кристина", 
    "surname": "Савельева", 
    "midname": "Александровна" 
}

{
    "_id": "", // ObjectId
    "name": "", // String
	"surname": "", // String
	"midname": "", // String
	"gender": "", // String (Мужской/Женский)
	"age": "", // Date (YYYY-MM-DD)
	"phone": "", // String
	"parentPhone": "", // String, not required
	"discord": "" // String
}

Пример

{	
    "_id": "60ba505dc12d3b9783c51d0f",
    "name": "Владислав", 
	"surname": "Романенко", 
	"midname": "Николаевич", 
	"gender": "Мужской", 
	"age": "1983-04-16",
	"phone": "+7 (123) 456-78-90",
	"parentPhone": "+7 (321) 653-87-09", 
	"discord": "vlad#1239" 
}

{
	"_id": "", // ObjectId
	"GROUP_NAME": "", // String
	"TUTOR": "", // String
	"LEVEL": , // Number
	"PLACES": , // Number
	"PUPILS": [] // Array of ObjectIds
}

Пример

{
	"_id": "60ba5d10c5b65721e5b89ab6",
	"GROUP_NAME": "Программирование на Go. Поток 4.", 
	"TUTOR": "Климов Илья Алексеевич", 
	"LEVEL": 2,
	"PLACES": 3,
	"PUPILS": [
        "60ba504dc12d3b9783c51d0e",
        "60b8fb6502d3ea001f45d117",
	"60ba5076c12d3b9783c51d10"
}

API

Пути, помеченные вот такой иконкой (замок) требуют токен доступа в специальном HTTP заголовке в формате:

Authorization: Bearer <Token>

Cм. JWT Токены


POST /CRMAccounts/create

Request Body

{
    "role": "",
    "login": "",
    "password": "",
    "name": "",
    "surname": "",
    "midname": ""
}

Request Headers

Response Body

{
  "role": "",
  "_id": "",
  "name": "",
  "surname": "",
  "midname": "",
  "login": "",
  "password": "",
  "__v": 0
}

Response Statuses

201 - Успешно создан

400 - Валидация не пройдена | Пользователь с таким логином существует


GET /CRMAccounts/get

Request Body

Request Headers


Response Body

{
  "role": "",
  "_id": "",
  "name": "",
  "surname": "",
  "midname": "",
  "login": "",
  "password": "",
  "__v": 0
}

Response Statuses

200 - ОК


DELETE /CRMAccounts/delete/account_id

Request Body

Request Headers


Request Parameters

account_id

Response Body

Response Statuses

200 - ОК


замок POST /CRM/Pupils/create

Request Body

{
	"name": "Василий",
	"surname": "Уткин",
	"midname": "Максимович",
	"gender": "Мужской",
	"age": "1970-02-29",
	"phone": "+ 7 (123) 456-78-90",
	"parentPhone": "",
	"discord": "utkin#1234"
}

Request Headers

Authorization: Bearer <token>

Response Body

{
  "_id": "60ba5076c12d3b9783c51d10",
  "name": "Василий",
  "surname": "Уткин",
  "midname": "Максимович",
  "gender": "Мужской",
  "age": "1970-02-29",
  "phone": "+ 7 (123) 456-78-90",
  "parentPhone": "",
  "discord": "utkin#1234",
  "__v": 0
}

Response Statuses

201 - Ученик создан

400- Валидация не пройдена


замок GET /Pupils/get?offset&limit

Request Body

Request Headers

Authorization: Bearer <token>

Available Request Queries

offset - Убирает из выдачи первые offset записей
limit - Ограничивает количество выданных результатов

Response Body

[
    {
      "_id": "",
      "name": "",
      "surname": "",
      "midname": "",
      "gender": "",
      "age": "",
      "phone": "",
      "parentPhone": "",
      "discord": "",
      "__v": 0
	},
    {
      "_id": "",
      "name": "",
      "surname": "",
      "midname": "",
      "gender": "",
      "age": "",
      "phone": "",
      "parentPhone": "",
      "discord": "",
      "__v": 0
	},
    {
      "_id": "",
      "name": "",
      "surname": "",
      "midname": "",
      "gender": "",
      "age": "",
      "phone": "",
      "parentPhone": "",
      "discord": "",
      "__v": 0
	},
	...
]

Response Statuses

200 - ОК


замок GET /Pupils/getById/pupil_id

Request Body

Request Headers

Authorization: Bearer <token>

Request Parameters

pupil_id - ObjectId ученика, объект которого вам нужен

Response Body

Response Statuses

200 - ОК


замок DELETE /Pupils/delete/pupil_id

Request Body

Request Headers

Authorization: Bearer <token>

Request Parameters

pupil_id - ObjectId ученика, которого вы хотите удалить

Response Body

Response Statuses

200 - ОК


замок PATCH /Pupils/pupil_id/edit

Request Body

{
    // Любые поля из сущности Ученик
}

Request Headers

Authorization: Bearer <token>

Request Parameters

pupil_id - ObjectId ученика, которого вы хотите отредактировать

Response Body

// Изменённый объект
{
  "_id": "60ba5076c12d3b9783c51d10",
  "name": "",
  "surname": "",
  "midname": "",
  "gender": "",
  "age": "",
  "phone": "",
  "parentPhone": "",
  "discord": "",
  "__v": 0
} 

Response Statuses

200 - Успешно отредактировано

400 - Некорректный запрос


замок POST /CRM/Groups/create

Request Body

{
	"_id": "",
	"GROUP_NAME": "", 
	"TUTOR": "", 
	"LEVEL": , 
	"PLACES": , 
	"PUPILS": [] 
}

Request Headers

Authorization: Bearer <token>

Response Body

{
	"_id": "",
	"GROUP_NAME": "",
	"TUTOR": "", 
	"LEVEL": , 
	"PLACES": , 
	"PUPILS": [
		...
    ] 
}

Response Statuses

201 - Группа создана

400- Валидация не пройдена


замок GET /Groups/get?offset&limit

Request Body

Request Headers

Authorization: Bearer <token>

Available Request Queries

offset - Убирает из выдачи первые offset записей
limit - Ограничивает количество выданных результатов

Response Body

[
    {
        "_id": "", 
        "GROUP_NAME": "", 
        "TUTOR": "", 
        "LEVEL": , 
        "PLACES": , 
        "PUPILS": [] // Array of Pupils
	},
	{
        "_id": "", 
        "GROUP_NAME": "",
        "TUTOR": "", 
        "LEVEL": ,
        "PLACES": ,
        "PUPILS": [] // Array of Pupils
	},
	{
        "_id": "", 
        "GROUP_NAME": "", 
        "TUTOR": "", 
        "LEVEL": ,
        "PLACES": ,
        "PUPILS": [] // Array of Pupils
	},
	...
]

Response Statuses

200 - ОК


замок GET /Groups/getById/group_id

Request Body

Request Headers

Authorization: Bearer <token>

Request Parameters

group_id - ObjectId группы, объект которой вам нужен

Response Body

Response Statuses

200 - ОК


замок DELETE /Groups/delete/group_id

Request Body

Request Headers

Authorization: Bearer <token>

Request Parameters

pupil_id - ObjectId группы, которую вы хотите удалить

Response Body

Response Statuses

200 - Группа успешно удалена


замок PATCH /Groups/group_id/edit

Request Body

{
    // Любые поля из сущности группа (См. Сущности -> Группа)
}

Request Headers

Authorization: Bearer <token>

Request Parameters

group_id - ObjectId группы, которую вы хотите отредактировать

Response Body

// Изменённый объект
{
	"_id": "",
	"GROUP_NAME": "", 
	"TUTOR": "", 
	"LEVEL": , 
	"PLACES": , 
	"PUPILS": [
		...
    ] 
}

Response Statuses

200 - Успешно отредактировано

400 - Некорректный запрос


замок POST /Groups/:group_id/addPupils

Request Body

{
    // Любые поля из сущности Ученик
}

Request Headers

Authorization: Bearer <token>

Request Parameters

group_id - ObjectId группы, в которую хотите добавить учеников

Response Body

// Изменённый объект
{
	"_id": "",
	"GROUP_NAME": "", 
	"TUTOR": "", 
	"LEVEL": , 
	"PLACES": , 
	"PUPILS": [
		...
    ] 
}

Response Statuses

200 - Ученики успешно добавлены

400 - Некорректный запрос | Количество учеников в запросе превышает количество занятых или свободных мест

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment