Add AddUser func

This commit is contained in:
Andinus 2020-03-27 18:32:10 +05:30
parent 7395200314
commit 97f36a08c7
Signed by: andinus
GPG Key ID: B67D55D482A799FD
2 changed files with 43 additions and 35 deletions

View File

@ -3,7 +3,6 @@ package auth
import (
"log"
"strings"
"time"
"tildegit.org/andinus/perseus/storage/sqlite3"
"tildegit.org/andinus/perseus/user"
@ -25,39 +24,6 @@ func Register(db *sqlite3.DB, regInfo map[string]string) error {
}
u.SetPassword(pass)
// Acquire write lock on the database.
db.Mu.Lock()
defer db.Mu.Unlock()
err = insertRegRecords(db, u)
return err
}
func insertRegRecords(db *sqlite3.DB, u user.User) error {
// Start the transaction
tx, err := db.Conn.Begin()
if err != nil {
log.Printf("auth/register.go: %s\n",
"Failed to begin transaction")
return err
}
usrStmt, err := db.Conn.Prepare(`
INSERT INTO users(id, username, password, regTime) values(?, ?, ?, ?)`)
if err != nil {
log.Printf("auth/register.go: %s\n",
"Failed to prepare statement")
return err
}
defer usrStmt.Close()
_, err = usrStmt.Exec(u.ID(), u.Username(), u.Password(), time.Now().UTC())
if err != nil {
log.Printf("auth/register.go: %s\n",
"Failed to execute statement")
return err
}
tx.Commit()
err = u.AddUser(db)
return err
}

42
user/adduser.go Normal file
View File

@ -0,0 +1,42 @@
package user
import (
"log"
"time"
"tildegit.org/andinus/perseus/storage/sqlite3"
)
// AddUser adds the user to record.
func (u *User) AddUser(db *sqlite3.DB) error {
// Acquire write lock on the database.
db.Mu.Lock()
defer db.Mu.Unlock()
// Start the transaction
tx, err := db.Conn.Begin()
if err != nil {
log.Printf("user/adduser.go: %s\n",
"failed to begin transaction")
return err
}
usrStmt, err := db.Conn.Prepare(`
INSERT INTO users(id, username, password, regTime) values(?, ?, ?, ?)`)
if err != nil {
log.Printf("user/adduser.go: %s\n",
"failed to prepare statement")
return err
}
defer usrStmt.Close()
_, err = usrStmt.Exec(u.id, u.username, u.password, time.Now().UTC())
if err != nil {
log.Printf("user/adduser.go: %s\n",
"failed to execute statement")
return err
}
tx.Commit()
return err
}