version.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. # -*- coding:utf-8 -*-
  2. import json
  3. import logging
  4. import requests
  5. from flask import current_app
  6. from flask_restful import reqparse, Resource
  7. from werkzeug.exceptions import InternalServerError
  8. from . import api
  9. class VersionApi(Resource):
  10. def get(self):
  11. parser = reqparse.RequestParser()
  12. parser.add_argument('current_version', type=str, required=True, location='args')
  13. args = parser.parse_args()
  14. check_update_url = current_app.config['CHECK_UPDATE_URL']
  15. if not check_update_url:
  16. return {
  17. 'version': '0.0.0',
  18. 'release_date': '',
  19. 'release_notes': '',
  20. 'can_auto_update': False
  21. }
  22. try:
  23. response = requests.get(check_update_url, {
  24. 'current_version': args.get('current_version')
  25. })
  26. except Exception as error:
  27. logging.exception("Check update error.")
  28. raise InternalServerError()
  29. content = json.loads(response.content)
  30. return {
  31. 'version': content['version'],
  32. 'release_date': content['releaseDate'],
  33. 'release_notes': content['releaseNotes'],
  34. 'can_auto_update': content['canAutoUpdate']
  35. }
  36. api.add_resource(VersionApi, '/version')