Procházet zdrojové kódy

broker edit works. change password works.

master
sp před 4 roky
rodič
revize
1d14af3a0c
4 změnil soubory, kde provedl 139 přidání a 0 odebrání
  1. +46
    -0
      apiV1BrokerList.go
  2. +62
    -0
      apiV1ChangePass.go
  3. +27
    -0
      apiV1login.go
  4. +4
    -0
      apiv1.go

+ 46
- 0
apiV1BrokerList.go Zobrazit soubor

@@ -2,6 +2,7 @@ package main

import (
"biukop.com/sfm/loan"
"encoding/json"
log "github.com/sirupsen/logrus"
"net/http"
)
@@ -27,3 +28,48 @@ func apiV1BrokerGet(w http.ResponseWriter, r *http.Request, ss *loan.Session) {
}
apiV1SendJson(b, w, r, ss)
}

func decodeJsonBrokerEdit(r *http.Request) (ret loan.Broker, e error) {
decoder := json.NewDecoder(r.Body)
//decoder.DisallowUnknownFields()
e = decoder.Decode(&ret)
if e != nil {
log.Error("failed decoding json for Filtering full_loan_summary ", e.Error())
return
}
return
}

func apiV1BrokerPost(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 broker by id", id, e.Error())
apiV1Client404Error(w, r, ss)
return
}

input, e := decodeJsonBrokerEdit(r)
if e != nil {
log.Error("cannot find broker by id", id, e.Error())
apiV1Client404Error(w, r, ss)
return
}
b.BSB = input.BSB
b.ACC = input.ACC
b.Display = input.Display
b.First = input.First
b.Last = input.Last
b.License = input.License
b.Organization = input.Organization

e = b.Write()
if e != nil {
log.Error("failed to save broker ", b, e.Error())
apiV1Client404Error(w, r, ss)
return
}

apiV1SendJson(b, w, r, ss)
}

+ 62
- 0
apiV1ChangePass.go Zobrazit soubor

@@ -0,0 +1,62 @@
package main

import (
"biukop.com/sfm/loan"
"encoding/json"
log "github.com/sirupsen/logrus"
"net/http"
)

type changePass struct {
OldPassword string
NewPass string
NewPass1 string
}

func decodeJsonChangePass(r *http.Request) (ret changePass, e error) {
decoder := json.NewDecoder(r.Body)
//decoder.DisallowUnknownFields()
e = decoder.Decode(&ret)
if e != nil {
log.Error("failed decoding json change password ", e.Error())
return
}
return
}

func apiV1ChangePass(w http.ResponseWriter, r *http.Request, ss *loan.Session) {
id := r.URL.Path[len(apiV1Prefix+"change-pass/"):]

u := loan.User{}
e := u.Read(id)

if e != nil {
log.Error("cannot change pass for user ", id, e.Error())
apiV1Client403Error(w, r, ss)
return
}

input, e := decodeJsonChangePass(r)
if e != nil {
log.Error("cannot decode json for change password ", id, e.Error())
apiV1Client403Error(w, r, ss)
return
}

e = u.VerifyPass(input.OldPassword)
if e != nil {
log.Error("wrong old password ", id, e.Error())
apiV1Client403Error(w, r, ss)
return
}

u.SetPass(input.NewPass)
e = u.Write()
if e != nil {
log.Error("fail to update new pass ", id, e.Error())
apiV1Server500Error(w, r)
return
}

apiV1SendJson(true, w, r, ss)
}

+ 27
- 0
apiV1login.go Zobrazit soubor

@@ -14,6 +14,15 @@ type loginForm struct {
Pass string `json:"p"`
}

type userExtra struct {
Enabled int
Login string
BSB string
ACC string
License string
Organization string
}

func apiV1Login(w http.ResponseWriter, r *http.Request, ss *loan.Session) {
res := apiV1ResponseBlank()

@@ -52,6 +61,24 @@ func apiV1Login(w http.ResponseWriter, r *http.Request, ss *loan.Session) {
u, e := ss.GetUser()
if e == nil {
res.add("user", u.People)

if ss.GetRole() == "broker" {
broker := loan.Broker{}
e := broker.Read(ss.User)
if e != nil {
log.Error("fail to retrieve broker for session ", ss, e.Error())
} else {
ue := userExtra{
Enabled: broker.Enabled,
Login: broker.Login,
BSB: broker.BSB,
ACC: broker.ACC,
License: broker.License,
Organization: broker.Organization,
}
res.add("userExtra", ue)
}
}
}
res.add("Biukop-Session", ss.Id)
res.add("Biukop-Mid", ss.Get("Biukop-Mid"))

+ 4
- 0
apiv1.go Zobrazit soubor

@@ -40,6 +40,8 @@ func setupApiV1Handler() []apiV1HandlerMap {
{"DELETE", "loan/", apiV1LoanSingleDelete},
{"GET", "people/", apiV1PeopleGet},
{"GET", "broker/", apiV1BrokerGet},
{"POST", "broker/", apiV1BrokerPost},
{"POST", "change-pass/", apiV1ChangePass},
{"POST", "loan/basic/", apiV1LoanSinglePostBasic},
{"GET", "avatar/", apiV1Avatar},
{"POST", "avatar/", apiV1AvatarPost},
@@ -67,6 +69,8 @@ func setupApiV1Handler() []apiV1HandlerMap {
{"DELETE", "loan/", apiV1LoanSingleDelete},
{"GET", "people/", apiV1PeopleGet},
{"GET", "broker/", apiV1BrokerGet},
{"POST", "broker/", apiV1BrokerPost},
{"POST", "change-pass/", apiV1ChangePass},
{"POST", "loan/basic/", apiV1LoanSinglePostBasic},
{"GET", "avatar/", apiV1Avatar},
{"POST", "avatar/", apiV1AvatarPost},

Načítá se…
Zrušit
Uložit