From a7a5b95990e0d6c1617c796dba2c45dab816161d Mon Sep 17 00:00:00 2001 From: tomsmeding Date: Tue, 14 Mar 2017 14:06:14 +0100 Subject: Inviting --- command.c | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) (limited to 'command.c') diff --git a/command.c b/command.c index 9d5e2e8..30d2223 100644 --- a/command.c +++ b/command.c @@ -95,7 +95,7 @@ static bool cmd_register(struct conn_data *data,const char *tag,const char **arg static bool cmd_login(struct conn_data *data,const char *tag,const char **args){ i64 userid=db_find_user(args[0]); if(userid==-1){ - send_error(data->fd,tag,"Username does not exist"); + send_error(data->fd,tag,"User not found"); return false; } char *pass=db_get_pass(userid); @@ -144,6 +144,32 @@ static bool cmd_create_room(struct conn_data *data,const char *tag,const char ** return closed; } +static bool cmd_invite(struct conn_data *data,const char *tag,const char **args){ + if(data->userid==-1){ + send_error(data->fd,tag,"Not logged in"); + return false; + } + i64 roomid=db_find_room(args[0]); + if(roomid==-1){ + send_error(data->fd,tag,"Room not found"); + return false; + } + + i64 user2=db_find_user(args[1]); + if(user2==-1){ + send_error(data->fd,tag,"User not found"); + return false; + } + + if(!db_is_member(roomid,data->userid)){ + send_error(data->fd,tag,"Not in that room"); + return false; + } + + db_add_member(roomid,user2); + return send_ok(data->fd,tag); +} + struct cmd_info{ const char *cmdname; @@ -157,6 +183,7 @@ static const struct cmd_info commands[]={ {"login",2,true,cmd_login}, {"list_rooms",0,false,cmd_list_rooms}, {"create_room",0,false,cmd_create_room}, + {"invite",2,false,cmd_invite}, }; #define NCOMMANDS (sizeof(commands)/sizeof(commands[0])) -- cgit v1.2.3-70-g09d2