コード例 #1
0
ファイル: related.py プロジェクト: sassoo/goldman
    def on_get(self, req, resp, rid, related):
        """ Find the related model & serialize it back

        If the parent resource of the related model doesn't
        exist then abort on a 404.
        """

        signals.pre_req.send(self.model)
        signals.pre_req_find.send(self.model)

        if not hasattr(self.model, related):
            abort(InvalidURL(**{
                'detail': 'The "%s" resource does not have a related '
                          'resource named "%s". This is an error, check '
                          'your spelling & retry.' % (self.rtype, related)
            }))

        model = find(self.model, rid)
        try:
            model_related = getattr(model, related).load()
        except AttributeError:
            model_related = None

        if isinstance(model_related, list):
            props = to_rest_models(model_related, includes=req.includes)
        elif model:
            props = to_rest_model(model_related, includes=req.includes)
        else:
            props = model_related

        resp.serialize(props)

        signals.post_req.send(self.model)
        signals.post_req_find.send(self.model)
コード例 #2
0
ファイル: model.py プロジェクト: sassoo/goldman
def on_get(resc, req, resp, rid):
    """ Find the model by id & serialize it back """

    signals.pre_req.send(resc.model)
    signals.pre_req_find.send(resc.model)

    model = find(resc.model, rid)
    props = to_rest_model(model, includes=req.includes)

    resp.last_modified = model.updated
    resp.serialize(props)

    signals.post_req.send(resc.model)
    signals.post_req_find.send(resc.model)
コード例 #3
0
ファイル: model.py プロジェクト: sassoo/goldman
def on_patch(resc, req, resp, rid):
    """ Deserialize the payload & update the single item """

    signals.pre_req.send(resc.model)
    signals.pre_req_update.send(resc.model)

    props = req.deserialize()
    model = find(resc.model, rid)

    from_rest(model, props)
    goldman.sess.store.update(model)

    props = to_rest_model(model, includes=req.includes)
    resp.last_modified = model.updated
    resp.serialize(props)

    signals.post_req.send(resc.model)
    signals.post_req_update.send(resc.model)
コード例 #4
0
ファイル: models.py プロジェクト: sassoo/goldman
def on_post(resc, req, resp):
    """ Deserialize the payload & create the new single item """

    signals.pre_req.send(resc.model)
    signals.pre_req_create.send(resc.model)

    props = req.deserialize()
    model = resc.model()

    from_rest(model, props)
    goldman.sess.store.create(model)

    props = to_rest_model(model, includes=req.includes)
    resp.last_modified = model.updated
    resp.location = '%s/%s' % (req.path, model.rid_value)
    resp.status = falcon.HTTP_201
    resp.serialize(props)

    signals.post_req.send(resc.model)
    signals.post_req_create.send(resc.model)