Mercurial Hosting > chat
comparison src/chat.html.luan @ 17:7230c821c368
push fixes
| author | Franklin Schmidt <fschmidt@gmail.com> |
|---|---|
| date | Mon, 04 Nov 2024 14:44:35 -0700 |
| parents | 8b8905f63d80 |
| children | dade6a560494 |
comparison
equal
deleted
inserted
replaced
| 16:82b55186a4a0 | 17:7230c821c368 |
|---|---|
| 12 local Shared = require "site:/lib/Shared.luan" | 12 local Shared = require "site:/lib/Shared.luan" |
| 13 local head = Shared.head or error() | 13 local head = Shared.head or error() |
| 14 local header = Shared.header or error() | 14 local header = Shared.header or error() |
| 15 local started = Shared.started or error() | 15 local started = Shared.started or error() |
| 16 local chats_html = Shared.chats_html or error() | 16 local chats_html = Shared.chats_html or error() |
| 17 local http_push_to_users = Shared.http_push_to_users or error() | |
| 17 local User = require "site:/lib/User.luan" | 18 local User = require "site:/lib/User.luan" |
| 18 local current_user = User.current or error() | 19 local current_user = User.current or error() |
| 19 local get_user_by_email = User.get_by_email or error() | 20 local get_user_by_email = User.get_by_email or error() |
| 20 local Utils = require "site:/lib/Utils.luan" | 21 local Utils = require "site:/lib/Utils.luan" |
| 21 local to_set = Utils.to_set or error() | 22 local to_set = Utils.to_set or error() |
| 35 local id = with_user.id | 36 local id = with_user.id |
| 36 t[#t+1] = "+chat_user_ids:"..id | 37 t[#t+1] = "+chat_user_ids:"..id |
| 37 ids[#ids+1] = id | 38 ids[#ids+1] = id |
| 38 end | 39 end |
| 39 local query = concat(t," ") | 40 local query = concat(t," ") |
| 40 return run_in_transaction( function() | 41 local need_push = false |
| 42 local chat = run_in_transaction( function() | |
| 41 local chats = chat_search(query) | 43 local chats = chat_search(query) |
| 42 local n = #chats | 44 local n = #chats |
| 43 if n == 0 then | 45 if n == 0 then |
| 44 local chat = Chat.new{ | 46 local chat = Chat.new{ |
| 45 user_ids = ids | 47 user_ids = ids |
| 46 } | 48 } |
| 47 chat.save() | 49 chat.save() |
| 50 need_push = true | |
| 48 return chat | 51 return chat |
| 49 elseif n == 1 then | 52 elseif n == 1 then |
| 50 return chats[1] | 53 return chats[1] |
| 51 else | 54 else |
| 52 error("multiple chats for: "..query) | 55 error("multiple chats for: "..query) |
| 53 end | 56 end |
| 54 end ) | 57 end ) |
| 58 if need_push then | |
| 59 local js = "getChats('"..chat.id.."')" | |
| 60 http_push_to_users( chat.user_ids, js ) | |
| 61 end | |
| 62 return chat | |
| 55 end | 63 end |
| 56 | 64 |
| 57 return function() | 65 return function() |
| 58 local with = Http.request.parameters.with | 66 local with = Http.request.parameters.with |
| 59 with = to_set(with) | 67 with = to_set(with) |
