Ejemplo n.º 1
0
    def exec_main_proc(self):
        article_content_edit_table = self.dynamodb.Table(
            os.environ['ARTICLE_CONTENT_EDIT_TABLE_NAME'])

        expression_attribute_values = {
            ':user_id':
            self.event['requestContext']['authorizer']['claims']
            ['cognito:username'],
            ':title':
            TextSanitizer.sanitize_text(self.params.get('title')),
            ':body':
            TextSanitizer.sanitize_article_body(self.params.get('body')),
            ':overview':
            TextSanitizer.sanitize_text(self.params.get('overview')),
            ':eye_catch_url':
            self.params.get('eye_catch_url')
        }
        DBUtil.items_values_empty_to_none(expression_attribute_values)

        article_content_edit_table.update_item(
            Key={
                'article_id': self.params['article_id'],
            },
            UpdateExpression=
            "set user_id = :user_id, title = :title, body=:body, "
            "overview=:overview, eye_catch_url=:eye_catch_url",
            ExpressionAttributeValues=expression_attribute_values)

        return {'statusCode': 200}
    def __create_article_info(self, params, sort_key, article_id):
        article_info_table = self.dynamodb.Table(
            os.environ['ARTICLE_INFO_TABLE_NAME'])

        article_info = {
            'article_id':
            article_id,
            'user_id':
            self.event['requestContext']['authorizer']['claims']
            ['cognito:username'],
            'status':
            'draft',
            'title':
            TextSanitizer.sanitize_text(params.get('title')),
            'overview':
            TextSanitizer.sanitize_text(params.get('overview')),
            'eye_catch_url':
            params.get('eye_catch_url'),
            'sort_key':
            sort_key,
            'created_at':
            int(time.time())
        }
        DBUtil.items_values_empty_to_none(article_info)

        article_info_table.put_item(
            Item=article_info,
            ConditionExpression='attribute_not_exists(article_id)')
Ejemplo n.º 3
0
    def exec_main_proc(self):
        # 編集記事を保存
        article_content_edit_table = self.dynamodb.Table(
            os.environ['ARTICLE_CONTENT_EDIT_TABLE_NAME'])
        expression_attribute_values = {
            ':user_id':
            self.event['requestContext']['authorizer']['claims']
            ['cognito:username'],
            ':body':
            TextSanitizer.sanitize_article_body_v2(self.params.get('body'))
        }
        DBUtil.items_values_empty_to_none(expression_attribute_values)
        article_content_edit_table.update_item(
            Key={
                'article_id': self.params['article_id'],
            },
            UpdateExpression="set user_id=:user_id, body=:body",
            ExpressionAttributeValues=expression_attribute_values)
        # 履歴を保存
        DBUtil.put_article_content_edit_history(
            dynamodb=self.dynamodb,
            user_id=expression_attribute_values[':user_id'],
            article_id=self.params.get('article_id'),
            sanitized_body=expression_attribute_values[':body'])

        return {'statusCode': 200}
    def exec_main_proc(self):
        users_table = self.dynamodb.Table(os.environ['USERS_TABLE_NAME'])

        expression_attribute_values = {
            ':user_display_name':
            TextSanitizer.sanitize_text(self.params['user_display_name']),
            ':self_introduction':
            TextSanitizer.sanitize_text(self.params['self_introduction']),
            ':sync_elasticsearch':
            1
        }
        DBUtil.items_values_empty_to_none(expression_attribute_values)

        users_table.update_item(
            Key={
                'user_id':
                self.event['requestContext']['authorizer']['claims']
                ['cognito:username'],
            },
            UpdateExpression=
            ("set user_display_name=:user_display_name, self_introduction=:self_introduction, "
             "sync_elasticsearch=:sync_elasticsearch"),
            ExpressionAttributeValues=expression_attribute_values)

        return {'statusCode': 200}
Ejemplo n.º 5
0
    def test_items_values_empty_to_none_ok(self):
        values = {
            'test': 'test',
            'empty': ''
        }
        DBUtil.items_values_empty_to_none(values)

        self.assertEqual(values['test'], 'test')
        self.assertEqual(values['empty'], None)
    def __create_article_content(self, article_id):
        article_content_table = self.dynamodb.Table(
            os.environ['ARTICLE_CONTENT_TABLE_NAME'])

        article_content = {
            'article_id': article_id,
            'created_at': int(time.time())
        }
        DBUtil.items_values_empty_to_none(article_content)

        article_content_table.put_item(
            Item=article_content,
            ConditionExpression='attribute_not_exists(article_id)')
    def __create_article_content(self, params, article_id):
        article_content_table = self.dynamodb.Table(
            os.environ['ARTICLE_CONTENT_TABLE_NAME'])

        article_content = {
            'article_id': article_id,
            'body': TextSanitizer.sanitize_article_body(params.get('body')),
            'title': TextSanitizer.sanitize_text(params.get('title')),
            'created_at': int(time.time())
        }
        DBUtil.items_values_empty_to_none(article_content)

        article_content_table.put_item(
            Item=article_content,
            ConditionExpression='attribute_not_exists(article_id)')
    def __create_article_fraud_user(self, article_fraud_user_table):
        article_fraud_user = {
            'article_id': self.event['pathParameters']['article_id'],
            'user_id': self.event['requestContext']['authorizer']['claims']['cognito:username'],
            'reason': self.params.get('reason'),
            'origin_url': self.params.get('origin_url'),
            'free_text': TextSanitizer.sanitize_text(self.params.get('free_text')),
            'created_at': int(time.time())
        }
        DBUtil.items_values_empty_to_none(article_fraud_user)

        article_fraud_user_table.put_item(
            Item=article_fraud_user,
            ConditionExpression='attribute_not_exists(article_id)'
        )
Ejemplo n.º 9
0
    def __update_article_content(self):
        article_content_table = self.dynamodb.Table(os.environ['ARTICLE_CONTENT_TABLE_NAME'])

        expression_attribute_values = {
            ':title': TextSanitizer.sanitize_text(self.params.get('title')),
            ':body': TextSanitizer.sanitize_article_body(self.params.get('body'))
        }
        DBUtil.items_values_empty_to_none(expression_attribute_values)

        article_content_table.update_item(
            Key={
                'article_id': self.params['article_id'],
            },
            UpdateExpression="set title = :title, body=:body",
            ExpressionAttributeValues=expression_attribute_values
        )
Ejemplo n.º 10
0
    def exec_main_proc(self):
        # 下書き記事を保存
        expression_attribute_values = {
            ':body':
            TextSanitizer.sanitize_article_body_v2(self.params.get('body'))
        }
        DBUtil.items_values_empty_to_none(expression_attribute_values)
        self.__update_article_content(expression_attribute_values)
        # 履歴を保存
        DBUtil.put_article_content_edit_history(
            dynamodb=self.dynamodb,
            user_id=self.event['requestContext']['authorizer']['claims']
            ['cognito:username'],
            article_id=self.params.get('article_id'),
            sanitized_body=expression_attribute_values[':body'])

        return {'statusCode': 200}
Ejemplo n.º 11
0
    def __update_article_info(self):
        article_info_table = self.dynamodb.Table(os.environ['ARTICLE_INFO_TABLE_NAME'])

        expression_attribute_values = {
            ':title': TextSanitizer.sanitize_text(self.params.get('title')),
            ':overview': TextSanitizer.sanitize_text(self.params.get('overview')),
            ':eye_catch_url': self.params.get('eye_catch_url')
        }
        DBUtil.items_values_empty_to_none(expression_attribute_values)

        article_info_table.update_item(
            Key={
                'article_id': self.params['article_id'],
            },
            UpdateExpression="set title = :title, overview=:overview, eye_catch_url=:eye_catch_url",
            ExpressionAttributeValues=expression_attribute_values
        )
    def __create_article_info(self, sort_key, article_id):
        article_info_table = self.dynamodb.Table(
            os.environ['ARTICLE_INFO_TABLE_NAME'])

        article_info = {
            'article_id':
            article_id,
            'user_id':
            self.event['requestContext']['authorizer']['claims']
            ['cognito:username'],
            'status':
            'draft',
            'sort_key':
            sort_key,
            'created_at':
            int(time.time()),
            'version':
            2
        }
        DBUtil.items_values_empty_to_none(article_info)

        article_info_table.put_item(
            Item=article_info,
            ConditionExpression='attribute_not_exists(article_id)')