add db, user registering into db, format

This commit is contained in:
pena 2021-11-07 00:31:32 +01:00 committed by Swrup
parent 6c64dcfffd
commit 82e65cfad4
6 changed files with 91 additions and 40 deletions

View file

@ -1,35 +1,61 @@
type t = {
nick: string;
password: string;
email: string option;
}
type t =
{ nick : string
; password : string
; email : string (* TODO: make email optional ? *)
}
let () =
let open Sqlite3_utils in
let res =
Db.with_db (fun db ->
exec0 db
"CREATE TABLE IF NOT EXISTS user (nick TEXT, password TEXT, email \
TEXT);" )
in
match res with
| Ok () -> ()
| Error e ->
Dream.warning (fun log ->
log "can't create table user: %s" (Sqlite3.Rc.to_string e) )
let login ~nick ~password =
if nick = nick && password = password then
Ok ()
Ok ()
else
Error "DDD"
let make ~email ~nick ~password =
let nick_escaped = String.escaped nick in
let register ~email ~nick ~password =
(* TODO: remove bad characters (e.g. delthas) *)
let valid_nick = String.length nick < 64 && String.length nick > 0 && nick_escaped = nick in
let valid_email = match Emile.of_string email with
| Ok _ -> true
| Error _ -> false
let valid_nick =
String.length nick < 64
&& String.length nick > 0
&& String.escaped nick = nick
in
let valid_password = String.length password < 128 && String.length password > 0 in
let valid_email =
match Emile.of_string email with
| Ok _ -> true
| Error _ -> false
in
let valid_password =
String.length password < 128 && String.length password > 0
in
let valid = valid_nick && valid_email && valid_password in
(* TODO: HASH PASSWORD XD *)
if valid then
(* TODO: add to db and check uniqueness of id *)
Ok ()
if not valid then
Error "Something is wrong"
else
Error "Something is wrong."
(* TODO: add check uniqueness of id *)
let open Sqlite3_utils in
let res =
Db.with_db (fun db ->
exec_raw_args db "INSERT INTO user VALUES (?, ?, ?);"
[| Data.TEXT nick; Data.TEXT password; Data.TEXT email |]
~f:Cursor.to_list )
in
match res with
| Ok res -> Ok res
| Error e -> Error (Format.sprintf "db error: %s" (Rc.to_string e))