Project

General

Profile

Front-Feature #339 » Примеры запросов.md

 

GET Get Action (v1)

метод, возвращающий action по actionId

ActionId передаётся как параметр в URL запроса.
UserId для поиска мероприятия берётся из jwt-токена. Этот метод не работает, если пользователь не авторизован. Мероприятие не будет найдено, если userId из jwt-токена не совпадает с userId создателя мероприятия

Роутер метода:
GET v1/action/{actionId}

Пример URL запроса:
http://127.0.0.1:3000/v1/action/a3de9de2-20f2-4f0c-b888-4219d63a33c6
тела запроса нет

Таким образом curl будет выглядеть примерно так:

curl -X 'GET' \
  'http://127.0.0.1:3000/v1/action/a3de9de2-20f2-4f0c-b888-4219d63a33c6' \
  -H 'accept: */*' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7InVzZXJJZCI6ImQwZjY1MzIyLWI4NDUtNGRkNi05NTA0LWE0Zjg0MDBiZjJmYyIsIm5hbWUiOiJuYW1lIiwic3VybmFtZSI6InN1cm5hbWUiLCJhdmF0YXIiOiIifSwiaWF0IjoxNzcyNjM0ODc1LCJleHAiOjE3NzI3MjEyNzV9.rxlJexVjtdGs_lAnG_t7O4olIKh177xK7jOhWFKnrKg'

Пример тела ответа этого метода:

{
  "data": {
    "action": {
      "actionId": "a3de9de2-20f2-4f0c-b888-4219d63a33c6",
      "userId": "d0f65322-b845-4dd6-9504-a4f8400bf2fc",
      "pic": "string",
      "category": "Сезонные события",
      "contactData": "",
      "pics": [
        "string"
      ],
      "categories": [
        "Сезонные события"
      ],
      "contacts": {
        "phone": "88005553535",
        "chatId": "550e8400-e29b-41d4-a716-446655440000"
      },
      "title": "Новое событие",
      "startDate": "2026-03-04",
      "endDate": "2026-03-04",
      "startTime": "10:00:00",
      "endTime": "15:00:00",
      "description": "description",
      "cost": 1000,
      "currency": "RUB",
      "format": "OnAndOffline",
      "location": "Moscow",
      "maxCount": 10,
      "count": 0,
      "showCount": false,
      "publicationDate": "2026-03-04",
      "status": "Published",
      "paid": false,
      "requiresTicket": false,
      "ageLimit": "0+",
      "paymentFormat": "По карте",
      "recipientBank": "tbank",
      "startLongitude": "37.6173",
      "startLatitude": "55.7558",
      "endLatitude": "55.7558",
      "endLongitude": "37.6173",
      "way": [
        "string"
      ],
      "createdAt": "2026-03-04T14:35:51.078Z",
      "updatedAt": "2026-03-04T14:35:51.078Z"
    }
  },
  "status": 200
}

CREATE Create Action (v1)

метод, создающий новый action по значениям полей

UserId для создания мероприятия берётся из jwt-токена. Этот метод не работает, если пользователь не авторизован

Роутер метода:
CREATE v1/action

Пример URL запроса:
http://127.0.0.1:3000/v1/action

Пример тела запроса этого метода:

{
  "pics": [
    "string"
  ],
  "title": "Новое событие",
  "startDate": "2024-05-16",
  "endDate": "2024-05-16",
  "startTime": "10:00:00",
  "endTime": "15:00:00",
  "description": "description",
  "cost": 1000,
  "currency": "RUB",
  "format": "OnAndOffline",
  "location": "Moscow",
  "maxCount": 10,
  "count": 0,
  "showCount": false,
  "publicationDate": "2024-05-16",
  "contacts": {
    "phone": "88005553535",
    "chatId": "550e8400-e29b-41d4-a716-446655440000"
  },
  "status": "Published",
  "requiresTicket": false,
  "paymentFormat": "По карте",
  "recipientBank": "tbank",
  "startLongitude": "37.6173",
  "endLongitude": "37.6173",
  "startLatitude": "55.7558",
  "endLatitude": "55.7558",
  "ageLimit": "0+",
  "categories": [
    "Сезонные события"
  ],
  "way": [
   "string"
  ]
}

Таким образом, curl будет выглядеть примерно так:

curl -X 'POST' \
  'http://127.0.0.1:3000/v1/action' \
  -H 'accept: */*' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7InVzZXJJZCI6ImQwZjY1MzIyLWI4NDUtNGRkNi05NTA0LWE0Zjg0MDBiZjJmYyIsIm5hbWUiOiJuYW1lIiwic3VybmFtZSI6InN1cm5hbWUiLCJhdmF0YXIiOiIifSwiaWF0IjoxNzcyNjM0ODc1LCJleHAiOjE3NzI3MjEyNzV9.rxlJexVjtdGs_lAnG_t7O4olIKh177xK7jOhWFKnrKg' \
  -H 'Content-Type: application/json' \
  -d '{
  "pics": [
    "string"
  ],
  "title": "Новое событие",
  "startDate": "2026-03-04",
  "endDate": "2026-03-04",
  "startTime": "10:00:00",
  "endTime": "15:00:00",
  "description": "description",
  "cost": 1000,
  "currency": "RUB",
  "format": "OnAndOffline",
  "location": "Moscow",
  "maxCount": 10,
  "count": 0,
  "showCount": false,
  "publicationDate": "2026-03-04",
  "contacts": {
    "phone": "88005553535",
    "chatId": "550e8400-e29b-41d4-a716-446655440000"
  },
  "status": "Published",
  "requiresTicket": false,
  "paymentFormat": "По карте",
  "recipientBank": "tbank",
  "startLongitude": "37.6173",
  "endLongitude": "37.6173",
  "startLatitude": "55.7558",
  "endLatitude": "55.7558",
  "ageLimit": "0+",
  "categories": [
    "Сезонные события"
  ],
  "way": [
   "string"
  ]
}'

Пример тела ответа этого метода (здесь пока присутствуют старые поля pic, category, contactData, я их оставил для обратной совместимости, уберу как только мы полностью перейдём на ActionV1):

{
  "data": {
    "action": {
      "userId": "d0f65322-b845-4dd6-9504-a4f8400bf2fc",
      "pics": [
        "string"
      ],
      "categories": [
        "Сезонные события"
      ],
      "contacts": {
        "phone": "88005553535",
        "chatId": "550e8400-e29b-41d4-a716-446655440000"
      },
      "title": "Новое событие",
      "startDate": "2026-03-04",
      "endDate": "2026-03-04",
      "startTime": "10:00:00",
      "endTime": "15:00:00",
      "description": "description",
      "cost": 1000,
      "currency": "RUB",
      "format": "OnAndOffline",
      "location": "Moscow",
      "maxCount": 10,
      "count": 0,
      "showCount": false,
      "publicationDate": "2026-03-04",
      "status": "Published",
      "requiresTicket": false,
      "ageLimit": "0+",
      "paymentFormat": "По карте",
      "recipientBank": "tbank",
      "startLongitude": "37.6173",
      "startLatitude": "55.7558",
      "endLatitude": "55.7558",
      "endLongitude": "37.6173",
      "way": [
        "string"
      ],
      "paid": false,
      "pic": "string",
      "category": "Сезонные события",
      "actionId": "a3de9de2-20f2-4f0c-b888-4219d63a33c6",
      "contactData": "",
      "createdAt": "2026-03-04T14:35:51.078Z",
      "updatedAt": "2026-03-04T14:35:51.078Z"
    }
  },
  "status": 201
}

UPDATE Update Action (v1)

метод, обновляющий action по actionId и по новым значениям его полей

ActionId передаётся как параметр в URL запроса.
UserId для поиска мероприятия берётся из jwt-токена. Этот метод не работает, если пользователь не авторизован. Мероприятие не будет найдено и обновлено, если userId из jwt-токена не совпадает с userId создателя мероприятия

Пример тела запроса этого метода

{
  "pics": [
    "string"
  ],
  "title": "Обновлённое событие",
  "startDate": "2024-05-16",
  "endDate": "2024-05-16",
  "startTime": "10:00::00",
  "endTime": "15:00::00",
  "description": "Добавили описание",
  "cost": 1000,
  "currency": "RUB",
  "format": "OnAndOffline",
  "location": "Moscow",
  "maxCount": 10,
  "showCount": false,
  "publicationDate": "2024-05-16",
  "contacts": {
    "phone": "88005553535",
    "chatId": "550e8400-e29b-41d4-a716-446655440000"
  },
  "status": "Published",
  "requiresTicket": false,
  "paymentFormat": "По карте",
  "recipientBank": "tbank",
  "startLongitude": "37.6173",
  "endLongitude": "37.6173",
  "startLatitude": "55.7558",
  "endLatitude": "55.7558",
  "ageLimit": "0+",
  "categories": [
    "Сезонные события"
  ],
  "way": [
    "string"
  ]
}

Таким образом, curl этого запроса будет выглядеть так:

curl -X 'POST' \
  'http://127.0.0.1:3000/v1/action/a3de9de2-20f2-4f0c-b888-4219d63a33c6' \
  -H 'accept: */*' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7InVzZXJJZCI6ImQwZjY1MzIyLWI4NDUtNGRkNi05NTA0LWE0Zjg0MDBiZjJmYyIsIm5hbWUiOiJuYW1lIiwic3VybmFtZSI6InN1cm5hbWUiLCJhdmF0YXIiOiIifSwiaWF0IjoxNzcyNjM0ODc1LCJleHAiOjE3NzI3MjEyNzV9.rxlJexVjtdGs_lAnG_t7O4olIKh177xK7jOhWFKnrKg' \
  -H 'Content-Type: application/json' \
  -d '{
  "pics": [
    "string"
  ],
  "title": "Обновлённое событие",
  "startDate": "2026-03-04",
  "endDate": "2026-03-04",
  "startTime": "10:00:00",
  "endTime": "15:00:00",
  "description": "Добавили описание",
  "cost": 1000,
  "currency": "RUB",
  "format": "OnAndOffline",
  "location": "Moscow",
  "maxCount": 10,
  "showCount": false,
  "publicationDate": "2026-03-04",
  "contacts": {
    "phone": "88005553535",
    "chatId": "550e8400-e29b-41d4-a716-446655440000"
  },
  "status": "Published",
  "requiresTicket": false,
  "paymentFormat": "По карте",
  "recipientBank": "tbank",
  "startLongitude": "37.6173",
  "endLongitude": "37.6173",
  "startLatitude": "55.7558",
  "endLatitude": "55.7558",
  "ageLimit": "0+",
  "categories": [
    "Сезонные события"
  ],
  "way": [
   "string"
  ]
}'

Пример тела ответа этого запроса:

{
  "data": {
    "action": {
      "actionId": "a3de9de2-20f2-4f0c-b888-4219d63a33c6",
      "userId": "d0f65322-b845-4dd6-9504-a4f8400bf2fc",
      "pic": "string",
      "category": "Сезонные события",
      "contactData": "",
      "pics": [
        "string"
      ],
      "categories": [
        "Сезонные события"
      ],
      "contacts": {
        "phone": "88005553535",
        "chatId": "550e8400-e29b-41d4-a716-446655440000"
      },
      "title": "Обновлённое событие",
      "startDate": "2026-03-04",
      "endDate": "2026-03-04",
      "startTime": "10:00:00",
      "endTime": "15:00:00",
      "description": "Добавили описание",
      "cost": 1000,
      "currency": "RUB",
      "format": "OnAndOffline",
      "location": "Moscow",
      "maxCount": 10,
      "count": 0,
      "showCount": false,
      "publicationDate": "2026-03-04",
      "status": "Published",
      "paid": false,
      "requiresTicket": false,
      "ageLimit": "0+",
      "paymentFormat": "По карте",
      "recipientBank": "tbank",
      "startLongitude": "37.6173",
      "startLatitude": "55.7558",
      "endLatitude": "55.7558",
      "endLongitude": "37.6173",
      "way": [
        "string"
      ],
      "createdAt": "2026-03-04T14:35:51.078Z",
      "updatedAt": "2026-03-04T14:35:51.078Z"
    }
  },
  "status": 200
}
    (1-1/1)