odoo_resource.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. # -*- coding: utf-8 -*-
  2. from __future__ import unicode_literals
  3. from django.conf.urls import url
  4. from tastypie.resources import Resource
  5. from tastypie.utils import trailing_slash
  6. from simplejson import JSONDecodeError
  7. from api.utils.odoo_api import (
  8. randomize_port,
  9. check_name,
  10. create_folders,
  11. create_configuration
  12. )
  13. import simplejson as json
  14. class OdooResource(Resource):
  15. class Meta:
  16. pass
  17. '''
  18. '''
  19. def prepend_urls(self):
  20. return [
  21. url(r'^(?P<resource_name>%s)/create%s$' % (self._meta.resource_name, trailing_slash), self.wrap_view('odoo_create'), name='api_odoo_create'),
  22. ]
  23. '''
  24. '''
  25. def odoo_create(self, request, **kwargs):
  26. self.method_check(request, allowed='post')
  27. self.is_authenticated(request)
  28. name = None
  29. try:
  30. data = json.loads(request.body)
  31. name = data['name']
  32. except JSONDecodeError:
  33. name = None
  34. except KeyError:
  35. name = None
  36. if not name:
  37. return self.create_response(request, {
  38. 'error_message': 'name is required'
  39. })
  40. name_exists = check_name(name)
  41. if name_exists:
  42. return self.create_response(request, {
  43. 'error_message': 'name is already exists'
  44. })
  45. create_folders(name)
  46. create_configuration(name)
  47. return self.create_response(request, {
  48. 'message': 'ok'
  49. })