QueryMenu.py 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. import json
  4. from alipay.aop.api.constant.ParamConstants import *
  5. from alipay.aop.api.domain.ButtonObject import ButtonObject
  6. from alipay.aop.api.domain.QueryLabelRule import QueryLabelRule
  7. class QueryMenu(object):
  8. def __init__(self):
  9. self._button = None
  10. self._label_rule = None
  11. self._menu_key = None
  12. self._type = None
  13. @property
  14. def button(self):
  15. return self._button
  16. @button.setter
  17. def button(self, value):
  18. if isinstance(value, list):
  19. self._button = list()
  20. for i in value:
  21. if isinstance(i, ButtonObject):
  22. self._button.append(i)
  23. else:
  24. self._button.append(ButtonObject.from_alipay_dict(i))
  25. @property
  26. def label_rule(self):
  27. return self._label_rule
  28. @label_rule.setter
  29. def label_rule(self, value):
  30. if isinstance(value, list):
  31. self._label_rule = list()
  32. for i in value:
  33. if isinstance(i, QueryLabelRule):
  34. self._label_rule.append(i)
  35. else:
  36. self._label_rule.append(QueryLabelRule.from_alipay_dict(i))
  37. @property
  38. def menu_key(self):
  39. return self._menu_key
  40. @menu_key.setter
  41. def menu_key(self, value):
  42. self._menu_key = value
  43. @property
  44. def type(self):
  45. return self._type
  46. @type.setter
  47. def type(self, value):
  48. self._type = value
  49. def to_alipay_dict(self):
  50. params = dict()
  51. if self.button:
  52. if isinstance(self.button, list):
  53. for i in range(0, len(self.button)):
  54. element = self.button[i]
  55. if hasattr(element, 'to_alipay_dict'):
  56. self.button[i] = element.to_alipay_dict()
  57. if hasattr(self.button, 'to_alipay_dict'):
  58. params['button'] = self.button.to_alipay_dict()
  59. else:
  60. params['button'] = self.button
  61. if self.label_rule:
  62. if isinstance(self.label_rule, list):
  63. for i in range(0, len(self.label_rule)):
  64. element = self.label_rule[i]
  65. if hasattr(element, 'to_alipay_dict'):
  66. self.label_rule[i] = element.to_alipay_dict()
  67. if hasattr(self.label_rule, 'to_alipay_dict'):
  68. params['label_rule'] = self.label_rule.to_alipay_dict()
  69. else:
  70. params['label_rule'] = self.label_rule
  71. if self.menu_key:
  72. if hasattr(self.menu_key, 'to_alipay_dict'):
  73. params['menu_key'] = self.menu_key.to_alipay_dict()
  74. else:
  75. params['menu_key'] = self.menu_key
  76. if self.type:
  77. if hasattr(self.type, 'to_alipay_dict'):
  78. params['type'] = self.type.to_alipay_dict()
  79. else:
  80. params['type'] = self.type
  81. return params
  82. @staticmethod
  83. def from_alipay_dict(d):
  84. if not d:
  85. return None
  86. o = QueryMenu()
  87. if 'button' in d:
  88. o.button = d['button']
  89. if 'label_rule' in d:
  90. o.label_rule = d['label_rule']
  91. if 'menu_key' in d:
  92. o.menu_key = d['menu_key']
  93. if 'type' in d:
  94. o.type = d['type']
  95. return o