From 7432660a2a181948de0bde51c307f9563065668d Mon Sep 17 00:00:00 2001 From: sp Date: Fri, 19 Mar 2021 05:13:00 +1100 Subject: [PATCH] sync people added. Loand have reward people for client side loookup. --- apiV1BrokerList.go | 29 +++++++++++++++++++++++++++++ apiV1SyncPeople.go | 35 +++++++++++++++++++++++++++++++++++ apiv1.go | 8 +++++++- 3 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 apiV1BrokerList.go create mode 100644 apiV1SyncPeople.go diff --git a/apiV1BrokerList.go b/apiV1BrokerList.go new file mode 100644 index 0000000..ef02fb6 --- /dev/null +++ b/apiV1BrokerList.go @@ -0,0 +1,29 @@ +package main + +import ( + "biukop.com/sfm/loan" + log "github.com/sirupsen/logrus" + "net/http" +) + +func apiV1BrokerList(w http.ResponseWriter, r *http.Request, ss *loan.Session) { + filter := "" + keys, ok := r.URL.Query()["filter"] + if ok && len(keys) >= 1 { + filter = keys[0] + } + data := loan.GetBrokerList(filter) + apiV1SendJson(data, w, r, ss) +} + +func apiV1BrokerGet(w http.ResponseWriter, r *http.Request, ss *loan.Session) { + id := r.URL.Path[len(apiV1Prefix+"broker/"):] + b := loan.Broker{} + e := b.Read(id) + if e != nil { + log.Error("cannot find people by id", id) + apiV1Client404Error(w, r, ss) + return + } + apiV1SendJson(b, w, r, ss) +} diff --git a/apiV1SyncPeople.go b/apiV1SyncPeople.go new file mode 100644 index 0000000..e3dd994 --- /dev/null +++ b/apiV1SyncPeople.go @@ -0,0 +1,35 @@ +package main + +import ( + "biukop.com/sfm/loan" + log "github.com/sirupsen/logrus" + "net/http" +) + +func apiV1SyncPeople(w http.ResponseWriter, r *http.Request, ss *loan.Session) { + + input, e := decodeJsonLoanEdit(r) + + log.Println(input) + if e != nil { + apiV1Client404Error(w, r, ss) + return + } else { + e = input.ClearPeopleMap() + if e != nil { + log.Error("FATAL ERROR for deleting people map with LoanId=", input.Id) + } + for _, v := range input.PeopleMap { + e = v.Write() + if e != nil { + apiV1Client404Error(w, r, ss) + return + } + } + + // all successfully written to db + apiV1SendJson(input.PeopleMap, w, r, ss) + } + + return +} diff --git a/apiv1.go b/apiv1.go index 49377f8..7b2d95e 100644 --- a/apiv1.go +++ b/apiv1.go @@ -38,11 +38,14 @@ func setupApiV1Handler() []apiV1HandlerMap { {"POST", "grid/loan/full-loan-overview", apiV1GridLoanFullOverview}, {"GET", "loan/", apiV1LoanSingleGet}, {"GET", "people/", apiV1PeopleGet}, + {"GET", "broker/", apiV1BrokerGet}, {"POST", "loan/basic/", apiV1LoanSinglePostBasic}, {"GET", "avatar/", apiV1Avatar}, {"POST", "reward/", apiV1RewardPost}, {"DELETE", "reward/", apiV1RewardDelete}, - {"GET", "people-list", apiV1PeopleList}, + {"GET", "people-list/", apiV1PeopleList}, + {"GET", "broker-list/", apiV1BrokerList}, + {"POST", "sync-people/", apiV1SyncPeople}, {"GET", "login", apiV1DumpRequest}, } } else { //production @@ -57,11 +60,14 @@ func setupApiV1Handler() []apiV1HandlerMap { {"POST", "grid/loan/full-loan-overview", apiV1GridLoanFullOverview}, {"GET", "loan/", apiV1LoanSingleGet}, {"GET", "people/", apiV1PeopleGet}, + {"GET", "broker/", apiV1BrokerGet}, {"POST", "loan/basic/", apiV1LoanSinglePostBasic}, {"GET", "avatar/", apiV1Avatar}, {"POST", "reward/", apiV1RewardPost}, {"DELETE", "reward/", apiV1RewardDelete}, {"GET", "people-list", apiV1PeopleList}, + {"GET", "broker-list/", apiV1BrokerList}, + {"POST", "sync-people/", apiV1SyncPeople}, {"GET", "login", apiV1EmptyResponse}, } }