Mercurial Hosting > chat
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 |