-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpegawai.model.go
150 lines (115 loc) · 2.94 KB
/
pegawai.model.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
package models
import (
"database/sql"
"fmt"
"go-echo-api/config"
"go-echo-api/database"
"net/http"
)
type Pegawai struct {
Id int `json:"id"`
Nama int `json:"nama"`
Alamat int `json:"alamat"`
Telepon int `json:"telepon"`
}
func FetchListPegawaiModel() (Response, error) {
var obj Pegawai
var arrobj []Pegawai
var res Response
con := database.CreateCon()
sqlStatement := "SELECT * FROM pegawai"
rows, err := con.Query(sqlStatement)
defer rows.Close()
if err != nil {
return res, err
}
for rows.Next() {
err = rows.Scan(&obj.Id, &obj.Nama, &obj.Alamat, &obj.Telepon)
if err != nil {
return res, err
}
arrobj = append(arrobj, obj)
}
res.Status = http.StatusOK
res.Message = "Success"
res.Data = arrobj
return res, nil
}
func FetchCreatePegawaiModel(nama string, alamat string, telepon string) (Response, error) {
var res Response
conf := config.GetConfig()
psqlInfo := fmt.Sprintf("host=%s port=%d user=%s "+
"password=%s dbname=%s sslmode=disable",
conf.DB_HOST, conf.DB_PORT, conf.DB_USERNAME, conf.DB_PASSWORD, conf.DB_NAME)
db, err := sql.Open("postgres", psqlInfo)
if err != nil {
panic(err)
}
defer db.Close()
err = db.Ping()
if err != nil {
panic(err)
}
sqlStatement := `INSERT INTO pegawai (nama, alamat, telepon) VALUES ($1, $2, $3) RETURNING id`
stmt, err := db.Prepare(sqlStatement)
if err != nil {
return res, err
}
stmt.Exec(nama, alamat, telepon)
res.Status = http.StatusOK
res.Message = "Success"
res.Data = map[string]int{}
return res, nil
}
func FetchUpdatePegawaiModel(id int, nama string, alamat string, telepon string) (Response, error) {
var res Response
conf := config.GetConfig()
psqlInfo := fmt.Sprintf("host=%s port=%d user=%s "+
"password=%s dbname=%s sslmode=disable",
conf.DB_HOST, conf.DB_PORT, conf.DB_USERNAME, conf.DB_PASSWORD, conf.DB_NAME)
db, err := sql.Open("postgres", psqlInfo)
if err != nil {
panic(err)
}
defer db.Close()
err = db.Ping()
if err != nil {
panic(err)
}
sqlStatement := `UPDATE pegawai SET nama = $1, alamat = $2, telepon = $3 WHERE id = $4 `
stmt, err := db.Prepare(sqlStatement)
if err != nil {
return res, err
}
stmt.Exec(nama, alamat, telepon, id)
res.Status = http.StatusOK
res.Message = "Success"
res.Data = map[string]int{}
return res, nil
}
func FetchDeletePegawaiModel(id int) (Response, error) {
var res Response
conf := config.GetConfig()
psqlInfo := fmt.Sprintf("host=%s port=%d user=%s "+
"password=%s dbname=%s sslmode=disable",
conf.DB_HOST, conf.DB_PORT, conf.DB_USERNAME, conf.DB_PASSWORD, conf.DB_NAME)
db, err := sql.Open("postgres", psqlInfo)
if err != nil {
panic(err)
}
defer db.Close()
err = db.Ping()
if err != nil {
panic(err)
}
sqlStatement := `DELETE FROM pegawai WHERE id = $1 `
stmt, err := db.Prepare(sqlStatement)
if err != nil {
return res, err
}
stmt.Exec(id)
res.Status = http.StatusOK
res.Message = "Success"
res.Data = map[string]int{}
return res, nil
}