From daaf6fbd75b655d377dd67a0f9ef0cfda0be7c46 Mon Sep 17 00:00:00 2001 From: yuli Date: Wed, 13 May 2020 20:01:56 +0000 Subject: [PATCH] new structure --- src/requests_api.go | 8 ++++++-- src/requests_db.go | 6 +++++- src/storage/storage.go | 1 + 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/requests_api.go b/src/requests_api.go index 671b2f7..1e205e7 100644 --- a/src/requests_api.go +++ b/src/requests_api.go @@ -253,7 +253,7 @@ func (e mainEnv) approveUserRequest(w http.ResponseWriter, r *http.Request, ps h lastmodifiedby := "admin" e.db.withdrawConsentRecord(userTOKEN, brief, mode, userTOKEN, lastmodifiedby) } - e.db.updateRequestStatus(request, "approve") + e.db.updateRequestStatus(request, "approve", "") w.Header().Set("Content-Type", "application/json; charset=utf-8") w.WriteHeader(200) fmt.Fprintf(w, `{"status":"ok","result":"done"}`) @@ -298,7 +298,11 @@ func (e mainEnv) cancelUserRequest(w http.ResponseWriter, r *http.Request, ps ht returnError(w, r, "not found", 405, err, event) return } - e.db.updateRequestStatus(request, "canceled") + reason := "" + if authResult == "login" { + reason = "user operation" + } + e.db.updateRequestStatus(request, "canceled", reason) w.Header().Set("Content-Type", "application/json; charset=utf-8") w.WriteHeader(200) diff --git a/src/requests_db.go b/src/requests_db.go index 50d7f89..9c14370 100644 --- a/src/requests_db.go +++ b/src/requests_db.go @@ -20,6 +20,7 @@ type requestEvent struct { Status string `json:"status"` Change string `json:"change,omitempty"` Rtoken string `json:"rtoken"` + Reason string `json:"reason"` } func (dbobj dbcon) saveUserRequest(action string, token string, app string, brief string, change []byte) (string, error) { @@ -131,9 +132,12 @@ func (dbobj dbcon) getRequest(rtoken string) (bson.M, error) { return record, nil } -func (dbobj dbcon) updateRequestStatus(rtoken string, status string) { +func (dbobj dbcon) updateRequestStatus(rtoken string, status string, reason string) { bdoc := bson.M{} bdoc["status"] = status + if len(reason) > 0 { + bdoc["reason"] = reason + } //fmt.Printf("op json: %s\n", update) dbobj.store.UpdateRecord(storage.TblName.Requests, "rtoken", rtoken, &bdoc) } diff --git a/src/storage/storage.go b/src/storage/storage.go index c65e188..ed21ef7 100644 --- a/src/storage/storage.go +++ b/src/storage/storage.go @@ -941,6 +941,7 @@ func initRequests(db *sql.DB) error { action STRING, status STRING, change STRING, + reason STRING, creationtime int, ` + "`when` int);", `CREATE INDEX requests_rtoken ON requests (rtoken);`,