-
Notifications
You must be signed in to change notification settings - Fork 0
/
gcfHandler.go
136 lines (127 loc) · 3.88 KB
/
gcfHandler.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
package mahasiswa
import (
"encoding/json"
"net/http"
intermoni "github.com/intern-monitoring/backend-intermoni"
"go.mongodb.org/mongo-driver/bson/primitive"
"go.mongodb.org/mongo-driver/mongo"
)
var (
Response intermoni.Response
mahasiswa intermoni.Mahasiswa
)
func Put(PASETOPUBLICKEYENV, MONGOCONNSTRINGENV, dbname string, r *http.Request) string {
conn := intermoni.MongoConnect(MONGOCONNSTRINGENV, dbname)
Response.Status = false
//
id := intermoni.GetID(r)
if id == "" {
Response.Message = "Wrong parameter"
return intermoni.GCFReturnStruct(Response)
}
idparam, err := primitive.ObjectIDFromHex(id)
if err != nil {
Response.Message = "Invalid id parameter"
return intermoni.GCFReturnStruct(Response)
}
user_login, err := intermoni.GetUserLogin(PASETOPUBLICKEYENV, r)
if err != nil {
Response.Message = "Gagal Decode Token : " + err.Error()
return intermoni.GCFReturnStruct(Response)
}
if user_login.Role == "mahasiswa" {
return GCFHandlerUpdateByMahasiswa(idparam, user_login.Id, conn, r)
}
err = json.NewDecoder(r.Body).Decode(&mahasiswa)
if err != nil {
Response.Message = "error parsing application/json: " + err.Error()
return intermoni.GCFReturnStruct(Response)
}
if user_login.Role == "admin" {
return GCFHandlerUpdateByAdmin(idparam, mahasiswa, conn, r)
}
//
Response.Message = "Maneh tidak memiliki akses"
return intermoni.GCFReturnStruct(Response)
}
func GCFHandlerUpdateByMahasiswa(idparam, iduser primitive.ObjectID, conn *mongo.Database, r *http.Request) string {
Response.Status = false
//
err := UpdateMahasiswa(idparam, iduser, conn, r)
if err != nil {
Response.Message = err.Error()
return intermoni.GCFReturnStruct(Response)
}
//
Response.Status = true
Response.Message = "Berhasil Update Mahasiswa"
return intermoni.GCFReturnStruct(Response)
}
func GCFHandlerUpdateByAdmin(idparam primitive.ObjectID, mahasiswa intermoni.Mahasiswa, conn *mongo.Database, r *http.Request) string {
Response.Status = false
//
err := SeleksiMahasiswaByAdmin(idparam, conn, mahasiswa)
if err != nil {
Response.Message = err.Error()
return intermoni.GCFReturnStruct(Response)
}
//
Response.Status = true
Response.Message = "Berhasil Seleksi Mahasiswa"
return intermoni.GCFReturnStruct(Response)
}
func Get(PASETOPUBLICKEYENV, MONGOCONNSTRINGENV, dbname string, r *http.Request) string {
conn := intermoni.MongoConnect(MONGOCONNSTRINGENV, dbname)
Response.Status = false
//
user_login, err := intermoni.GetUserLogin(PASETOPUBLICKEYENV, r)
if err != nil {
Response.Message = err.Error()
return intermoni.GCFReturnStruct(Response)
}
if user_login.Role == "mahasiswa" {
return GCFHandlerGetMahasiswaByMahasiswa(user_login.Id, conn)
}
if user_login.Role == "admin" {
return GCFHandlerGetMahasiswaByAdmin(conn, r)
}
//
Response.Message = "Maneh tidak memiliki akses"
return intermoni.GCFReturnStruct(Response)
}
func GCFHandlerGetMahasiswaByMahasiswa(iduser primitive.ObjectID, conn *mongo.Database) string {
Response.Status = false
//
mahasiswa, err := intermoni.GetMahasiswaFromAkun(iduser, conn)
if err != nil {
Response.Message = err.Error()
return intermoni.GCFReturnStruct(Response)
}
//
return intermoni.GCFReturnStruct(mahasiswa)
}
func GCFHandlerGetMahasiswaByAdmin(conn *mongo.Database, r *http.Request) string {
Response.Status = false
//
id := intermoni.GetID(r)
if id == "" {
mahasiswa, err := GetAllMahasiswaByAdmin(conn)
if err != nil {
Response.Message = err.Error()
return intermoni.GCFReturnStruct(Response)
}
return intermoni.GCFReturnStruct(mahasiswa)
}
idparam, err := primitive.ObjectIDFromHex(id)
if err != nil {
Response.Message = "Invalid id parameter"
return intermoni.GCFReturnStruct(Response)
}
mahasiswa, err := GetMahasiswaFromIDByAdmin(idparam, conn)
if err != nil {
Response.Message = err.Error()
return intermoni.GCFReturnStruct(Response)
}
//
return intermoni.GCFReturnStruct(mahasiswa)
}