service.py 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. import jimit as ji
  4. import json
  5. from flask import Blueprint
  6. from flask import request
  7. from jimvc.api.base import Base
  8. from jimvc.models import Utils
  9. from jimvc.models import Rules
  10. from jimvc.models import Service
  11. __author__ = 'James Iter'
  12. __date__ = '2018/10/7'
  13. __contact__ = 'james.iter.cn@gmail.com'
  14. __copyright__ = '(c) 2018 by James Iter.'
  15. blueprint = Blueprint(
  16. 'api_service',
  17. __name__,
  18. url_prefix='/api/service'
  19. )
  20. blueprints = Blueprint(
  21. 'api_services',
  22. __name__,
  23. url_prefix='/api/services'
  24. )
  25. service_base = Base(the_class=Service, the_blueprint=blueprint, the_blueprints=blueprints)
  26. @Utils.dumps2response
  27. def r_create():
  28. args_rules = [
  29. Rules.PROJECT_ID.value,
  30. Rules.NAME.value
  31. ]
  32. if 'description' in request.json:
  33. args_rules.append(
  34. Rules.DESCRIPTION.value,
  35. )
  36. try:
  37. ret = dict()
  38. ret['state'] = ji.Common.exchange_state(20000)
  39. ji.Check.previewing(args_rules, request.json)
  40. service = Service()
  41. service.project_id = request.json.get('project_id', None)
  42. service.name = request.json.get('name', None)
  43. service.description = request.json.get('description', '')
  44. service.create()
  45. service.get_by('create_time')
  46. ret['data'] = service.__dict__
  47. return ret
  48. except ji.PreviewingError, e:
  49. return json.loads(e.message)
  50. @Utils.dumps2response
  51. def r_update(_id):
  52. service = Service()
  53. args_rules = [
  54. Rules.ID.value
  55. ]
  56. if 'project_id' in request.json:
  57. args_rules.append(
  58. Rules.PROJECT_ID.value,
  59. )
  60. if 'name' in request.json:
  61. args_rules.append(
  62. Rules.NAME.value,
  63. )
  64. if 'description' in request.json:
  65. args_rules.append(
  66. Rules.DESCRIPTION.value,
  67. )
  68. if args_rules.__len__() < 2:
  69. ret = dict()
  70. ret['state'] = ji.Common.exchange_state(20000)
  71. return ret
  72. request.json['id'] = _id
  73. try:
  74. ji.Check.previewing(args_rules, request.json)
  75. service.id = int(request.json.get('id'))
  76. service.get()
  77. service.project_id = request.json.get('project_id', service.project_id)
  78. service.name = request.json.get('name', service.name)
  79. service.description = request.json.get('description', service.description)
  80. service.update()
  81. service.get()
  82. ret = dict()
  83. ret['state'] = ji.Common.exchange_state(20000)
  84. ret['data'] = service.__dict__
  85. return ret
  86. except ji.PreviewingError, e:
  87. return json.loads(e.message)
  88. @Utils.dumps2response
  89. def r_get(ids):
  90. return service_base.get(ids=ids, ids_rule=Rules.IDS.value, by_field='id')
  91. @Utils.dumps2response
  92. def r_get_by_filter():
  93. return service_base.get_by_filter()
  94. @Utils.dumps2response
  95. def r_content_search():
  96. return service_base.content_search()
  97. @Utils.dumps2response
  98. def r_delete(ids):
  99. args_rules = [
  100. Rules.IDS.value
  101. ]
  102. try:
  103. ji.Check.previewing(args_rules, {'ids': ids})
  104. service = Service()
  105. # 检测所指定的 项目 都存在
  106. for _id in ids.split(','):
  107. service.id = int(_id)
  108. service.get()
  109. # 执行删除操作
  110. for _id in ids.split(','):
  111. service.id = int(_id)
  112. service.get()
  113. service.delete()
  114. ret = dict()
  115. ret['state'] = ji.Common.exchange_state(20000)
  116. return ret
  117. except ji.PreviewingError, e:
  118. return json.loads(e.message)