Core separation #13
|
|
@ -0,0 +1,39 @@
|
||||||
|
package session
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"lishwist/core/internal/db"
|
||||||
|
|
||||||
|
"github.com/Teajey/sqlstore"
|
||||||
|
)
|
||||||
|
|
||||||
|
func NewStore(keyPairs ...[]byte) (*sqlstore.Store, error) {
|
||||||
|
deleteStmt, err := db.Connection.Prepare("DELETE FROM session WHERE id = ?;")
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("Failed to prepare delete statement: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
insertStmt, err := db.Connection.Prepare("INSERT INTO session (value) VALUES (?);")
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("Failed to prepare insert statement: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
selectStmt, err := db.Connection.Prepare("SELECT value FROM session WHERE id = ?;")
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("Failed to prepare select statement: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
updateStmt, err := db.Connection.Prepare("UPDATE session SET value = ?2 WHERE id = ?1;")
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("Failed to prepare update statement: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
s := sqlstore.NewSqlStore(db.Connection, sqlstore.Statements{
|
||||||
|
Delete: deleteStmt,
|
||||||
|
Insert: insertStmt,
|
||||||
|
Select: selectStmt,
|
||||||
|
Update: updateStmt,
|
||||||
|
}, keyPairs...)
|
||||||
|
|
||||||
|
return s, nil
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue