Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

63 lines
1.1KB

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