Example #1
0
File: base.py Project: LiberTIC/ODE
 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)
Example #2
0
File: base.py Project: przor3n/ODE
 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)
Example #3
0
 def update_database(self):
     event = Event.get_by_id(self.cstruct['data']['id'])
     appstruct = self.validate()
     event.update_from_appstruct(appstruct)
     DBSession.merge(event)
Example #4
0
 def update_database(self):
     event = Event.get_by_id(self.cstruct['data']['id'])
     appstruct = self.validate()
     event.update_from_appstruct(appstruct)
     DBSession.merge(event)