[PD2] Gateway login, logout and auth middleware done.
Co-authored-by: tsousa111 <tiagao2001@hotmail.com>
This commit is contained in:
parent
aa90bfddce
commit
69559f41ca
7 changed files with 277 additions and 28 deletions
52
Projs/PD2/internal/gateway/datastore.go
Normal file
52
Projs/PD2/internal/gateway/datastore.go
Normal file
|
@ -0,0 +1,52 @@
|
|||
package gateway
|
||||
|
||||
import(
|
||||
"database/sql"
|
||||
_ "github.com/mattn/go-sqlite3"
|
||||
)
|
||||
|
||||
type DataStore struct {
|
||||
db *sql.DB
|
||||
}
|
||||
|
||||
func OpenDB() (DataStore, error) {
|
||||
db, err := sql.Open("sqlite3", "gateway.db")
|
||||
if err != nil {
|
||||
return DataStore{}, err
|
||||
}
|
||||
ds := DataStore{db: db}
|
||||
err = ds.CreateTables()
|
||||
if err != nil {
|
||||
return DataStore{}, err
|
||||
}
|
||||
return ds, nil
|
||||
}
|
||||
|
||||
func (ds DataStore) CreateTables() error {
|
||||
// Create users table
|
||||
_, err := ds.db.Exec(`CREATE TABLE IF NOT EXISTS users (
|
||||
UID TEXT PRIMARY KEY,
|
||||
password BLOB
|
||||
)`)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (ds DataStore) GetPassword(uid string) ([]byte, error) {
|
||||
var password []byte
|
||||
err := ds.db.QueryRow("SELECT password FROM users WHERE UID = ?", uid).Scan(&password)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return password, nil
|
||||
}
|
||||
|
||||
func (ds DataStore) InsertUser(uid string, password []byte) error {
|
||||
_, err := ds.db.Exec("INSERT INTO users (UID, password) VALUES (?, ?)", uid, password)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue