using Cloud.Models;
using Cloud.Requests;
using Cloud.Services.Broker;
using Cloud.Services.Broker.Support;
using Cloud.Services.Domain;
using Microsoft.AspNetCore.Mvc;
namespace Cloud.Controllers
{
[ApiController]
[Route("api/farm/{farmId}/greenhouse")]
public class GreenhouseController : ControllerBase
{
private readonly IGreenhouseService _greenhouseService;
public GreenhouseController(IGreenhouseService greenhouseService)
{
_greenhouseService = greenhouseService;
}
///
/// Возвращает текущую информацию о всех теплицах пользователя
///
///
///
[HttpGet]
public async Task>> GetAll(int farmId)
{
try
{
var greenhouses = _greenhouseService.GetAll(farmId);
if (greenhouses == null) return NotFound("Greenhouses is not found");
return Ok(greenhouses);
}
catch (Exception ex)
{
return BadRequest(ex.Message);
}
}
///
/// Возвращает текущую информацию о конкретной теплице
///
///
///
///
[HttpGet("{greenhouseId}")]
public async Task> Get(int farmId, int greenhouseId)
{
try
{
var greenhouses = _greenhouseService.GetGreenhouseInfo(greenhouseId, farmId);
return Ok(greenhouses);
}
catch (Exception ex)
{
return BadRequest(ex.Message);
}
}
///
/// Возвращает сохраненные данные для автоматизации теплицы
///
///
///
///
[HttpGet("{greenhouseId}/settings")]
public async Task> GetGreenhouse(int farmId, int greenhouseId)
{
throw new NotImplementedException();
}
///
/// Сохраняет в базе данных API данные для автоматизации теплицы
///
///
///
///
[HttpPost]
public async Task> SaveToDatabase(int farmId, GreenhouseRequest greenhouse)
{
throw new NotImplementedException();
}
///
/// Обновляет в базе данных API данные для автоматизации теплицы
///
/// ID фермы
/// ID теплицы
/// Данные для обновления
/// Обновленный объект Greenhouse
[HttpPut("{greenhouseId}/settings")]
public async Task> Update(int farmId, int greenhouseId, GreenhouseRequest greenhouse)
{
throw new NotImplementedException();
}
///
/// Удаляет из базы данных API запись настроек автоматизации теплицы
///
///
///
///
[HttpDelete("{greenhouseId}")]
public async Task Delete(int farmId, int greenhouseId)
{
throw new NotImplementedException();
}
}
}