// POST -> api/createRoom | roomName in form data public static ResponseData CreateRoom(Session session, Dictionary <string, string> kwargs) { string roomName = kwargs["roomName"]; Guid userID = Guid.Parse(session.SessionData["UserID"]); ChatRoom chatRoom = new ChatRoom() { Name = roomName, IDList = new List <Guid>() { userID } }; JSONFileService.Add(chatRoom); JSONFileService.Update <User>(userID, chatRoom.ID); string status = string.Format("Created chatroom {0}", roomName); return(new ResponseData() { ContentType = "text", Encoding = Encoding.UTF8, Data = Encoding.UTF8.GetBytes(status), Status = ServerStatus.OK, Complete = true }); }
// GET -> api/seticon | icon in params public static ResponseData SetIcon(Session session, Dictionary <string, string> kwargs) { string icon = kwargs["icon"]; JSONFileService.Update(Guid.Parse(session.SessionData["UserID"]), icon); JSONPacket jp = new JSONPacket() { HasIcon = true, Redirect = "/welcome" }; return(new ResponseData() { Data = Encoding.UTF8.GetBytes(jp.ToString()), Complete = true, ContentType = "text/json", Encoding = Encoding.UTF8, Status = ServerStatus.OK }); }
// GET -> api/join?id=... public static ResponseData JoinRoom(Session session, Dictionary <string, string> kwargs) { Guid RoomId; ServerStatus status = ServerStatus.UnknownType; if (Guid.TryParse(kwargs["id"], out RoomId)) { Guid UserID = Guid.Parse(session.SessionData["UserID"]); JSONFileService.Update <ChatRoom>(RoomId, UserID); JSONFileService.Update <User>(UserID, RoomId); status = ServerStatus.OK; } return(new ResponseData() { Complete = true, ContentType = "text/json", Encoding = Encoding.UTF8, Status = status, Data = new byte[] {} }); }
// POST -> api/messages | message text and user icon in form data public static ResponseData AddMessage(Session session, Dictionary <string, string> kwargs) { string currRoom; if (session.SessionData.TryGetValue("currentRoom", out currRoom)) { string messageBody = kwargs["message"]; string icon = kwargs["icon"]; Message message = new Message() { Sender = session.SessionData["Username"], Body = messageBody, TimeSent = DateTime.Now, Icon = icon }; JSONFileService.Update(Guid.Parse(currRoom), message); kwargs["id"] = currRoom; return(GetMessages(session, kwargs)); } return(new ResponseData() { Status = ServerStatus.ServerError, Complete = true }); }