/
controller.go
54 lines (48 loc) · 1.58 KB
/
controller.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
package konseling
import (
"encoding/json"
"net/http"
"os"
"github.com/aiteung/atdb"
"github.com/whatsauth/watoken"
"go.mongodb.org/mongo-driver/mongo"
)
// func GCFHandler(MONGOCONNSTRINGENV, dbname, collectionname string) string {
// mconn := SetConnection(MONGOCONNSTRINGENV, dbname)
// datagedung := GetAllBangunanLineString(mconn, collectionname)
// return GCFReturnStruct(datagedung)
// }
func GCFPostHandler(PASETOPRIVATEKEYENV, MONGOCONNSTRINGENV, dbname, collectionname string, r *http.Request) string {
var Response Credential
Response.Status = false
mconn := SetConnection(MONGOCONNSTRINGENV, dbname)
var datauser User
err := json.NewDecoder(r.Body).Decode(&datauser)
if err != nil {
Response.Message = "error parsing application/json: " + err.Error()
} else {
if IsPasswordValid(mconn, collectionname, datauser) {
Response.Status = true
tokenstring, err := watoken.Encode(datauser.Username, os.Getenv(PASETOPRIVATEKEYENV))
if err != nil {
Response.Message = "Gagal Encode Token : " + err.Error()
} else {
Response.Message = "Selamat Datang"
Response.Token = tokenstring
}
} else {
Response.Message = "Password Salah"
}
}
return GCFReturnStruct(Response)
}
func GCFReturnStruct(DataStuct any) string {
jsondata, _ := json.Marshal(DataStuct)
return string(jsondata)
}
func InsertUser(db *mongo.Database, collection string, userdata User) string {
hash, _ := HashPassword(userdata.Password)
userdata.Password = hash
atdb.InsertOneDoc(db, collection, userdata)
return "Ini username : " + userdata.Username + "ini password : " + userdata.Password
}