61 lines
1.3 KiB
Go
61 lines
1.3 KiB
Go
|
package controller
|
||
|
|
||
|
import (
|
||
|
"arimelody-web/account/model"
|
||
|
|
||
|
"github.com/jmoiron/sqlx"
|
||
|
)
|
||
|
|
||
|
func GetAccount(db *sqlx.DB, username string) (*model.Account, error) {
|
||
|
var account = model.Account{}
|
||
|
|
||
|
err := db.Get(&account, "SELECT * FROM account WHERE username=$1", username)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
|
||
|
return &account, nil
|
||
|
}
|
||
|
|
||
|
func GetAccountByEmail(db *sqlx.DB, email string) (*model.Account, error) {
|
||
|
var account = model.Account{}
|
||
|
|
||
|
err := db.Get(&account, "SELECT * FROM account WHERE email=$1", email)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
|
||
|
return &account, nil
|
||
|
}
|
||
|
|
||
|
func CreateAccount(db *sqlx.DB, account *model.Account) error {
|
||
|
_, err := db.Exec(
|
||
|
"INSERT INTO account (username, password, email, avatar_url) " +
|
||
|
"VALUES ($1, $2, $3, $4)",
|
||
|
account.Username,
|
||
|
account.Password,
|
||
|
account.Email,
|
||
|
account.AvatarURL)
|
||
|
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
func UpdateAccount(db *sqlx.DB, account *model.Account) error {
|
||
|
_, err := db.Exec(
|
||
|
"UPDATE account " +
|
||
|
"SET username=$2, password=$3, email=$4, avatar_url=$5) " +
|
||
|
"WHERE id=$1",
|
||
|
account.ID,
|
||
|
account.Username,
|
||
|
account.Password,
|
||
|
account.Email,
|
||
|
account.AvatarURL)
|
||
|
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
func DeleteAccount(db *sqlx.DB, accountID string) error {
|
||
|
_, err := db.Exec("DELETE FROM account WHERE id=$1", accountID)
|
||
|
return err
|
||
|
}
|