예제 #1
0
파일: base.py 프로젝트: 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)
예제 #2
0
파일: event.py 프로젝트: amarandon/ODE
 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'}
예제 #3
0
파일: base.py 프로젝트: 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)
예제 #4
0
 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)
예제 #5
0
 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
예제 #6
0
파일: __init__.py 프로젝트: LiberTIC/ODE
    def create_event(self, *args, **kwargs):

        event = Event(**kwargs)
        DBSession.add(event)
        return event
예제 #7
0
파일: harvesting.py 프로젝트: LiberTIC/ODE
 def insert_into_database(self):
     model_kwargs = self.validate()
     event = Event(**model_kwargs)
     DBSession.add(event)
예제 #8
0
 def insert_into_database(self):
     model_kwargs = self.validate()
     event = Event(**model_kwargs)
     DBSession.add(event)