Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

64 lines
1.1KB

  1. package main
  2. import (
  3. "biukop/sfm/loan"
  4. "encoding/json"
  5. "fmt"
  6. "net/http"
  7. "time"
  8. )
  9. type apiV1Envelop struct {
  10. Version string
  11. Success bool
  12. Msg string
  13. TimeStamp string
  14. Body interface{}
  15. Session loan.Session
  16. }
  17. type apiV1Response struct {
  18. Env apiV1Envelop `json:"_"`
  19. tmp map[string]interface{}
  20. }
  21. func apiV1EnvelopBlank() (ret apiV1Envelop) {
  22. ts := time.Now().Format("2006-01-02 15:04:05")
  23. ret = apiV1Envelop{
  24. Version: loan.Version,
  25. Success: true,
  26. Msg: "",
  27. TimeStamp: ts,
  28. }
  29. return
  30. }
  31. func apiV1ResponseBlank() (ret apiV1Response) {
  32. ret.Env = apiV1EnvelopBlank()
  33. ret.tmp = make(map[string]interface{})
  34. return
  35. }
  36. func (m *apiV1Response) add(key string, value interface{}) {
  37. m.tmp[key] = value
  38. }
  39. func (m *apiV1Response) toJson() (ret []byte, e error) {
  40. tempMap := m.tmp
  41. m.tmp = nil
  42. tempMap["_"] = m.Env
  43. ret, e = json.Marshal(tempMap)
  44. return
  45. }
  46. func (m *apiV1Response) sendJson(w http.ResponseWriter) (ret []byte, e error) {
  47. tempMap := m.tmp
  48. m.tmp = nil
  49. tempMap["_"] = m.Env
  50. ret, e = json.Marshal(tempMap)
  51. //sent
  52. w.Header().Set("Content-Type", "text/json; charset=utf-8")
  53. fmt.Fprint(w, string(ret))
  54. return
  55. }