def handle_post(self, request, user, *args, **kwargs): """Treat requests POST to add Model. URL: model/ """ try: self.log.info("Add Model") # User permission if not has_perm(user, AdminPermission.BRAND_MANAGEMENT, AdminPermission.WRITE_OPERATION): self.log.error( u'User does not have permission to perform the operation.') raise UserNotAuthorizedError(None) # Load XML data xml_map, attrs_map = loads(request.raw_post_data) # XML data format networkapi_map = xml_map.get('networkapi') if networkapi_map is None: return self.response_error(3, u'There is no value to the networkapi tag of XML request.') model_map = networkapi_map.get('model') if model_map is None: return self.response_error(3, u'There is no value to the model tag of XML request.') # Get XML data name = model_map.get('name') id_brand = model_map.get('id_brand') # Valid name if not is_valid_string_minsize(name, 3) or not is_valid_string_maxsize(name, 100): self.log.error(u'Parameter name is invalid. Value: %s', name) raise InvalidValueError(None, 'name', name) # Valid ID Brand if not is_valid_int_greater_zero_param(id_brand): self.log.error( u'The id_brand parameter is not a valid value: %s.', id_brand) raise InvalidValueError(None, 'id_brand', id_brand) # Find Brand by ID to check if it exist brand = Marca.get_by_pk(id_brand) try: Modelo.get_by_name_brand(name, id_brand) raise MarcaModeloNameDuplicatedError( None, u'Já existe um modelo com o nome %s com marca %s.' % (name, brand.nome)) except ModeloNotFoundError: pass model = Modelo() # set variables model.nome = name model.marca = brand try: # save Model model.save() except Exception, e: self.log.error(u'Failed to save the Model.') raise EquipamentoError(e, u'Failed to save the Model.') model_map = dict() model_map['model'] = model_to_dict( model, exclude=["nome", "marca"]) return self.response(dumps_networkapi(model_map))
def handle_post(self, request, user, *args, **kwargs): """Treat requests POST to add Model. URL: model/ """ try: self.log.info("Add Model") # User permission if not has_perm(user, AdminPermission.BRAND_MANAGEMENT, AdminPermission.WRITE_OPERATION): self.log.error( u'User does not have permission to perform the operation.') raise UserNotAuthorizedError(None) # Load XML data xml_map, attrs_map = loads(request.raw_post_data) # XML data format networkapi_map = xml_map.get('networkapi') if networkapi_map is None: return self.response_error( 3, u'There is no value to the networkapi tag of XML request.' ) model_map = networkapi_map.get('model') if model_map is None: return self.response_error( 3, u'There is no value to the model tag of XML request.') # Get XML data name = model_map.get('name') id_brand = model_map.get('id_brand') # Valid name if not is_valid_string_minsize( name, 3) or not is_valid_string_maxsize(name, 100): self.log.error(u'Parameter name is invalid. Value: %s', name) raise InvalidValueError(None, 'name', name) # Valid ID Brand if not is_valid_int_greater_zero_param(id_brand): self.log.error( u'The id_brand parameter is not a valid value: %s.', id_brand) raise InvalidValueError(None, 'id_brand', id_brand) # Find Brand by ID to check if it exist brand = Marca.get_by_pk(id_brand) try: Modelo.get_by_name_brand(name, id_brand) raise MarcaModeloNameDuplicatedError( None, u'Já existe um modelo com o nome %s com marca %s.' % (name, brand.nome)) except ModeloNotFoundError: pass model = Modelo() # set variables model.nome = name model.marca = brand try: # save Model model.save() except Exception, e: self.log.error(u'Failed to save the Model.') raise EquipamentoError(e, u'Failed to save the Model.') model_map = dict() model_map['model'] = model_to_dict(model, exclude=["nome", "marca"]) return self.response(dumps_networkapi(model_map))