aboutsummaryrefslogtreecommitdiff
path: root/db.c
diff options
context:
space:
mode:
Diffstat (limited to 'db.c')
-rw-r--r--db.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/db.c b/db.c
index a349b44..e2dd6f1 100644
--- a/db.c
+++ b/db.c
@@ -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;