Документация бэкенда Go - qwsnxnjene/courier-transport GitHub Wiki
Данный хэндлер обрабатывает GET-запросы по пути /api/transport
Возвращает список свободных в данный момент самокатов в формате список структур Scooter
type Scooter struct {
Latitude float64 'json:"latitude"'
Longitude float64 'json:"longitude"'
BatteryLevel int 'json:"batteryLevel"'
}
Данный хэндлер обрабатывает POST-запросы по пути /api/auth/login
В качестве query-параметра необходимо передать логин и пароль пользователя
{
"password": "your-password"
}
Проверяет переданный логин и пароль и, если он совпадает с ожидаемым (хранится в БД), генерирует и возвращает JWT-токен. В противном случае возвращает ошибку.
В случае успеха возвращает:
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
В случае неудачи:
{
"error": "Неверный пароль"
}
Или
{
"error": "ошибка десериализации <описание>"
}
Данный хэндлер обрабатывает POST-запросы по пути /api/auth/signup
В качестве query-параметра необходимо передать логин и пароль пользователя
{
"login": "your-login"
"password": "your-password"
}
Проверяет переданный логин и пароль на корректность и добавляет его в БД. В противном случае возвращает ошибку.
В случае успеха возвращает:
{
"message":"Пользователь успешно зарегистрирован"
}
В случае неудачи:
{
"error":"Логин должен быть не короче 3 символов"
}
Или
{
"error":"Пароль должен быть не короче 8 символов"
}
Или
{
"error":"Логин уже занят"
}
Или
{
"error":"Внутренняя ошибка сервера"
}
Данный хэндлер обрабатывает GET-запросы по пути /api/profile
Необходимо передать в заголовке jwt-токен
Токен будет проверен, и, если всё верно, то вернется информация о пользователе:
{
Login string 'json:"name"'
Rating int 'json:"rating"'
Status string 'json:"status"'
Preferences []string 'json:"transportPreferences"'
Documents struct {
Passport string 'json:"passport"'
DriverLicense string 'json:"driverLicense"'
} 'json:"documents"'
RentalStats struct {
TotalRentals int 'json:"totalRentals"'
CurrentBalance int 'json:"currentBalance"'
VehicleStats struct {
E_scooter int 'json:"e-scooter"'
Bike int 'json:"bike"'
E_bike int 'json:"e-bike"'
} 'json:"vehicleStats"'
}
}
В случае ошибки могут вернуться следующие ответы:
{"error":"Пользователь не найден"}
или
{"error":"Внутренняя ошибка сервера"}
Данный хэндлер добавляет в БД данные о прошедшей поездке по пути /api/add-ride
В теле запроса необходимо передать следующую информацию:
{
UserID int json:"user_id"
TransportID int json:"transport_id"
StartTime string json:"start_time"
EndTime string json:"end_time"
Total int json:"total"
}
В случае ошибки вернётся ответ следующего типа:
{"error":"*описание ошибки*"}
Данный хэндлер возвращает список поездок пользователя по пути /api/rides
В теле запроса необходимо передать логин пользователя
Ответ имеет вид списка структур:
{
Start string json:"start"
End string json:"end"
Total int json:"total"
Type string json:"type"
}
В случае ошибки вернётся ответ следующего типа:
{"error":"*описание ошибки*"}