- better logging

This commit is contained in:
Alex Ling
2020-02-17 00:33:43 +00:00
parent e5e2540b7c
commit 8119f718db
4 changed files with 46 additions and 24 deletions

View File

@@ -19,17 +19,21 @@ class Storage
def initialize(@path : String, @logger : MLogger)
dir = File.dirname path
unless Dir.exists? dir
@logger.info "The DB directory #{dir} does not exist. " \
"Attepmting to create it"
Dir.mkdir_p dir
end
DB.open "sqlite3://#{path}" do |db|
begin
db.exec "create table users" \
"(username text, password text, token text, admin integer)"
rescue e : SQLite3::Exception | DB::Error
rescue e
unless e.message == "table users already exists"
@logger.fatal "Error when checking tables in DB: #{e}"
raise e
end
else
@logger.debug "Creating DB file at #{@path}"
db.exec "create unique index username_idx on users (username)"
db.exec "create unique index token_idx on users (token)"
random_pw = random_str
@@ -49,14 +53,18 @@ class Storage
"users where username = (?)", \
username, as: {String, String?}
unless verify_password hash, password
@logger.debug "Password does not match the hash"
return nil
end
@logger.debug "Useer #{username} verified"
return token if token
token = random_str
@logger.debug "Updating token for #{username}"
db.exec "update users set token = (?) where username = (?)",
token, username
return token
rescue e : SQLite3::Exception | DB::Error
rescue e
@logger.error "Error when verifying user #{username}: #{e}"
return nil
end
end
@@ -68,7 +76,8 @@ class Storage
username = db.query_one "select username from users where " \
"token = (?)", token, as: String
return username
rescue e : SQLite3::Exception | DB::Error
rescue e
@logger.debug "Unable to verify token"
return nil
end
end
@@ -79,7 +88,8 @@ class Storage
begin
return db.query_one "select admin from users where " \
"token = (?)", token, as: Bool
rescue e : SQLite3::Exception | DB::Error
rescue e
@logger.debug "Unable to verify user as admin"
return false
end
end