Exemplo n.º 1
0
    def setUp(self):

        self.flask_app = Flask(__name__)
        self.url_prefix = '/testing/ripozo/api/v1.0'
        self.host = 'http://localhost'

        self.app = self.flask_app.test_client()
        self.dispatcher = FlaskDispatcher(self.flask_app,
                                          url_prefix=self.url_prefix)
        self.dispatcher.register_adapters(adapters.HalAdapter)
Exemplo n.º 2
0
class TaskBoardResource(restmixins.CRUDL):
    manager = TaskBoardManager(session_handler)
    resource_name = 'taskboard'
    pks = ('id', )
    _relationships = (ListRelationship('tasks', relation='TaskResource'), )

    @apimethod(route='/addtask', methods=['POST'])
    def add_task(cls, request):
        body_args = request.body_args
        body_args['task_board_id'] = request.get('id')
        request.body_args = body_args
        return TaskResource.create(request)


class TaskResource(restmixins.CRUD):
    manager = TaskManager(session_handler)
    resource_name = 'task'
    pks = ('id', )
    _relationships = (Relationship('task_board',
                                   property_map=dict(task_board_id='id'),
                                   relation='TaskBoardResource'), )


dispatcher = FlaskDispatcher(app, url_prefix='/api')
dispatcher.register_adapters(SirenAdapter, HalAdapter)
dispatcher.register_resources(TaskBoardResource, TaskResource)

if __name__ == '__main__':
    app.run(debug=True)
Exemplo n.º 3
0
    def hello_world(cls, request):
        return cls(
            properties=dict(content='Hello World!', name=request.get('name')))


class RelatedResource(ResourceBase):
    append_slash = True
    resource_name = 'related'
    pks = ('name', )

    @translate(fields=[fields.StringField('name', minimum=3, required=True)],
               validate=True)
    @apimethod(methods=['GET'])
    def hello_name(cls, request):
        name = request.url_params.get('name')
        content = 'Your name is {}'.format(name)
        return cls(properties=dict(content=content, name=name))


dispatcher = FlaskDispatcher(app)
dispatcher.register_adapters(adapters.SirenAdapter, adapters.HalAdapter)
dispatcher.register_resources(HelloResource, RelatedResource)


def main():
    app.run(debug=True)


if __name__ == '__main__':
    main()
Exemplo n.º 4
0
def create_ripozo(app):
    return FlaskDispatcher(app, url_prefix="/api")
Exemplo n.º 5
0
            dict or None: Properties of the retrieved item or None if no
                such item found.
        """
        resp = items_conn.stub.GetItem(
            items_pb2.GetItemRequest(id=lookup_keys['id']))
        item = resp.item

        if item:
            return dict(id=item.id, name=item.name)

    def retrieve_list(self, filters, *args, **kwargs):
        raise NotImplementedError()

    def update(self, lookup_keys, updates, *args, **kwargs):
        raise NotImplementedError()


class ItemResource(restmixins.Retrieve):
    """Standard ripozo resource that can be used by ripozo adapters. Handles
    requests and constructs resources to return as a request.
    """
    manager = ItemManager()
    pks = 'id',
    resource_name = 'items'


# register resources and valid response types
_dispatcher = FlaskDispatcher(items)
_dispatcher.register_adapters(JSONAPIAdapter)
_dispatcher.register_resources(ItemResource)