"""Model for Harness.io feature flag service.""" from flask import g import json from cachetools.func import ttl_cache from pythonfeatures import pythonfeatures from blacklist_manager.constants import caching @ttl_cache(ttl=caching.TTL_15_MIN) def verify_feature_eligibility(feature_name, attributes): """Verify requested Harness.io feature eligibility.""" feature_attributes = json.loads(attributes) result = pythonfeatures.get_single_feature_by_attributes(feature_name, feature_attributes) return result.message == "enabled" def is_enabled_artist_field_blocklist_exact_match(): """Check if artist field blocklist exact match is enabled.""" feature_attributes = {"identity_id": g.request_context.identity_id} return verify_feature_eligibility( "content_review_artist_field_blocklist_exact_match", json.dumps(feature_attributes) ) def is_enabled_store_blocked_artist_validation(): """Check if store-blocked artist validation separation is enabled.""" feature_attributes = {"identity_id": g.request_context.identity_id} return verify_feature_eligibility( "content_store_blocked_artist_validation", json.dumps(feature_attributes) )