def update(self, id): """Update a syntactic category and return it. :URL: ``PUT /syntacticcategorys/id`` :Request body: JSON object representing the syntactic category with updated attribute values. :param str id: the ``id`` value of the syntactic category to be updated. :returns: the updated syntactic category model. """ syntactic_category = Session.query(SyntacticCategory).get(int(id)) if syntactic_category: try: old_name = syntactic_category.name schema = SyntacticCategorySchema() values = json.loads(unicode(request.body, request.charset)) state = h.get_state_object(values) state.id = id data = schema.to_python(values, state) syntactic_category = update_syntactic_category(syntactic_category, data) # syntactic_category will be False if there are no changes (cf. update_syntactic_category). if syntactic_category: Session.add(syntactic_category) Session.commit() if syntactic_category.name != old_name: update_forms_referencing_this_category(syntactic_category) return syntactic_category else: response.status_int = 400 return {"error": u"The update request failed because the submitted data were not new."} except h.JSONDecodeError: response.status_int = 400 return h.JSONDecodeErrorResponse except Invalid, e: response.status_int = 400 return {"errors": e.unpack_errors()}
def update(self, id): """Update a syntactic category and return it. :URL: ``PUT /syntacticcategorys/id`` :Request body: JSON object representing the syntactic category with updated attribute values. :param str id: the ``id`` value of the syntactic category to be updated. :returns: the updated syntactic category model. """ syntactic_category = Session.query(SyntacticCategory).get(int(id)) if syntactic_category: try: old_name = syntactic_category.name schema = SyntacticCategorySchema() values = json.loads(unicode(request.body, request.charset)) state = h.get_state_object(values) state.id = id data = schema.to_python(values, state) syntactic_category = update_syntactic_category( syntactic_category, data) # syntactic_category will be False if there are no changes (cf. update_syntactic_category). if syntactic_category: Session.add(syntactic_category) Session.commit() if syntactic_category.name != old_name: update_forms_referencing_this_category( syntactic_category) return syntactic_category else: response.status_int = 400 return { 'error': u'The update request failed because the submitted data were not new.' } except h.JSONDecodeError: response.status_int = 400 return h.JSONDecodeErrorResponse except Invalid, e: response.status_int = 400 return {'errors': e.unpack_errors()}
def create(self): """Create a new syntactic category resource and return it. :URL: ``POST /syntacticcategorys`` :request body: JSON object representing the syntactic category to create. :returns: the newly created syntactic category. """ try: schema = SyntacticCategorySchema() values = json.loads(unicode(request.body, request.charset)) data = schema.to_python(values) syntactic_category = create_new_syntactic_category(data) Session.add(syntactic_category) Session.commit() return syntactic_category except h.JSONDecodeError: response.status_int = 400 return h.JSONDecodeErrorResponse except Invalid, e: response.status_int = 400 return {"errors": e.unpack_errors()}
def create(self): """Create a new syntactic category resource and return it. :URL: ``POST /syntacticcategorys`` :request body: JSON object representing the syntactic category to create. :returns: the newly created syntactic category. """ try: schema = SyntacticCategorySchema() values = json.loads(unicode(request.body, request.charset)) data = schema.to_python(values) syntactic_category = create_new_syntactic_category(data) Session.add(syntactic_category) Session.commit() return syntactic_category except h.JSONDecodeError: response.status_int = 400 return h.JSONDecodeErrorResponse except Invalid, e: response.status_int = 400 return {'errors': e.unpack_errors()}