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 a new event""" event_info = json.loads(self.request.body) event = Event(**event_info) DBSession.add(event) DBSession.flush() return {'id': event.id, 'status': 'created'}
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 setUp(self): self.config = testing.setUp() from sqlalchemy import create_engine engine = create_engine('sqlite://') from ode.models import ( Base, MyModel, ) DBSession.configure(bind=engine) Base.metadata.create_all(engine) with transaction.manager: model = MyModel(name='one') DBSession.add(model)
def make_source(self, url=u"http://example.com", provider_id='123'): source = Source(url=url, provider_id=provider_id) DBSession.add(source) DBSession.flush() return source
def create_event(self, *args, **kwargs): event = Event(**kwargs) DBSession.add(event) return event
def insert_into_database(self): model_kwargs = self.validate() event = Event(**model_kwargs) DBSession.add(event)