comparison src/chat.html.luan @ 5:a49866b52cc2

login to chat
author Franklin Schmidt <fschmidt@gmail.com>
date Tue, 29 Oct 2024 13:10:47 -0600
parents 2da10ece826f
children 41d35b72c774
comparison
equal deleted inserted replaced
4:2da10ece826f 5:a49866b52cc2
2 local error = Luan.error 2 local error = Luan.error
3 local ipairs = Luan.ipairs or error() 3 local ipairs = Luan.ipairs or error()
4 local pairs = Luan.pairs or error() 4 local pairs = Luan.pairs or error()
5 local Table = require "luan:Table.luan" 5 local Table = require "luan:Table.luan"
6 local concat = Table.concat or error() 6 local concat = Table.concat or error()
7 local is_empty = Table.is_empty or error()
8 local size = Table.size or error()
7 local Io = require "luan:Io.luan" 9 local Io = require "luan:Io.luan"
8 local Http = require "luan:http/Http.luan" 10 local Http = require "luan:http/Http.luan"
9 local Shared = require "site:/lib/Shared.luan" 11 local Shared = require "site:/lib/Shared.luan"
10 local head = Shared.head or error() 12 local head = Shared.head or error()
11 local header = Shared.header or error() 13 local header = Shared.header or error()
12 local User = require "site:/lib/User.luan" 14 local User = require "site:/lib/User.luan"
13 local current_user = User.current_required or error() 15 local current_user = User.current or error()
14 local get_user_by_id = User.get_by_id or error() 16 local get_user_by_id = User.get_by_id or error()
15 local get_user_by_email = User.get_by_email or error() 17 local get_user_by_email = User.get_by_email or error()
16 local Utils = require "site:/lib/Utils.luan" 18 local Utils = require "site:/lib/Utils.luan"
17 local to_set = Utils.to_set or error() 19 local to_set = Utils.to_set or error()
18 local Db = require "site:/lib/Db.luan" 20 local Db = require "site:/lib/Db.luan"
59 end 61 end
60 end ) 62 end )
61 end 63 end
62 64
63 return function() 65 return function()
66 local with = Http.request.parameters.with
67 with = to_set(with)
64 local user = current_user() 68 local user = current_user()
65 if user == nil then 69 if user == nil then
70 local url = "/login.html"
71 if not is_empty(with) then
72 local t = {}
73 for email in pairs(with) do
74 t[#t+1] = "with="..email
75 end
76 url = url.."?"..concat(t,"&")
77 end
78 Http.response.send_redirect(url)
66 return 79 return
67 end 80 end
68 local with = Http.request.parameters.with 81 if not is_empty(with) then
69 if with ~= nil then
70 with = to_set(with)
71 with[user.email] = true 82 with[user.email] = true
72 get_chat(with) 83 if size(with) > 1 then
84 get_chat(with)
85 end
73 end 86 end
74 local chats = user.get_chats() 87 local chats = user.get_chats()
75 Io.stdout = Http.response.text_writer() 88 Io.stdout = Http.response.text_writer()
76 %> 89 %>
77 <!doctype html> 90 <!doctype html>