head: tags: - chats summary: check if a chat room exists parameters: - in: path name: roomId schema: type: number required: true description: room ID to check example: 1 responses: '200': description: chat room found '404': description: chat room not found get: tags: - chats summary: get a chat room description: This operation retrieves a chat room's data including users and messages parameters: - in: path name: roomId schema: type: number required: true description: a valid chat room id example: 1 responses: '200': description: Chat room successfully retrieved content: application/json: schema: type: object properties: status: $ref: ../../components/schemas/Status.yaml#/Status response: allOf: - $ref: ../../components/schemas/Chats.yaml#/RoomObject - $ref: ../../components/schemas/Chats.yaml#/MessageObject - type: object properties: isOwner: type: boolean users: type: array items: type: object properties: uid: type: number description: A user identifier username: type: string description: A friendly name for a given user account picture: nullable: true type: string status: type: string displayname: type: string description: This is either username or fullname depending on forum and user settings icon:text: type: string description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar icon:bgColor: type: string description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon example: "#f44336" isOwner: type: boolean canReply: type: boolean groupChat: type: boolean usernames: type: string description: User-friendly depiction of the users within the chat room maximumUsersInChatRoom: type: number maximumChatMessageLength: type: number showUserInput: type: boolean isAdminOrGlobalMod: type: boolean post: tags: - chats summary: send a chat message description: This operation sends a chat message to a chat room parameters: - in: path name: roomId schema: type: number required: true description: a valid chat room id example: 1 requestBody: required: true content: application/json: schema: type: object properties: message: type: string example: This is a test message required: - message responses: '200': description: message successfully sent content: application/json: schema: type: object properties: status: $ref: ../../components/schemas/Status.yaml#/Status response: allOf: - $ref: ../../components/schemas/Chats.yaml#/MessageObject - type: object properties: self: type: number description: Whether or not the message was sent by the calling user (which if you're using this route, will always be 1) newSet: type: boolean description: Whether the message is considered part of a new "set" of messages. It is used in the frontend UI for explicitly denoting that a time gap existed between messages. cleanedContent: type: string mid: type: number