All Known Implementing Classes:
ConversationController

public interface ConversationApi
API contract for all conversation related endpoints. Contains endpoint mappings and parameter annotations.
  • Method Details

    • getConversationById

      @GetMapping(value="/user-communication/conversations/{conversationId}", produces="application/json") @ResponseStatus(OK) OutputConversationDto getConversationById(@PathVariable UUID conversationId)
    • getRecentConversationsForUser

      @ResponseStatus(OK) @GetMapping(value="/user-communication/conversations/recent/user", produces="application/json") org.springframework.data.domain.Page<OutputConversationDto> getRecentConversationsForUser(@RequestParam(name="pageNumber",defaultValue="0",required=false) @PositiveOrZero @jakarta.validation.constraints.PositiveOrZero int pageNumber, @RequestParam(name="pageSize",defaultValue="10",required=false) @Positive @jakarta.validation.constraints.Positive int pageSize, @RequestParam(name="sort",defaultValue="lastActivity",required=false) String sort, @RequestParam(name="direction",defaultValue="DESC",required=false) org.springframework.data.domain.Sort.Direction direction)
    • getConversationParticipants

      @GetMapping(value="/user-communication/conversations/{conversationId}/participants", produces="application/json") @ResponseStatus(OK) List<OutputConversationParticipantDto> getConversationParticipants(@PathVariable UUID conversationId)
    • leaveConversation

      @PostMapping("/user-communication/conversations/{conversationId}/leave") @ResponseStatus(NO_CONTENT) void leaveConversation(@PathVariable UUID conversationId)
    • muteConversation

      @PostMapping("/user-communication/conversations/{conversationId}/mute") @ResponseStatus(NO_CONTENT) void muteConversation(@PathVariable UUID conversationId, @RequestBody InputMuteConversationDto request)
    • markConversationAsRead

      @PostMapping("/user-communication/conversations/{conversationId}/read") @ResponseStatus(NO_CONTENT) void markConversationAsRead(@PathVariable("conversationId") UUID conversationId)
      Mark all messages as read for a user in a conversation.
      Parameters:
      conversationId - the conversation id
    • markConversationUptoMessageAsRead

      @PostMapping("/user-communication/conversations/{conversationId}/read-upto/{messageId}") @ResponseStatus(NO_CONTENT) void markConversationUptoMessageAsRead(@PathVariable("conversationId") UUID conversationId, @PathVariable("messageId") UUID messageId)
      Mark all messages as read for a user in a conversation upto the provided message.
      Parameters:
      conversationId - the conversation id
      messageId - the message id
    • markBulkMessagesAsRead

      @PostMapping("/user-communication/conversations/{conversationId}/read-bulk") @ResponseStatus(NO_CONTENT) void markBulkMessagesAsRead(@PathVariable("conversationId") UUID conversationId, @RequestBody @Valid @Valid InputBulkMessagesDto request)
      Mark one or more messages as read for a user in a conversation.
      Parameters:
      conversationId - the conversation id
      request - the request containing the messages ids to mark as read
    • searchConversations

      @GetMapping(value="/user-communication/conversations/search", produces="application/json") OutputSearchResultDto searchConversations(@RequestParam(name="query") String query, @RequestParam(name="pageNumber",defaultValue="0",required=false) @PositiveOrZero @jakarta.validation.constraints.PositiveOrZero int pageNumber, @RequestParam(name="pageSize",defaultValue="10",required=false) @Positive @jakarta.validation.constraints.Positive int pageSize, @RequestParam(name="sort",defaultValue="createdAt",required=false) String sort, @RequestParam(name="direction",defaultValue="DESC",required=false) org.springframework.data.domain.Sort.Direction direction)
    • getConversationStats

      @GetMapping(value="/user-communication/conversations/stats", produces="application/json") @ResponseStatus(OK) OutputConversationStatsDto getConversationStats()
    • getConversationMessages

      @GetMapping(value="/user-communication/conversations/{conversationId}/messages", produces="application/json") @ResponseStatus(OK) org.springframework.data.domain.Page<OutputChatMessageDto> getConversationMessages(@PathVariable UUID conversationId, @RequestParam(name="pageNumber",defaultValue="0",required=false) @PositiveOrZero @jakarta.validation.constraints.PositiveOrZero int pageNumber, @RequestParam(name="pageSize",defaultValue="10",required=false) @Positive @jakarta.validation.constraints.Positive int pageSize, @RequestParam(name="sort",defaultValue="createdAt",required=false) String sort, @RequestParam(name="direction",defaultValue="ASC",required=false) org.springframework.data.domain.Sort.Direction direction)
    • getUnreadMessageSummary

      @GetMapping(value="/user-communication/conversations/unread/user", produces="application/json") @ResponseStatus(OK) OutputUnreadMessageSummaryDto getUnreadMessageSummary()