Interface ConversationApi
- All Known Implementing Classes:
ConversationController
public interface ConversationApi
API contract for all conversation related endpoints.
Contains endpoint mappings and parameter annotations.
-
Method Summary
Modifier and TypeMethodDescriptiongetConversationById(UUID conversationId) org.springframework.data.domain.Page<OutputChatMessageDto> getConversationMessages(UUID conversationId, @jakarta.validation.constraints.PositiveOrZero int pageNumber, @jakarta.validation.constraints.Positive int pageSize, String sort, org.springframework.data.domain.Sort.Direction direction) getConversationParticipants(UUID conversationId) org.springframework.data.domain.Page<OutputConversationDto> getRecentConversationsForUser(@jakarta.validation.constraints.PositiveOrZero int pageNumber, @jakarta.validation.constraints.Positive int pageSize, String sort, org.springframework.data.domain.Sort.Direction direction) voidleaveConversation(UUID conversationId) voidmarkBulkMessagesAsRead(UUID conversationId, @Valid InputBulkMessagesDto request) Mark one or more messages as read for a user in a conversation.voidmarkConversationAsRead(UUID conversationId) Mark all messages as read for a user in a conversation.voidmarkConversationUptoMessageAsRead(UUID conversationId, UUID messageId) Mark all messages as read for a user in a conversation upto the provided message.voidmuteConversation(UUID conversationId, InputMuteConversationDto request) searchConversations(String query, @jakarta.validation.constraints.PositiveOrZero int pageNumber, @jakarta.validation.constraints.Positive int pageSize, String sort, org.springframework.data.domain.Sort.Direction direction)
-
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 idmessageId- 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 idrequest- 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()
-