Ejemplo n.º 1
1
    def get(self, doc_type):
        models = PEDoc.gql('WHERE docType = :1', doc_type)

        try:
            result = {doc_type: [PEDoc.convert_dict(i) for i in models]}
        except AttributeError:
            return Response(status=404)

        return render_escaped_json_response(result)
Ejemplo n.º 2
0
    def get(self, doc_type, doc_id):
        model = PEDoc.get_by_key_name(doc_id)

        try:
            result = PEDoc.convert_dict(model)
        except AttributeError:
            return Response(status=404)

        return render_escaped_json_response(result)
Ejemplo n.º 3
0
        def inner():
            try:
                docs = self._get_doc_values(self.request)
                doc_values = self._flatten_doc_values(docs)
            except NotFound:
                return Response(status=404)

            acls = AclRulesPlus.get_by_area(doc_type)
            no_admin = self._has_admin(doc_values) is False
            if acls.count() == 0:
                if no_admin:
                    return self._400()
            else:
                if no_admin and self._members(doc_values) >= self._admins(acls):
                    return self._400()

            for key in doc_values.keys():
                AclRules.insert_or_update(doc_type, key, [doc_values[key]])
            result = {doc_type: AclRulesPlus.get_by_list(doc_type)}

            return render_escaped_json_response(result)
Ejemplo n.º 4
0
    def _after(
        self,
        doc_id,
        doc_type,
        doc_values,
        ):

        if doc_id and PEDoc.get_by_key_name(doc_id):
            try:
                result = PEDoc.update_and_get_by_dict(doc_id, doc_type,
                        doc_values)
            except ConflictError:
                return Response(status=409)
            except InternalServerError:
                return Response(status=500)
        else:
            try:
                result = PEDoc.create_and_get_by_dict(doc_id, doc_type,
                        doc_values)
            except InternalServerError:
                return Response(status=500)

        return render_escaped_json_response(result)