--- tags : client, protocols --- # Client-Server protocol This page gives an overview of the API of the chat server. ## New user ```typescript export const newUserRequestSchema = requestSchema.extend({ action: z.literal(ActionEnum.NEWUSER), UserNick: userNickSchema, email: emailSchema, password: passwordSchema, }); export type newUserRequest = z.infer<typeof newUserRequestSchema>; export const newUserResponseSchema = responseSchema.extend({ action: z.literal(ActionEnum.NEWUSER), userId: userIdSchema, }); export type newUserResponse = z.infer<typeof newUserResponseSchema>; ``` - Login (LoginRequest) - als email + ww kloppen -> user wordt ingelogd : LoginResponce - als email niet bestaat : error -> error : serverErrorResponse - als wachtwoord niet kopt : error : serverErrorResponse - Get channels (getChannelsRequest) - user is nog niet ingelogd -> error : serverErrorResponse - channels worden doorgegeven : getChannelsResponce - Create channel (createChannelRequest) - user is nog niet ingelogd -> error : serverErrorResponse - channel name bestaat al -> error : serverErrorResponse - channel wordt gemaakt : createChannelResponse - Change channel (changeChannelRequest) - user is niet ingelogd -> error : serverErrorResponse - channelId bestaat niet -> error : serverErrorResponse - user wordt toegevoegd aan de channel -> changeChannelResponse - Delete channel (deleteChannelRequest) - user is niet ingelogd -> error : serverErrorResponse - channelId bestaat niet -> error : serverErrorResponse - user is niet de owner van de channel -> error : serverErrorResponse - channel wordt verwijderd : deleteChannelResponse - interface om aantal messages op te vragen (van, tot) - Protocols types - Command : set/choose nickname - Command : join channel - Command : create and join channel - (Command : see older messages from channel) - Message : from other people - Message : older messages from chatroom - Message : Own message with timings