moevm / nosql2h24-plants

0 stars 0 forks source link

[backend] Осуществление обмена #30

Open LeraChernyakova opened 1 week ago

LeraChernyakova commented 1 week ago

Запрос. Получение доступных растений для обмена. GET /api/plants/trade/{user_id}

  1. В начале проверить, есть ли у пользователя с таким user_id растения, то есть сам факт их наличия + поле "sold_at" пустое. Если нечего менять - вернуть ошибку!
  2. Если есть, то отобразить все его растения, у которых поле "sold_at" пусто.
  3. Вернуть в ответе следующее по растению
    {
    "species",
    "price",
    "place",
    "created_at"
    }

Запрос. Создание самого трейда. POST /api/trade Данные из request

"offerer_id"
"offerer_plant_id"
"offerer_plant_name"
"offerer_plant_species"
"offerer_plant_image"
"accepter_id"
"accepter_plant_id"
"accepter_plant_name"
"accepter_plant_species"
"accepter_plant_image"

Создать запись в коллекции Trade

{
  "_id": ObjectId(),                // Уникальный идентификатор сделки
  "offerer": {                      // Информация о продавце
    "_id": "offerer_id",              // Идентификатор пользователя-покупателя
    "name": "offerer_plant_name",               // Имя продавца
    "plant": {
      "_id": "offerer_plant_id",            // Идентификатор растения покупателя
      "species": "offerer_plant_species",              // Название растения покупателя
      "image": "offerer_plant_image"
    }
  },
  "accepter": {                     // Информация о покупателе
    "_id": "accepter_id",              // Идентификатор пользователя-продавца
    "name": "accepter_plant_name",               // Имя покупателя
    "plant": {
      "_id": "accepter_plant_id",            // Идентификатор растения продавца
      "species": "accepter_plant_species",              // Название растения продавца
      "image": "accepter_plant_image"
   }
  },
  "created_at": ISODate(),          // Дата создания сделки
  "updated_at": ISODate(),          // Дата последнего обновления сделки
  "status": 1,                // Статус сделки 
  "type": "trade"
}
defrozentruth commented 11 hours ago

запрос должен выглядеть так:

message PostTradeV1Request{
  string offererId = 1;
  string offererPlantId = 2;
  string accepterId = 3;
  string accepterPlantId = 4;
}