comparison src/lib/User.luan @ 30:f4708943f29e

add heartbeat
author Franklin Schmidt <fschmidt@gmail.com>
date Sat, 09 Nov 2024 19:17:21 -0700
parents b8b12fd8be22
children e2b7f6393dab
comparison
equal deleted inserted replaced
29:5beadcd541aa 30:f4708943f29e
15 local lucene_quote = Lucene.quote or error() 15 local lucene_quote = Lucene.quote or error()
16 local Http = require "luan:http/Http.luan" 16 local Http = require "luan:http/Http.luan"
17 local Db = require "site:/lib/Db.luan" 17 local Db = require "site:/lib/Db.luan"
18 local run_in_transaction = Db.run_in_transaction or error() 18 local run_in_transaction = Db.run_in_transaction or error()
19 local Chat = require "site:/lib/Chat.luan" 19 local Chat = require "site:/lib/Chat.luan"
20 local chat_search = Chat.search or error()
20 local Logging = require "luan:logging/Logging.luan" 21 local Logging = require "luan:logging/Logging.luan"
21 local logger = Logging.logger "User" 22 local logger = Logging.logger "User"
22 23
23 24
24 local User = {} 25 local User = {}
50 end 51 end
51 52
52 function user.delete() 53 function user.delete()
53 run_in_transaction( function() 54 run_in_transaction( function()
54 local id = user.id 55 local id = user.id
55 local chats = Chat.search("chat_user_ids:"..id) 56 local chats = chat_search("chat_user_ids:"..id)
56 for _, chat in ipairs(chats) do 57 for _, chat in ipairs(chats) do
57 chat.delete() 58 chat.delete()
58 end 59 end
59 Db.delete("id:"..id) 60 Db.delete("id:"..id)
60 end ) 61 end )
64 local id = to_string(user.id) 65 local id = to_string(user.id)
65 Http.response.set_persistent_cookie("user",id) 66 Http.response.set_persistent_cookie("user",id)
66 Http.response.set_persistent_cookie("password",user.password) 67 Http.response.set_persistent_cookie("password",user.password)
67 Http.request.cookies.user = id 68 Http.request.cookies.user = id
68 Http.request.cookies.password = user.password or error() 69 Http.request.cookies.password = user.password or error()
70 end
71
72 function user.last_update()
73 local chats = chat_search( "chat_user_ids:"..user.id, "chat_updated desc", 1 )
74 local n = #chats
75 if n == 0 then
76 return 0
77 elseif n == 1 then
78 return chats[1].updated
79 else error() end
69 end 80 end
70 81
71 return user 82 return user
72 end 83 end
73 84