Cucumber/Cloud/Controllers/HeaterController.cs

42 lines
1013 B
C#

using Cloud.Requests;
using Cloud.Services.Broker;
using Cloud.Services.Broker.Implement.Kafka;
using Cloud.Services.Broker.Support;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace Cloud.Controllers
{
[Authorize]
[ApiController]
[Route("api")]
public class HeaterController : Controller
{
//Контроллер вентиля
private readonly IBrokerService _kafkaService;
public HeaterController(KafkaService kafkaService)
{
_kafkaService = kafkaService;
}
[HttpPost("farm/{farmId}/greenhouse/{ghId}/heating")]
public async Task<IActionResult> interactValve([FromBody] HeaterRequest request, int farmId, int ghId)
{
var command = new Command
{
request_id = Guid.NewGuid(),
greenhouse_id = ghId,
farm_id = farmId,
command = "heater",
target_temp = request.Temperature
};
await _kafkaService.ProduceAsync("commands", command);
return Ok($"Heater target temperature is set as {request.Temperature}");
}
}
}