Table of Contents

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

ArchiveContact(string)

[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>

AssignContact(string, ContactAssignRequestDto)

[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>

CreateContact(ContactCreationRequestDto)

[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>

CreateContactCall(string, ContactCallCreationRequestDto)

[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>

DeleteContact(string)

[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>

DeleteContactCall(string, string)

[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>

GetArchivedContacts(PaginationFilter?, SortingOrder?, SortingOrder?, SortingOrder?)

[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>

GetAssignees()

[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>

GetContact(string)

[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>

GetContacts(PaginationFilter?, SortingOrder?, SortingOrder?, SortingOrder?)

[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>

GetMyContacts(PaginationFilter?, SortingOrder?, SortingOrder?, SortingOrder?)

[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>

GetOthersContacts(PaginationFilter?, SortingOrder?, SortingOrder?, SortingOrder?)

[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>

ModifyContact(string, ContactModificationRequestDto)

[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>

SelfAssignContact(string)

[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>

SendContactEmail(string, ContactSendEmailDto)

[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>

UpdateContactCall(string, string, ContactCallUpdateRequestDto)

[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>