/coinhater

Primary LanguageJavaScript

Coinhater

Данный репозиторий является результатом тестового задания по реализации CRUD операций.

https://coinhater.herokuapp.com/ - deploy

Инициализация проекта

Настройки подключения к базе данных хранятся в файле:

server/db/config/config.json

Запуск серверной части:

cd server && npm i && npm start

Стартовые сиды (запускать до добавления исполнителей в базу через API):

cd server && npm run seed

Запуск клиентской части:

cd client && npm i && npm start

API

Запросы осуществляются по домену (https://coinhater.herokuapp.com)

Запросы связанные с исполнителями:

GET /api/artists - список всех исполнителей. Также доступна фильтрация с помощью query запроса. Доступные ключи:

  • artistPart - поиск исполнителя по части его имени
  • selectedDateArtist : 'YYYY-MM-DD' - поиск исполнителя по его дате добавления в систему
  • limitPaginationArtist - количество отображаемых исполнителей
  • pagePaginationArtist - порядковый номер группы отображаемых исполнителей в списке разбитом по limitPaginationArtist

GET /api/artists/:id - информация об исполнителе с заданным id.

POST /api/artists - добавление нового исполнителя в базу. Тело запроса:

  • name : string - Имя добавляемого исполнителя

Данные валидируются на стороне сервера и запрещают добавлять в базу данных исполнителя "монеточка"

PUT /api/artists/:id - редактирование информации об исполнителе с заданным id. Тело запроса:

  • name : string - Новое имя для данного исполнителя

Данные валидируются на стороне сервера и запрещают добавлять в базу данных исполнителя "монеточка"

DELETE /api/artists/:id - удаление исполнителя с заданным id и всех его композиций из базы данных.

Запросы связанные с композициями:

GET /api/songs - список всех композиций. Также доступна фильтрация с помощью query запроса. Доступные ключи:

  • songPart - поиск композиции по части наименования
  • selectedDateSong : 'YYYY-MM-DD' - поиск композиции по дате добавления её в систему
  • limitPaginationSong - количество отображаемых композиций
  • pagePaginationSong - порядковый номер группы отображаемых композиций в списке разбитом по limitPaginationSong

GET /api/songs/:id - информация о композиции с заданным id.

POST /api/songs - добавление новой композиции в базу. Тело запроса:

  • name : string - Наименование добавляемой композиции
  • artistId : number - id исполнителя

PUT /api/songs/:id - редактирование информации о композиции с заданным id. Тело запроса:

  • name : string - Новое наименование данной композиции
  • artistId : number - id исполнителя (если необходимо сменить автора композиции)

DELETE /api/songs/:id - удаление композиции с заданным id из базы данных.