Skip to content

Instantly share code, notes, and snippets.

@subzero112233
Created June 22, 2021 10:38
Show Gist options
  • Save subzero112233/3820ff381125fb5acb94e192ac9599aa to your computer and use it in GitHub Desktop.
Save subzero112233/3820ff381125fb5acb94e192ac9599aa to your computer and use it in GitHub Desktop.
package mysql
type Users struct {
Address string `db:"address"`
FirstName string `db:"first_name"`
LastName string `db:"last_name"`
Password string `db:"password"`
Username string `db:"username"`
}
package mysql
import (
"aws-golang-lambda/entity"
"fmt"
_ "github.com/go-sql-driver/mysql"
"github.com/jmoiron/sqlx"
)
const (
usersTable = "users"
)
type MysqlDB struct {
db *sqlx.DB
}
func NewMysqlDB(db *sqlx.DB) *MysqlDB {
return &MysqlDB{
db: db,
}
}
func (s *MysqlDB) GetUser(username string) (details entity.SignupInput, err error) {
var users []Users
query := fmt.Sprintf("SELECT * FROM %s WHERE username = '%s'", usersTable, username)
err = s.db.Select(&users, query)
if err != nil {
return details, err
}
if len(users) > 0 {
details = entity.SignupInput(users[0])
}
return details, nil
}
func (s *MysqlDB) AddUser(details entity.SignupInput) (err error) {
user := Users(details)
query := fmt.Sprintf("INSERT INTO %s (username, password, first_name, last_name, address) VALUES (:username, :password, :first_name, :last_name, :address)", usersTable)
_, err = s.db.NamedExec(query, &user)
return err
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment