No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

60 líneas
1.2KB

  1. package main
  2. import (
  3. "biukop.com/sfm/loan"
  4. "encoding/json"
  5. log "github.com/sirupsen/logrus"
  6. "net/http"
  7. "strconv"
  8. )
  9. func decodeJsonPayInEdit(r *http.Request) (ret loan.PayIn, e error) {
  10. decoder := json.NewDecoder(r.Body)
  11. //decoder.DisallowUnknownFields()
  12. e = decoder.Decode(&ret)
  13. if e != nil {
  14. log.Error("failed decoding PayIn for updating", e.Error())
  15. return
  16. }
  17. return
  18. }
  19. func apiV1PayInPost(w http.ResponseWriter, r *http.Request, ss *loan.Session) {
  20. input, e := decodeJsonPayInEdit(r)
  21. log.Println(input)
  22. if e != nil {
  23. apiV1Client404Error(w, r, ss)
  24. return
  25. } else {
  26. e = input.Write()
  27. if e != nil {
  28. log.Error("cannot save basic loan", e.Error())
  29. apiV1Client404Error(w, r, ss)
  30. } else {
  31. apiV1SendJson(input, w, r, ss)
  32. }
  33. }
  34. }
  35. func apiV1PayInDelete(w http.ResponseWriter, r *http.Request, ss *loan.Session) {
  36. id := r.URL.Path[len(apiV1Prefix+"payIn/"):] //remove prefix
  37. idx, e := strconv.Atoi(id)
  38. if e != nil {
  39. log.Error("cannot identify PayInId ", id, e.Error())
  40. apiV1Client404Error(w, r, ss)
  41. return
  42. }
  43. e = loan.DeletePayIn(int64(idx))
  44. if e != nil {
  45. log.Error("cannot delete PayIn by id ", id, e.Error())
  46. apiV1Client404Error(w, r, ss)
  47. return
  48. }
  49. apiV1SendJson(idx, w, r, ss)
  50. }