Class MatrixRest

java.lang.Object
io.meeds.chat.rest.MatrixRest
All Implemented Interfaces:
org.exoplatform.services.rest.resource.ResourceContainer

@RestController @RequestMapping("/matrix") public class MatrixRest extends Object implements org.exoplatform.services.rest.resource.ResourceContainer
  • Constructor Details

    • MatrixRest

      public MatrixRest()
  • Method Details

    • getMatrixRoomBySpaceId

      @GetMapping @Secured("users") public RoomEntity getMatrixRoomBySpaceId(jakarta.servlet.http.HttpServletRequest request, @RequestParam(name="spaceId") String spaceId)
    • getDirectMessagingRoom

      @GetMapping("dmRoom") @Secured("users") public RoomEntity getDirectMessagingRoom(jakarta.servlet.http.HttpServletRequest request, @RequestParam(name="firstParticipant") String firstParticipant, @RequestParam(name="secondParticipant") String secondParticipant)
    • createDirectMessagingRoom

      @PostMapping @Secured("users") public RoomEntity createDirectMessagingRoom(jakarta.servlet.http.HttpServletRequest request, @RequestBody Room room)
    • notify

      @PostMapping("notify") public String notify(@RequestBody String notification)
      This API is used by Matrix server to notify the Meeds server that a user has a new notification This API is used as a Push Gateway for Matrix server
      Parameters:
      notification -
      Returns:
    • linkSpaceToRoom

      @GetMapping("linkRoom") @Secured("users") public boolean linkSpaceToRoom(@RequestParam("spaceGroupId") String spaceGroupId, @RequestParam(name="roomId") String roomId, @RequestParam(name="create",required=false) Boolean create)
    • getUserDirectMessagingRooms

      @GetMapping("dmRooms") @Secured("users") public Map<String,String[]> getUserDirectMessagingRooms(@RequestParam(name="user") String user)
    • getByRoomId

      @GetMapping("byRoom") @Secured("users") public String getByRoomId(@RequestParam(name="roomId") String roomId)
    • getRoomById

      @GetMapping("byRoomId") @Secured("users") public org.springframework.http.ResponseEntity<RoomEntity> getRoomById(jakarta.servlet.http.HttpServletRequest request, org.springframework.web.context.request.WebRequest webRequest, @RequestParam(name="roomId") String roomId)
    • getRoomBySpaceId

      @GetMapping("spaceRoom") @Secured("users") public org.springframework.http.ResponseEntity<RoomEntity> getRoomBySpaceId(jakarta.servlet.http.HttpServletRequest request, org.springframework.web.context.request.WebRequest webRequest, @RequestParam(name="spaceId") long spaceId)
    • processRooms

      @PostMapping("processRooms") @Secured("users") public org.springframework.http.ResponseEntity<RoomList> processRooms(jakarta.servlet.http.HttpServletRequest request, @RequestBody RoomList rooms)
    • updatePresenceStatus

      @PutMapping("setStatus") @Secured("users") public org.springframework.http.ResponseEntity<String> updatePresenceStatus(@RequestBody Presence presence)
    • syncUsersAndSpaces

      @GetMapping("sync") @Secured("administrators") public org.springframework.http.ResponseEntity<String> syncUsersAndSpaces()
    • getParticipantInfo

      @GetMapping("participant/{userId}") @Secured("users") public org.springframework.http.ResponseEntity<?> getParticipantInfo(@PathVariable("userId") String userId)
    • enableChat

      @PutMapping("enable/{spaceId}") @Secured("users") public org.springframework.http.ResponseEntity<String> enableChat(jakarta.servlet.http.HttpServletRequest request, @PathVariable("spaceId") String spaceId)
    • disableChat

      @PutMapping("disable/{spaceId}") @Secured("users") public org.springframework.http.ResponseEntity<String> disableChat(jakarta.servlet.http.HttpServletRequest request, @PathVariable("spaceId") String spaceId)
    • getNotification

      @PutMapping("notification/{roomId}/{eventId}/{ts}") @Secured("users") public io.meeds.pwa.model.PwaNotificationMessage getNotification(jakarta.servlet.http.HttpServletRequest request, @PathVariable("roomId") String roomId, @PathVariable("eventId") String eventId, @PathVariable("ts") String timeStamp, @RequestBody(required=false) String accessToken)
    • muteRoom

      @PostMapping("/muteRoom") @Secured("users") public org.springframework.http.ResponseEntity<String> muteRoom(jakarta.servlet.http.HttpServletRequest request, @RequestParam(name="roomId") String roomId)
    • isPushNotificationsEnabled

      @GetMapping("/isPushNotificationsEnabled/{userName}") @Secured("users") public org.springframework.http.ResponseEntity<String> isPushNotificationsEnabled(jakarta.servlet.http.HttpServletRequest request, @PathVariable("userName") String userName)
    • updatePushNotificationsSettings

      @PostMapping("/enablePushNotificationsSettings") @Secured("users") public org.springframework.http.ResponseEntity<String> updatePushNotificationsSettings(jakarta.servlet.http.HttpServletRequest request, @RequestBody String pushNotificationSetting)
    • processRooms

      public RoomList processRooms(RoomList roomList, String currentUserName)
      Process the Matrix rooms and adds the missing information of users and spaces
      Parameters:
      roomList - the room list received from Matrix par sync API
      currentUserName - the current user
      Returns:
      the roo List after processing