Skip to content

Commit 1386096

Browse files
Merge pull request #17 from inplayer-org/user-store
user store insert
2 parents 88f1115 + 0ea73a2 commit 1386096

File tree

1 file changed

+87
-0
lines changed

1 file changed

+87
-0
lines changed

BankAccount/pkg/store/user.go

+87
Original file line numberDiff line numberDiff line change
@@ -1 +1,88 @@
11
package store
2+
3+
import (
4+
"bankacc/pkg/entities"
5+
"database/sql"
6+
"time"
7+
)
8+
9+
type UserStore interface {
10+
Insert(fullName string, email string, phoneNumber string) (*entities.User, error)
11+
GetUserById(id int) ([]*entities.User, error)
12+
UpdateUser(id int, fullName string, email string, phoneNumber string) (*entities.User, error)
13+
DeleteUser(id int) (*entities.User, error)
14+
}
15+
16+
type UserModel struct {
17+
Db *sql.DB
18+
}
19+
20+
func NewUserStoreModel(db *sql.DB) *UserModel {
21+
return &UserModel{
22+
Db: db,
23+
}
24+
}
25+
26+
func (store *UserModel) InsertUser(fullName string, email string, phoneNumber string) (*entities.User, error) {
27+
createdAt := time.Now()
28+
updatedAt := time.Now()
29+
30+
result, err := store.Db.Exec("INSERT INTO User (full_name, email, phone_number, created_at, updated_at) VALUES(?, ?, ?, ?, ?)", fullName, email, phoneNumber, createdAt, updatedAt)
31+
if err != nil {
32+
return nil, err
33+
}
34+
res, err := result.LastInsertId()
35+
if err != nil{
36+
return nil, err
37+
}
38+
user := entities.User{
39+
Id: int(res),
40+
FullName: fullName,
41+
Email: email,
42+
PhoneNumber: phoneNumber,
43+
CreatedAt: createdAt,
44+
UpdatedAt: updatedAt,
45+
}
46+
return &user, nil
47+
}
48+
49+
func (store *UserModel) GetUserById(id int) ([]*entities.User, error) {
50+
var users []*entities.User
51+
result, err := store.Db.Query("SELECT * FROM BankAccount.User WHERE id=?", id)
52+
if err != nil {
53+
return nil, err
54+
}
55+
var user entities.User
56+
for result.Next() {
57+
err := result.Scan(&user.Id, &user.FullName, &user.Email, &user.PhoneNumber, &user.UpdatedAt, &user.CreatedAt)
58+
if err != nil {
59+
return nil, err
60+
}
61+
users = append(users, &user)
62+
}
63+
return users, nil
64+
}
65+
66+
func (store *UserModel) UpdateUser(id int, fullName string, email string, phoneNumber string) (*entities.User, error) {
67+
updatedAt := time.Now()
68+
_, err := store.Db.Exec("UPDATE BankAccount.User SET full_name = ?, email = ?, phone_number = ?, updated_at =? WHERE id = ?", fullName, email, phoneNumber, updatedAt, id)
69+
if err != nil {
70+
return nil, err
71+
}
72+
user := entities.User{
73+
FullName: fullName,
74+
Email: email,
75+
PhoneNumber: phoneNumber,
76+
UpdatedAt: updatedAt,
77+
}
78+
return &user, err
79+
}
80+
81+
func (store *UserModel) DeleteUser(id int) (*entities.User, error) {
82+
_, err := store.Db.Exec("DELETE FROM BankAccount.User WHERE id=?", id)
83+
if err != nil {
84+
return nil, err
85+
}
86+
return nil, err
87+
}
88+

0 commit comments

Comments
 (0)