Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

RequestController.cs 2.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. using AutoMapper;
  2. using Diligent.WebAPI.Business.Services;
  3. using Diligent.WebAPI.Data.Entities;
  4. using Diligent.WebAPI.Host.DTOs.Customer;
  5. using Diligent.WebAPI.Host.DTOs.Request;
  6. using Diligent.WebAPI.Host.Exceptions;
  7. using Diligent.WebAPI.Host.Mediator.Request.Commands;
  8. using Diligent.WebAPI.Host.Mediator.Request.Queries;
  9. using MediatR;
  10. using Microsoft.AspNetCore.Mvc;
  11. namespace Diligent.WebAPI.Host.Controllers
  12. {
  13. [ApiVersion("1.0")]
  14. [ApiController]
  15. [Route("v{version:apiVersion}/[controller]")]
  16. public class RequestController:ControllerBase
  17. {
  18. private readonly IMediator _mediator;
  19. public RequestController(IMediator mediator)
  20. {
  21. _mediator = mediator;
  22. }
  23. [HttpGet]
  24. public async Task<List<Request>> GetRequests() =>
  25. await _mediator.Send(new GetAllRequestsQuery());
  26. [HttpGet("{id}")]
  27. public async Task<Request> GetRequestById(string id) =>
  28. await _mediator.Send(new GetRequestQuery(id));
  29. // get all rooms for which exist at least one request from customer
  30. [HttpGet("request-rooms")]
  31. public async Task<ActionResult<List<RequestRoomReadDTO>>> GetRoomsForWhichRequestExist() =>
  32. await _mediator.Send(new GetRoomsForWhichRequestExistQuery());
  33. [HttpGet("room-customers")]
  34. public async Task<ActionResult<List<CustomerRequestRoomReadDTO>>> GetCustomersForSpecificRequestRoom(string id) =>
  35. await _mediator.Send(new GetSendersForSpecificRequestRoomQuery(id));
  36. //public async Task<ActionResult> AcceptCustomerRequest(AcceptCustomerRequestCommand request)
  37. [HttpPost("accept-request")]
  38. public async Task<ActionResult> AcceptCustomerRequest(AcceptCustomerDTO acceptCustomerDTO)
  39. {
  40. //var id = await _mediator.Send(request);
  41. var id = await _mediator.Send(new AcceptCustomerRequestCommand(acceptCustomerDTO.customerId, acceptCustomerDTO.roomId));
  42. return Ok(id);
  43. }
  44. [HttpPost("reject-request")]
  45. public async Task<ActionResult> RejectCustomerRequest(AcceptCustomerDTO acceptCustomerDTO)
  46. {
  47. var id = await _mediator.Send(new RejectCustomerRequestCommand(acceptCustomerDTO.customerId, acceptCustomerDTO.roomId));
  48. return Ok(id);
  49. }
  50. [HttpPost("join-request")]
  51. public async Task<IActionResult> CreateRequest(RequestCreateDTO req)
  52. {
  53. var request = await _mediator.Send(new CreateRequestCommand(req));
  54. return CreatedAtAction(nameof(RequestController.CreateRequest), new { id = request.Id }, request);
  55. }
  56. }
  57. }