def collection_post(self): """Add new resources""" items = self.request.validated['items'] provider_id = self.request.validated['provider_id'] result_items = [] for item in items: item['data']['provider_id'] = provider_id resource = None if 'id' in item['data'].keys(): resource = self.model.get_by_id(item['data']['id']) if resource is not None: if provider_id != resource.provider_id: self.request.response.status_code = 403 return self.collection_json( [resource.to_item(self.request)] ) resource.update_from_appstruct(item['data']) DBSession.merge(resource) if resource is None: resource = self.model(**item['data']) DBSession.add(resource) DBSession.flush() result_items.append(resource.to_item(self.request)) response = self.request.response response.status_code = 201 if len(result_items) == 1: # POSTed a single item, we can send the Location header response.headers['location'] = result_items[0]['href'] return self.collection_json(result_items)
def collection_post(self): """Add new resources""" items = self.request.validated['items'] provider_id = self.request.validated['provider_id'] result_items = [] for item in items: item['data']['provider_id'] = provider_id resource = None if 'id' in item['data'].keys(): resource = self.model.get_by_id(item['data']['id']) if resource is not None: if provider_id != resource.provider_id: self.request.response.status_code = 403 return self.collection_json( [resource.to_item(self.request)]) resource.update_from_appstruct(item['data']) DBSession.merge(resource) if resource is None: resource = self.model(**item['data']) DBSession.add(resource) DBSession.flush() result_items.append(resource.to_item(self.request)) response = self.request.response response.status_code = 201 if len(result_items) == 1: # POSTed a single item, we can send the Location header response.headers['location'] = result_items[0]['href'] return self.collection_json(result_items)
def update_database(self): event = Event.get_by_id(self.cstruct['data']['id']) appstruct = self.validate() event.update_from_appstruct(appstruct) DBSession.merge(event)
def update_database(self): event = Event.get_by_id(self.cstruct['data']['id']) appstruct = self.validate() event.update_from_appstruct(appstruct) DBSession.merge(event)