diff --git a/app/api/routes/_blockchain.py b/app/api/routes/_blockchain.py index 54d5f21..1ec2e48 100644 --- a/app/api/routes/_blockchain.py +++ b/app/api/routes/_blockchain.py @@ -35,6 +35,9 @@ async def s_api_v1_blockchain_send_new_content_message(request): assert request.json, "No data provided" assert request.ctx.user, "No authorized user provided" + if not request.json['hashtags']: + request.json['hashtags'] = [] + for field_key, field_value in { 'title': lambda x: isinstance(x, str), 'authors': lambda x: isinstance(x, list), @@ -44,7 +47,7 @@ async def s_api_v1_blockchain_send_new_content_message(request): 'price': lambda x: (isinstance(x, str) and x.isdigit()), 'allowResale': lambda x: isinstance(x, bool), 'royaltyParams': lambda x: (isinstance(x, list) and valid_royalty_params(x)), - + 'hashtags': lambda x: isinstance(x, list) and all([isinstance(y, str) for y in x]) }.items(): assert field_key in request.json, f"No {field_key} provided" assert field_value(request.json[field_key]), f"Invalid {field_key} provided" @@ -78,7 +81,8 @@ async def s_api_v1_blockchain_send_new_content_message(request): request.ctx.db_session, title=f"{', '.join(request.json['authors'])} - {request.json['title']}" if request.json['authors'] else request.json['title'], cover_url=f"{PROJECT_HOST}/api/v1/storage/{image_content_cid.serialize_v2()}" if image_content_cid else None, - authors=request.json['authors'] + authors=request.json['authors'], + hashtags=request.json['hashtags'] ) royalties_dict = begin_dict(8)