response.go 927 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package rest
  2. import (
  3. "io"
  4. "git.ali33.ru/fcg-xvii/go-tools/json"
  5. )
  6. type IResponse interface {
  7. IsError() bool
  8. KeySet(key string, val any)
  9. FileSet(name string, file io.ReadCloser)
  10. Close()
  11. Send(writer any) IErrorArgs
  12. }
  13. type Response struct {
  14. code int
  15. err IErrorArgs
  16. data json.Map
  17. files map[string]io.ReadCloser
  18. }
  19. func (s *Response) IsError() bool {
  20. return s.code != 200
  21. }
  22. func (s *Response) KeySet(key string, val any) {
  23. s.data[key] = val
  24. }
  25. func (s *Response) FileSet(name string, file io.ReadCloser) {
  26. s.files[name] = file
  27. }
  28. func (s *Response) Close() {
  29. for _, file := range s.files {
  30. file.Close()
  31. }
  32. }
  33. func (s *Response) Send(writer any) IErrorArgs {
  34. return nil
  35. }
  36. func (s *Response) Code() int {
  37. return s.code
  38. }
  39. func (s *Response) Data() json.Map {
  40. return s.data
  41. }
  42. func (s *Response) Files() map[string]io.ReadCloser {
  43. return s.files
  44. }
  45. func (s *Response) Err() IErrorArgs {
  46. return s.err
  47. }