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)')
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}
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)' )
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 )
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}
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)')