QueueController

@RestController
@RequestMapping(value = ["/api/v1/queues"])
class QueueController(queueService: QueueService, toDoService: ToDoTaskService)

Controller with endpoints to work with queues

Constructors

Link copied to clipboard
constructor(queueService: QueueService, toDoService: ToDoTaskService)

Functions

Link copied to clipboard
@PostMapping(value = ["/{queueId}/activity"])
@ResponseStatus(value = HttpStatus.OK)
fun changeQueueActivity(@RequestHeader(value = "user-token") token: String, @PathVariable queueId: Long, @RequestBody queueActivityDto: QueueActivityDto)

POST endpoint for freezing a queue and making it inactive

Link copied to clipboard
@PostMapping(value = ["/{queueId}/complete"])
@ResponseStatus(value = HttpStatus.OK)
fun completeTask(@RequestHeader(value = "user-token") token: String, @PathVariable queueId: Long, @RequestBody expensesDto: ExpensesDto?)

POST endpoint for completing to-do task

Link copied to clipboard
@PostMapping
@ResponseStatus(value = HttpStatus.OK)
fun createQueue(@RequestHeader(value = "user-token") token: String, @RequestBody queue: NewQueueDto): QueueDetailsDto

POST endpoint for creating new queue

Link copied to clipboard
@DeleteMapping(value = ["/{queueId}"])
@ResponseStatus(value = HttpStatus.OK)
fun deleteQueue(@RequestHeader(value = "user-token") token: String, @PathVariable queueId: Long)

DELETE endpoint for deleting or leaving a queue (depends on whether a user is admin of this queue)

Link copied to clipboard
@PatchMapping(value = ["/{queueId}"])
@ResponseStatus(value = HttpStatus.OK)
fun editQueue(@RequestHeader(value = "user-token") token: String, @PathVariable queueId: Long, @RequestBody queue: EditQueueDto): QueueDetailsDto

PATCH endpoint for editing existing queue

Link copied to clipboard
@GetMapping(value = ["/{queueId}"])
fun getQueueById(@RequestHeader(value = "user-token") token: String, @PathVariable queueId: Long): QueueDetailsDto

GET endpoint for queue details

Link copied to clipboard
@PostMapping(value = ["/{queueId}/invitation"])
fun getQueueInviteCode(@RequestHeader(value = "user-token") token: String, @PathVariable queueId: Long): QueueInviteCodeDto

GET endpoint for creating and returning queue's invite codes

Link copied to clipboard
@GetMapping
fun getQueues(@RequestHeader(value = "user-token") token: String, sort: String?): QueuesListDto

GET endpoint for listing all queues

Link copied to clipboard
@GetMapping(value = ["/tasks"])
fun getToDoTasks(@RequestHeader(value = "user-token") token: String): ToDoTasksListDto

GET endpoint for listing user to-do tasks

Link copied to clipboard
@ExceptionHandler(value = [IllegalArgumentException::class])
fun handleBadRequest(e: IllegalArgumentException): ResponseEntity<String>

Exception bad request handler

Link copied to clipboard
@ExceptionHandler(value = [NoSuchElementException::class])
fun handleNotFound(e: NoSuchElementException): ResponseEntity<String>

Exception not found handler

Link copied to clipboard
@PostMapping(value = ["/join"])
@ResponseStatus(value = HttpStatus.OK)
fun joinQueue(@RequestHeader(value = "user-token") token: String, @RequestBody queue: QueueInviteCodeDto): QueueDetailsDto

POST endpoint for joining a queue

Link copied to clipboard
@PostMapping(value = ["/{queueId}/shake"])
@ResponseStatus(value = HttpStatus.OK)
fun shakeUser(@RequestHeader(value = "user-token") token: String, @PathVariable queueId: Long)

POST endpoint for sending notification to a user who is on duty for a particular queue

Link copied to clipboard
@PostMapping(value = ["/{queueId}/skip"])
@ResponseStatus(value = HttpStatus.OK)
fun skipTask(@RequestHeader(value = "user-token") token: String, @PathVariable queueId: Long)

POST endpoint for skipping to-do task