summaryrefslogtreecommitdiff
path: root/bucky/db/index.js
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2017-12-15 02:43:51 +0100
committerJules Laplace <julescarbon@gmail.com>2017-12-15 02:43:51 +0100
commit1466563673ffe6c41ec9a18bf98565b8562ee4f3 (patch)
tree1eb576380877d3231910ccbb634f33906210ab3f /bucky/db/index.js
parent0541e7d7457d646dceca375b7fa6e1f382232772 (diff)
thread_users hackery
Diffstat (limited to 'bucky/db/index.js')
-rw-r--r--bucky/db/index.js35
1 files changed, 34 insertions, 1 deletions
diff --git a/bucky/db/index.js b/bucky/db/index.js
index 8715125..36e5c93 100644
--- a/bucky/db/index.js
+++ b/bucky/db/index.js
@@ -15,6 +15,10 @@ var Thread = db.Thread = bookshelf.Model.extend({
tableName: 'threads',
hasTimestamps: false,
})
+var ThreadUser = db.ThreadUser = bookshelf.Model.extend({
+ tableName: 'thread_users',
+ hasTimestamps: false,
+})
var Comment = db.Comment = bookshelf.Model.extend({
tableName: 'comments',
hasTimestamps: false,
@@ -50,11 +54,17 @@ db.getUser = function(id) {
var model = new User({'id': id})
return model.fetch()
}
+db.getUsersById = function(ids){
+ return User.where("id", "in", ids).fetchAll()
+}
+db.getUsernamesById = function(ids){
+ return User.column("id").column("username").where("id", "in", ids).fetchAll()
+}
db.getUserByUsername = function(username) {
return new User({'username': username}).fetch()
}
db.getLastlog = function(limit){
- return knex.column('username').column('lastseen').select().from('users').orderBy('lastseen', 'desc').limit(limit || 10)
+ return knex.column('id').column('username').column('lastseen').select().from('users').orderBy('lastseen', 'desc').limit(limit || 10)
}
/* THREADS */
@@ -83,6 +93,29 @@ db.updateThread = function(data){
db.destroyThread = function(id){
}
+/* THREAD USERS (user privacy) */
+db.addUserToThread = function(user_id, thread_id){
+ return new ThreadUser({ user_id, thread_id }).save()
+}
+db.removeUserFromThread = function(user_id, thread_id){
+ return new ThreadUser({ user_id, thread_id }).destroy()
+}
+db.getThreadUserIds = function(thread_id){
+ return ThreadUser.column("user_id").query("where", "thread_id", "=", thread_id).fetch()
+}
+db.getThreadUsers = function(thread_id){
+ return db.getThreadUserIds(thread_id).then(thread_users => {
+ if (! thread_users.length) return []
+ var user_ids = thread_users.pluck("user_id")
+ return db.getUsernamesById(user_ids).then(usernames => {
+ return usernames
+ })
+ })
+}
+db.getUserThreadIds = function(user_id){
+ return ThreadUser.query("where", "user_id", "=", user_id).fetch()
+}
+
/* FILES */
db.getFilesForThread = function (id){