def post_api_key(api_key: rest_models.BaseApiKey, dao: Dao = Depends(get_dao), auth: authorization.Rules = Depends(get_rules)): auth.assert_create_api_key_roles(api_key.roles) user_id = auth.assert_user() key = secrets.token_urlsafe(32) dao.create_api_key(user_id, api_key, key)
def post_api_key( api_key: rest_models.BaseApiKey, dao: Dao = Depends(get_dao), auth: authorization.Rules = Depends(get_rules), ): auth.assert_create_api_key_roles(api_key.roles) user_id = auth.assert_user() key = generate_random_key(32) dao.create_api_key(user_id, api_key, key) user_role_keys, custom_role_keys = dao.get_api_keys_with_members( user_id, key) if len(user_role_keys) > 0: key = user_role_keys[0] return rest_models.ApiKey( key=key.key, description=key.description, time_created=key.time_created, expire_at=key.expire_at, roles=None, ) else: key = custom_role_keys[0][0] package_member = custom_role_keys[0][1] channel_member = custom_role_keys[0][2] roles = [] if package_member: roles.append( CPRole( channel=package_member.channel_name, package=package_member.package_name, role=package_member.role, )) if channel_member: roles.append( CPRole( channel=channel_member.channel_name, package=None, role=channel_member.role, )) return rest_models.ApiKey( key=key.key, description=key.description, time_created=key.time_created, expire_at=key.expire_at, roles=roles, )