Files
ris-backend-go/services/user/user.store.go
2024-12-09 09:51:19 +07:00

71 lines
1.6 KiB
Go

package user
import (
"github.com/jmoiron/sqlx"
"sismedika.com/sas/westone/types"
)
type Store struct {
db *sqlx.DB
}
func NewStore(db *sqlx.DB) *Store {
return &Store{db: db}
}
func (s *Store) CreateUser(user types.User) error {
// Start a new transaction
// tx, err := s.db.BeginTxx(context.Background(), nil)
// if err != nil {
// return err
// }
// // Defer rollback to ensure the transaction is rolled back in case of an error
// defer func() {
// if err != nil {
// tx.Rollback()
// }
// }()
// query := `INSERT INTO users (firstName, lastName, email, password)
// VALUES (:firstName, :lastName, :email, :password)`
// // Using tx.NamedExec to insert the user within the transaction
// _, err = tx.NamedExec(query, user)
// if err != nil {
// return err
// }
// // Commit the transaction if everything succeeded
// if err = tx.Commit(); err != nil {
// return err
// }
return nil
}
func (s *Store) GetUserByID(id int) (*types.User, error) {
user := new(types.User)
qryget := `
SELECT
M_UserID,
M_UserEmail,
M_UserEmail as M_UserUsername,
M_UserGroupDashboard,
1 as M_UserDefaultT_SampleStationID,
IFNULL(M_UserFullName, "") as M_StaffName,
IFNULL(M_StaffIsCourier, "N") as is_courier,
IFNULL(S_SystemsAutoLogoutTime,0) as time_autologout
FROM m_user
JOIN m_usergroup ON M_UserM_UserGroupID = M_UserGroupID
LEFT JOIN m_staff on M_UserM_StaffID = M_StaffID
JOIN conf_systems ON S_SystemsIsActive = 'Y'
WHERE M_UserID = ?
`
if err := s.db.Get(user, qryget, id); err != nil {
return nil, err
}
return user, nil
}