os_init.py 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. from flask import Blueprint
  4. from flask import request, g
  5. import jimit as ji
  6. import json
  7. from api.base import Base
  8. from models import OSInit
  9. from models import OSInitWrite
  10. from models import Rules
  11. from models import Utils
  12. __author__ = 'James Iter'
  13. __date__ = '2017/3/30'
  14. __contact__ = 'james.iter.cn@gmail.com'
  15. __copyright__ = '(c) 2017 by James Iter.'
  16. blueprint = Blueprint(
  17. 'os_init',
  18. __name__,
  19. url_prefix='/api/os_init'
  20. )
  21. blueprints = Blueprint(
  22. 'os_inits',
  23. __name__,
  24. url_prefix='/api/os_inits'
  25. )
  26. os_init_base = Base(the_class=OSInit, the_blueprint=blueprint, the_blueprints=blueprints)
  27. @Utils.dumps2response
  28. def r_create():
  29. os_init = OSInit()
  30. args_rules = [
  31. Rules.NAME.value,
  32. Rules.REMARK.value
  33. ]
  34. os_init.name = request.json.get('name')
  35. os_init.remark = request.json.get('remark')
  36. try:
  37. ji.Check.previewing(args_rules, os_init.__dict__)
  38. ret = dict()
  39. ret['state'] = ji.Common.exchange_state(20000)
  40. if os_init.exist_by('name'):
  41. ret['state'] = ji.Common.exchange_state(40901)
  42. ret['state']['sub']['zh-cn'] = ''.join([ret['state']['sub']['zh-cn'], ': ', os_init.name])
  43. return ret
  44. os_init.create()
  45. os_init.get_by('name')
  46. ret['data'] = os_init.__dict__
  47. return ret
  48. except ji.PreviewingError, e:
  49. return json.loads(e.message)
  50. @Utils.dumps2response
  51. def r_update(_id):
  52. os_init = OSInit()
  53. args_rules = [
  54. Rules.ID.value
  55. ]
  56. if 'name' in request.json:
  57. args_rules.append(
  58. Rules.NAME.value,
  59. )
  60. if 'remark' in request.json:
  61. args_rules.append(
  62. Rules.REMARK.value,
  63. )
  64. if args_rules.__len__() < 2:
  65. ret = dict()
  66. ret['state'] = ji.Common.exchange_state(20000)
  67. return ret
  68. request.json['id'] = _id
  69. try:
  70. ji.Check.previewing(args_rules, request.json)
  71. os_init.id = request.json.get('id')
  72. os_init.get()
  73. os_init.name = request.json.get('name', os_init.name)
  74. os_init.remark = request.json.get('remark', os_init.remark)
  75. os_init.update()
  76. g.config = None
  77. os_init.get()
  78. ret = dict()
  79. ret['state'] = ji.Common.exchange_state(20000)
  80. ret['data'] = os_init.__dict__
  81. return ret
  82. except ji.PreviewingError, e:
  83. return json.loads(e.message)
  84. @Utils.dumps2response
  85. def r_delete(_id):
  86. os_init = OSInit()
  87. args_rules = [
  88. Rules.ID.value
  89. ]
  90. os_init.id = _id
  91. try:
  92. ji.Check.previewing(args_rules, os_init.__dict__)
  93. if os_init.exist():
  94. os_init.delete()
  95. OSInitWrite.delete_by_filter(filter_str='os_init_id:in:' + os_init.id.__str__())
  96. else:
  97. ret = dict()
  98. ret['state'] = ji.Common.exchange_state(40401)
  99. return ret
  100. except ji.PreviewingError, e:
  101. return json.loads(e.message)
  102. @Utils.dumps2response
  103. def r_get(ids):
  104. return os_init_base.get(ids=ids, ids_rule=Rules.IDS.value, by_field='id')
  105. @Utils.dumps2response
  106. def r_get_by_filter():
  107. return os_init_base.get_by_filter()
  108. @Utils.dumps2response
  109. def r_content_search():
  110. return os_init_base.content_search()