diff options
Diffstat (limited to 'db.c')
-rw-r--r-- | db.c | 18 |
1 files changed, 18 insertions, 0 deletions
@@ -453,6 +453,24 @@ bool db_delete_token(i64 userid,const char *token){ return success; } +bool db_user_knows_user(i64 userid1, i64 userid2) { + assert(userid1 != -1 && userid2 != -1); + static sqlite3_stmt *stmt = NULL; + if (!stmt) { + SQLITE(prepare_v2, database, + "select count(*) > 0 " + "from Members as A, Members as B " + "where A.room = B.room and A.user = ? and B.user = ?" + ,-1, &stmt, NULL); + } + SQLITE(bind_int64, stmt, 1, userid1); + SQLITE(bind_int64, stmt, 2, userid2); + assert(sqlite3_step(stmt) == SQLITE_ROW); + bool found = sqlite3_column_int(stmt, 0) == 1; + reset_stmt(stmt); + return found; +} + i64 db_create_message(i64 roomid,i64 userid,i64 timestamp,i64 replyid,const char *message){ static sqlite3_stmt *stmt = NULL; |