Class ContactController
- Namespace
- GastroSky.Controllers.V1
- Assembly
- GastroSky.dll
[ApiController]
[Authorize]
[Route("api/v1/contacts")]
[Produces("application/json", new string[] { })]
public class ContactController : GastroSkyControllerBase
- Inheritance
-
ContactController
- Inherited Members
-
Constructors
ContactController(GastroSkyDatabaseContext, ISlugGenerator, IMapper, ILogger<ContactController>, IEmailGenerator, IEmailSenderGastroSky)
public ContactController(GastroSkyDatabaseContext db, ISlugGenerator slugGenerator, IMapper mapper, ILogger<ContactController> logger, IEmailGenerator emailGenerator, IEmailSenderGastroSky emailSenderGastroSky)
Parameters
db GastroSkyDatabaseContext
slugGenerator ISlugGenerator
mapper IMapper
logger ILogger<ContactController>
emailGenerator IEmailGenerator
emailSenderGastroSky IEmailSenderGastroSky
Methods
[HttpPut]
[Authorize(Policy = "https://api.gastrosky.ch/identity/claims/resources/contacts:W")]
[Route("{slug}/archive")]
[ProducesResponseType<ResponseBodyDto<ContactResponseDto>>(200)]
public Task<IActionResult> ArchiveContact(string slug)
Parameters
slug string
Returns
- Task<IActionResult>
[HttpPut]
[Authorize(Policy = "https://api.gastrosky.ch/identity/claims/resources/contacts:W")]
[Route("{slug}/assign")]
[ProducesResponseType<ResponseBodyDto<ContactResponseDto>>(200)]
public Task<IActionResult> AssignContact(string slug, ContactAssignRequestDto dto)
Parameters
slug string
dto ContactAssignRequestDto
Returns
- Task<IActionResult>
[HttpPost]
[Authorize(Policy = "https://api.gastrosky.ch/identity/claims/resources/contacts:W")]
[Route("")]
[ProducesResponseType(400)]
[ProducesResponseType(403)]
[ProducesResponseType(500)]
[ProducesResponseType<ResponseBodyDto<ContactResponseDto>>(200)]
public Task<IActionResult> CreateContact(ContactCreationRequestDto dto)
Parameters
dto ContactCreationRequestDto
Returns
- Task<IActionResult>
[HttpPost]
[Authorize(Policy = "https://api.gastrosky.ch/identity/claims/resources/contacts:R")]
[Route("{contactSlug}/call")]
[ProducesResponseType<ResponseBodyDto<ContactCallResponseDto>>(200)]
public Task<IActionResult> CreateContactCall(string contactSlug, ContactCallCreationRequestDto dto)
Parameters
contactSlug string
dto ContactCallCreationRequestDto
Returns
- Task<IActionResult>
[HttpDelete]
[Authorize(Policy = "https://api.gastrosky.ch/identity/claims/resources/contacts:W")]
[Route("{slug}")]
[ProducesResponseType(200)]
public Task<IActionResult> DeleteContact(string slug)
Parameters
slug string
Returns
- Task<IActionResult>
[HttpDelete]
[Authorize(Policy = "https://api.gastrosky.ch/identity/claims/resources/contacts:R")]
[Route("{contactSlug}/call/{contactCallSlug}")]
[ProducesResponseType<ResponseBodyDto<ContactCallResponseDto>>(200)]
public Task<IActionResult> DeleteContactCall(string contactSlug, string contactCallSlug)
Parameters
contactSlug string
contactCallSlug string
Returns
- Task<IActionResult>
[HttpGet]
[Authorize(Policy = "https://api.gastrosky.ch/identity/claims/resources/contacts:R")]
[Route("archived")]
[ProducesResponseType<ResponseBodyDto<ContactReducedResponseDto>>(200)]
public Task<IActionResult> GetArchivedContacts(PaginationFilter? paginationFilter = null, SortingOrder? sortName = null, SortingOrder? sortToContactAgainOnTimestampUTC = null, SortingOrder? sortLastModificationTimestampUTC = null)
Parameters
paginationFilter PaginationFilter
sortName SortingOrder?
sortToContactAgainOnTimestampUTC SortingOrder?
sortLastModificationTimestampUTC SortingOrder?
Returns
- Task<IActionResult>
[HttpGet]
[Authorize(Policy = "https://api.gastrosky.ch/identity/claims/resources/contacts:R")]
[Route("assignees")]
[ProducesResponseType<ResponseBodyDto<UserReducedResponseDto>>(200)]
public Task<IActionResult> GetAssignees()
Returns
- Task<IActionResult>
[HttpGet]
[Authorize(Policy = "https://api.gastrosky.ch/identity/claims/resources/contacts:R")]
[Route("{slug}")]
[ProducesResponseType<ResponseBodyDto<ContactReducedResponseDto>>(200)]
public Task<IActionResult> GetContact(string slug)
Parameters
slug string
Returns
- Task<IActionResult>
[HttpGet]
[Authorize(Policy = "https://api.gastrosky.ch/identity/claims/resources/contacts:R")]
[Route("")]
[ProducesResponseType<ResponseBodyDto<ContactReducedResponseDto>>(200)]
public Task<IActionResult> GetContacts(PaginationFilter? paginationFilter = null, SortingOrder? sortName = null, SortingOrder? sortToContactAgainOnTimestampUTC = null, SortingOrder? sortLastModificationTimestampUTC = null)
Parameters
paginationFilter PaginationFilter
sortName SortingOrder?
sortToContactAgainOnTimestampUTC SortingOrder?
sortLastModificationTimestampUTC SortingOrder?
Returns
- Task<IActionResult>
[HttpGet]
[Authorize(Policy = "https://api.gastrosky.ch/identity/claims/resources/contacts:R")]
[Route("my")]
[ProducesResponseType<ResponseBodyDto<ContactReducedResponseDto>>(200)]
public Task<IActionResult> GetMyContacts(PaginationFilter? paginationFilter = null, SortingOrder? sortName = null, SortingOrder? sortToContactAgainOnTimestampUTC = null, SortingOrder? sortLastModificationTimestampUTC = null)
Parameters
paginationFilter PaginationFilter
sortName SortingOrder?
sortToContactAgainOnTimestampUTC SortingOrder?
sortLastModificationTimestampUTC SortingOrder?
Returns
- Task<IActionResult>
[HttpGet]
[Authorize(Policy = "https://api.gastrosky.ch/identity/claims/resources/contacts:R")]
[Route("others")]
[ProducesResponseType<ResponseBodyDto<ContactReducedResponseDto>>(200)]
public Task<IActionResult> GetOthersContacts(PaginationFilter? paginationFilter = null, SortingOrder? sortName = null, SortingOrder? sortToContactAgainOnTimestampUTC = null, SortingOrder? sortLastModificationTimestampUTC = null)
Parameters
paginationFilter PaginationFilter
sortName SortingOrder?
sortToContactAgainOnTimestampUTC SortingOrder?
sortLastModificationTimestampUTC SortingOrder?
Returns
- Task<IActionResult>
[HttpPut]
[Authorize(Policy = "https://api.gastrosky.ch/identity/claims/resources/contacts:R")]
[Route("{slug}")]
[ProducesResponseType<ResponseBodyDto<ContactResponseDto>>(200)]
public Task<IActionResult> ModifyContact(string slug, ContactModificationRequestDto dto)
Parameters
slug string
dto ContactModificationRequestDto
Returns
- Task<IActionResult>
[HttpPut]
[Authorize(Policy = "https://api.gastrosky.ch/identity/claims/resources/contacts:R")]
[Route("{slug}/self-assign")]
[ProducesResponseType<ResponseBodyDto<ContactResponseDto>>(200)]
public Task<IActionResult> SelfAssignContact(string slug)
Parameters
slug string
Returns
- Task<IActionResult>
[HttpPost]
[Route("{contactSlug}/send-email")]
[Authorize(Policy = "https://api.gastrosky.ch/identity/claims/resources/contacts:R")]
public Task<IActionResult> SendContactEmail(string contactSlug, ContactSendEmailDto dto)
Parameters
contactSlug string
dto ContactSendEmailDto
Returns
- Task<IActionResult>
[HttpPut]
[Authorize(Policy = "https://api.gastrosky.ch/identity/claims/resources/contacts:R")]
[Route("{contactSlug}/call/{contactCallSlug}")]
[ProducesResponseType<ResponseBodyDto<ContactCallResponseDto>>(200)]
public Task<IActionResult> UpdateContactCall(string contactSlug, string contactCallSlug, ContactCallUpdateRequestDto dto)
Parameters
contactSlug string
contactCallSlug string
dto ContactCallUpdateRequestDto
Returns
- Task<IActionResult>