Skip to content

Repository files navigation

Feedback API

Описание

Этот API предоставляет функциональность для управления отзывами, включая создание, обновление, удаление, голосование за отзывы и получение информации о пользователях.

Установка

  1. Клонируйте репозиторий: git clone cd text

  2. Установите зависимости: npm install text

  3. Настройте переменные окружения в файле .env: DATABASE_URL=your_database_url text

  4. Запустите миграции Prisma: npx prisma migrate dev --name init text

  5. Запустите сервер: npm start text

Эндпоинты

Authentication

1. Sign In

  • URL: /auth/signin
  • Метод: POST
  • Тело запроса: { "email": "user@example.com", "password": "yourpassword" } text
  • Ответ (200): { "user": { /* User object */ }, "accessToken": "your_access_token", "refreshToken": "your_refresh_token" } text

2. Sign Up

  • URL: /auth/signup
  • Метод: POST
  • Тело запроса: { "email": "user@example.com", "password": "yourpassword" } text
  • Ответ (201): { "user": { /* User object */ } } text

3. Refresh Token

  • URL: /auth/refresh
  • Метод: POST
  • Тело запроса: { "refreshToken": "your_refresh_token" } text
  • Ответ (200): { "accessToken": "new_access_token", "refreshToken": "new_refresh_token" } text

4. Get Me (User Info)

  • URL: /auth/me
  • Метод: GET
  • Заголовки: Authorization: Bearer your_access_token text
  • Ответ (200): { /* User object */ } text

Feedback Management

1. Get Feedbacks

  • URL: /feedback

  • Метод: GET

  • Параметры запроса:

  • categoryId (optional): ID категории для фильтрации.

  • statusId (optional): ID статуса для фильтрации.

  • sortBy (optional): Поле для сортировки (votes или createdAt).

  • page (optional): Номер страницы для пагинации.

  • limit (optional): Количество отзывов на страницу.

  • Ответ (200): [ { /* FeedbackPost object */ }, ... ] text

2. Create Feedback

  • URL: /feedback
  • Метод: POST
  • Тело запроса: { "title": "Feedback Title", "description": "Feedback Description", "categoryId": 1, "statusId": 1 } text
  • Ответ (201): { /* FeedbackPost object */ } text

3. Update Feedback

  • URL: /feedback/{id}

  • Метод: PUT

  • Параметры пути:

    • id: ID отзыва для обновления.
  • Тело запроса: { "title": "Updated Title", "description": "Updated Description", "categoryId": 1, "statusId": 1 } text

  • Ответ (200): { /* Updated FeedbackPost object */ } text

4. Delete Feedback

  • URL: /feedback/{id}

  • Метод: DELETE

  • Параметры пути:

    • id: ID отзыва для удаления.
  • Ответ (204): No Content

5. Upvote Feedback

  • URL: /feedback/{id}/upvote

  • Метод: POST

  • Параметры пути:

    • id: ID отзыва для голосования.
  • Ответы:

    • Если голос был учтен (200):
      {
          /* Updated FeedbackPost object */
      }
      
    • Если голос был отменен (400):
      {
          "error": "Ваш голос отменен."
      }
      

6. Get Categories

  • URL: /feedback/categories

  • Метод: GET

  • Ответ (200): [ { /* Category object */ }, ... ] text

7. Get Statuses

  • URL: /feedback/statuses

  • Метод: GET

  • Ответ (200): [ { /* Status object */ }, ... ]

About

back-end-test

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages