Skip to content

meligera/tech-test-vk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ТехноТест Профильное Задание VK

Здесь представлено задание по созданию REST API сервиса, отслеживающего выполнение заданий пользователями и начисляющий награды за их выполнение. Сервис написан на Go и использует PostgreSQL в качестве базы данных, Gin в качестве фреймворка.

Запуск приложения

Для запуска сервиса необходимо установить Docker и Docker Compose.

  1. Клонируйте репозиторий:
git clone https://github.com/meligera/tech-test-vk.git

cd tech-test-vk
  1. Запустите контейнеры Docker:
docker-compose up -d

Это запустит контейнеры для сервиса и базы данных PostgreSQL. База данных будет проинициализирована с помощью init.sql при первом запуске.

  1. Сервис будет доступен по адресу http://localhost:8080.

API

Готовые коллекции для импорта:

Insomnia API collection - https://mamrenko.ru/downloads/Insomnia-VK-TECH-DEMO.json

Postman API collection - https://mamrenko.ru/downloads/VK-TECH-DEMO.postman_collection.json

Создание пользователя

  • URL: /create_user
  • Метод: POST
  • Тело запроса:
{
  "name": "имя пользователя",
  "balance": 0
}

Ответы:

  • 200 OK: Пользователь успешно создан.
  • 400 Bad Request: Ошибка в данных запроса. (такой пользователь уже создан)
  • 500 Internal Server Error: Внутренняя ошибка сервера.

Примечание:

Если не указан параметр balance в запросе, то по умолчанию он будет равен 0


Создание задания

  • URL: /create_quest
  • Метод: POST
  • Тело запроса:
{
  "name": "название задания",
  "cost": 0
}

Ответы:

  • 200 OK: Задание успешно создано.
  • 400 Bad Request: Ошибка в данных запроса. (такое задание уже создано)
  • 500 Internal Server Error: Внутренняя ошибка сервера.

Выполнения задания

  • URL: /complete
  • Метод: POST
  • Тело запроса:
{
  "user_id": 1,
  "quest_id": 1
}

Ответы:

  • 200 OK: Задание успешно выполнено.
  • 400 Bad Request: Ошибка в данных запроса. (задание уже было выполено пользователем)
  • 500 Internal Server Error: Внутренняя ошибка сервера.

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

  • URL: /history/:userId
  • Метод: GET

Ответы:

  • 200 OK: Возвращает имя пользователя, баланс и список завершенных квестов.
  • 500 Internal Server Error: Внутренняя ошибка сервера.

Получение списка всех пользователей

  • URL: /users
  • Метод: GET

Ответы:

  • 200 OK: Возвращает список всех пользователей с их id, именами и балансами.
  • 500 Internal Server Error: Внутренняя ошибка сервера.

Получение списка всех заданий

  • URL: /quests
  • Метод: GET

Ответы:

  • 200 OK: Возвращает список всех заданий с их id, названиями и стоимостью.
  • 500 Internal Server Error: Внутренняя ошибка сервера.

About

A Golang app with 4 REST API methods

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published