From c19a1184e8bbeef4de65a1c81b959510f91fa25f Mon Sep 17 00:00:00 2001 From: sp Date: Sun, 21 Mar 2021 18:46:16 +1100 Subject: [PATCH] broker earnings backend support --- apiV1GridLoanFullOverview.go | 15 +++++++++++++++ apiV1UserReward.go | 22 ++++++++++++++++++++++ apiV1login.go | 4 ++++ apiv1.go | 2 ++ 4 files changed, 43 insertions(+) create mode 100644 apiV1UserReward.go diff --git a/apiV1GridLoanFullOverview.go b/apiV1GridLoanFullOverview.go index 5d822e2..6f5ec0e 100644 --- a/apiV1GridLoanFullOverview.go +++ b/apiV1GridLoanFullOverview.go @@ -24,6 +24,21 @@ func apiV1GridLoanFullOverview(w http.ResponseWriter, r *http.Request, ss *loan. if e != nil { apiV1EmptyResponse(w, r, ss) } else { + switch ss.GetRole() { + case "broker": + input.Filter.Filters = append(input.Filter.Filters, loan.FullLoanSummaryFilter{ + Field: "broker_ids", + Operator: "contains", + Value: loan.JsonString(ss.User)}) + break + case "user": + input.Filter.Filters = append(input.Filter.Filters, loan.FullLoanSummaryFilter{ + Field: "client_ids", + Operator: "contains", + Value: loan.JsonString(ss.User)}) + break + } + data := loan.QFullLLoanSummary(input) //send out apiV1SendJson(data, w, r, ss) diff --git a/apiV1UserReward.go b/apiV1UserReward.go new file mode 100644 index 0000000..c4d7aa4 --- /dev/null +++ b/apiV1UserReward.go @@ -0,0 +1,22 @@ +package main + +import ( + "biukop.com/sfm/loan" + "net/http" +) + +func apiV1UserReward(w http.ResponseWriter, r *http.Request, ss *loan.Session) { + + if ss.User == "" { + apiV1Client403Error(w, r, ss) + return + } + + userId := ss.User + if ss.GetRole() == "admin" { //allow admin to query other user + userId = r.URL.Path[len(apiV1Prefix+"user-reward/"):] //remove prefix + } + + data := loan.GetUserReward(userId) + apiV1SendJson(data, w, r, ss) +} diff --git a/apiV1login.go b/apiV1login.go index b90fbf2..b0e2d95 100644 --- a/apiV1login.go +++ b/apiV1login.go @@ -49,6 +49,10 @@ func apiV1Login(w http.ResponseWriter, r *http.Request, ss *loan.Session) { //format response res.add("login", true) res.add("role", ss.GetRole()) + u, e := ss.GetUser() + if e == nil { + res.add("user", u.People) + } res.add("Biukop-Session", ss.Id) res.add("Biukop-Mid", ss.Get("Biukop-Mid")) res.add("sessionExpire", ss.ExpireStr()) diff --git a/apiv1.go b/apiv1.go index 59c6f4c..98a6456 100644 --- a/apiv1.go +++ b/apiv1.go @@ -49,6 +49,7 @@ func setupApiV1Handler() []apiV1HandlerMap { {"POST", "sync-people/", apiV1SyncPeople}, {"POST", "payIn/", apiV1PayInPost}, {"DELETE", "payIn/", apiV1PayInDelete}, + {"GET", "user-reward/", apiV1UserReward}, {"GET", "login", apiV1DumpRequest}, } } else { //production @@ -74,6 +75,7 @@ func setupApiV1Handler() []apiV1HandlerMap { {"POST", "sync-people/", apiV1SyncPeople}, {"POST", "payIn/", apiV1PayInPost}, {"DELETE", "payIn/", apiV1PayInDelete}, + {"GET", "user-reward/", apiV1UserReward}, {"GET", "login", apiV1EmptyResponse}, } }