Skip to content

MIND-Company/api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Документация

Регистрация

POST /register

Request body

phone: string Должен быть уникальным. Формат: строго 12 символов +7XXXXXXXXXX, только цифры и знак + в начале строки.

password: string Пароль пользователя. Должен быть надёжным.

password_retype: string Подтверждение пароля. Должен совпадать с password.

Response 200 Успех

phone: string Номер телефона (идентификатор) созданного пользователя

400 Ошибка в переданных параметрах ErrorMessage: string Номер телефона уже существует; неверный формат; пароль ненадежный; пароли не совпадают

500 Ошибка сервера


Аутентификация

POST /login

Request body

Phone: string Password: string

Response 200 Успех

Access: string Refresh: string

400 Ошибка в переданных данных 500 Ошибка сервера


Обновление access токена

POST /token/refresh

Request body Refresh: string

Response 200 Успех Access: string Refresh: string

401 Не авторизован refresh токен истек

500 Ошибка севера


Подтверждение регистрации

(На уточнении) GET /register/confirm?phone={}&confirmation={} Код подтверждения приходит в смс по номеру телефона

Response 200 Успех 404 Параметры запроса неверные 500 Ошибка севера


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

(возможно будет реализовано позднее)


Получение списка паркингов (для владельца)

GET /api/parks/

появилась информация о ценах


Получение конкретного паркинга (для владельца)

GET /api/parks/{id}/

появилась информация о ценах


Получение списка парковок (для пользователя)

GET /api/parkings/ (записи о парковках сортируются по entry_time от самой новой до самой старой)

появился расчет цены, время теперь локальное (по местоположению паркинга) и UTC

изображение


Добавление новой записи о заезде на паркинг

POST api/entry-register/

‼️ теперь, если машина не зарегистрирована в сервисе её номер отображается как unregistred

изображение

Request body park: int car: string (номер машины)

Response 201 Created 400 Ошибка в переданных данных


Добавление новой записи о выезде с паркинга

POST api/checkout-register/

‼️ теперь, если машина не зарегистрирована в сервисе её номер отображается как unregistred и дополнительно приходит confirmation_code

изображение

Request body park: int car: string

Response 201 Created 400 Ошибка в переданных данных


Создание новой парковки

(сейчас может выполнить любой пользователь прошедший аутентификацию) (хозяином парковки устанавливается пользователь выполнивший запрос) POST /api/parks/create

Request body description: string place_count: int latitude: decimal (с точностью 6 знаков после запятой) longitude: decimal (с точностью 6 знаков после запятой)

опционально address: string web_address: string

Response 201 Created 400 Ошибка в переданных данных


CRUD для машины

GET /api/cars - отдает список машин пользователя

POST ‼️ /api/cars /api/add-car/ - создает новую машину для пользователя теперь обязательным является код подтверждения

изображение

PUT, PATCH, DELETE /api/cars/<номер машины (он же PK)> - редактирует, удалеят машину пользователя с переданным PK


Задать цену для паркинга

список возможных значений для day_of_week:

  • ALL = "All"
  • WEEKEND = "Wkd"
  • MONDAY = "Mon"
  • THUESDAY = "Tue"
  • WEDNESDAY = "Wed"
  • THURSDAY = "Thu"
  • FRIDAY = "Fri"
  • SATURDAY = "Sat"
  • SUNDAY = "Sun"

сначала выбирается цена по дню недели -> если такой нет -> WEEKEND (если выходной день) -> ALL (если нет не выбрано на предыдущих шагах)

POST /api/price - создает новую цену

PUT, PATCH, DELETE /api/price/ - редактируем, удаляем цену


Профиль пользователя

get profile/ - отдает профиль пользователя

PATCH profile/ - редактирует профиль


Пагинация

На ендпоинтах отдающих коллекции подключена пагинация в стиле limit-offset

Пример:

Запрос /api/parkings/?limit=2&offset=3 отдаст 2 записи о парковках пользователя со смещением в 3 элемента от начала коллекции (т. е. запрос отдаст 4, 5 записи). Для получения последней записи достаточно установить параметру limit значение 1 (параметр offset можно опустить)

При использовании пагинации ответ выглядит следующим образом: изображение

About

⚙️ API

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •