summaryrefslogtreecommitdiff
path: root/db/bearer.go
diff options
context:
space:
mode:
Diffstat (limited to 'db/bearer.go')
-rw-r--r--db/bearer.go127
1 files changed, 0 insertions, 127 deletions
diff --git a/db/bearer.go b/db/bearer.go
deleted file mode 100644
index b16d506..0000000
--- a/db/bearer.go
+++ /dev/null
@@ -1,127 +0,0 @@
-package db
-
-import (
- "errors"
- "time"
-
- _ "github.com/mattn/go-sqlite3"
-)
-
-type Bearer struct {
- id, accountId uint
- Token string
- ValidUpTo time.Time
-}
-
-func (b *Bearer) FromToken(safe *SafeDB, Token string) error {
- const sqlStatementBearer string = `
- SELECT id, ValidUpTo, accountId
- FROM Bearer
- WHERE Bearer.Token = ?
- `
-
- b.Token = Token
- var ValidUpToString string
- safe.mu.Lock()
- row := safe.db.QueryRow(sqlStatementBearer, Token)
- safe.mu.Unlock()
-
- err := row.Scan(
- &b.id,
- &ValidUpToString,
- &b.accountId,
- )
- if err != nil {
- return err
- }
-
- layout := "2006-01-02 15:04:05.999999999-07:00"
- b.ValidUpTo, err = time.Parse(layout, ValidUpToString)
- if err != nil {
- return err
- }
-
- timeNow := time.Now()
- if timeNow.After(b.ValidUpTo) {
- return errors.New("Outdated Bearer Token")
- }
-
- return err
-}
-
-func (b *Bearer) Update(safe *SafeDB) error {
- const sqlStatementBearer string = `
- UPDATE Bearer
- SET ValidUpTo = ?
- WHERE id = ?
- `
-
- validUpTo := time.Now().Add(time.Hour * 24)
- safe.mu.Lock()
- _, err := safe.db.Exec(sqlStatementBearer, validUpTo, b.id)
- safe.mu.Unlock()
- if err != nil {
- return err
- }
- b.ValidUpTo = validUpTo
-
- return nil
-}
-
-func (b *Bearer) VerifyAndUpdate(safe *SafeDB, token string) error {
- err := b.FromToken(safe, token)
- if err != nil {
- return err
- }
-
- err = b.Update(safe)
- if err != nil {
- return err
- }
-
- return nil
-}
-
-func (b *Bearer) Generate(safe *SafeDB, lg *Login) error {
- const sqlGenBearer string = `
- INSERT INTO Bearer (
- id,
- Token,
- ValidUpTo,
- accountId
- )
- VALUES (NULL, ?, ?, ?);
- `
-
- Token, err := GenRandomString(128)
- if err != nil {
- return err
- }
-
- timeNow := time.Now()
- ValidUpTo := timeNow.Add(time.Hour * 24)
- safe.mu.Lock()
- res, err := safe.db.Exec(
- sqlGenBearer,
- Token,
- ValidUpTo,
- lg.id,
- )
- safe.mu.Unlock()
- if err != nil {
- return err
- }
-
- id, err := res.LastInsertId()
- if err != nil {
- return err
- }
-
- b.id = uint(id)
- b.accountId = lg.id
- b.Token = Token
- b.ValidUpTo = ValidUpTo
- lg.Bearer = b
-
- return err
-}