示例#1
0
    def put_user(self, user_id):
        client = self._get_datastore_client()

        result = util._validate_json(flask.request)
        if result is not True:
            return result
        json = flask.request.get_json()
        json = util._escape_json(json)
        result = self._validate_create_user(user_id, json)
        if result is not True:
            return result
        result = self._validate_fields(json)
        if result is not True:
            return result

        with client.transaction():
            try:
                if users.check_if_user_exists(client, user_id):
                    return self.Response('User exists', status=409)
                entity = users.get_empty_user_entity(client, user_id)
                util._update_entity(json, ALL_MUTABLE_FIELDS, entity)
                users.create_or_update_user(client, entity)
                roles.create_user_role(client, user_id)
            except Exception as e:
                logging.error("Datastore put operation failed: %s" % str(e))
                self.Response('Internal server error', status=500)

        return self.Response('OK', status=200)
示例#2
0
    def update_user(self, user_id):
        client = self._get_datastore_client()

        result = util._validate_json(flask.request)
        if result is not True:
            return result
        json = flask.request.get_json()
        json = util._escape_json(json)
        result = self._validate_update_user(user_id, json)
        if result is not True:
            return result
        result = self._validate_fields(json)
        if result is not True:
            return result

        with client.transaction():
            try:
                entity = users.get_user(client, user_id)
                if entity is None:
                    return flask.Response('User does not exist', status=404)
                util._update_entity(json, ALL_MUTABLE_FIELDS, entity)
                users.create_or_update_user(client, entity)
            except Exception as e:
                logging.error("Datastore update operation failed: %s" % str(e))
                flask.Response('Internal server error', status=500)
        return flask.Response('OK', status=200)
示例#3
0
    def _setup_user(self, userid_hash):
        json = {"email": "*****@*****.**"}

        key = self.datastore_client.key("User", userid_hash)
        entity = datastore.Entity(key=key)
        util._update_entity(json, {'email'}, entity)
        self.datastore_client.put(entity)