"""Logic for physical reporting presets.""" from oto.response import Response from reporting.models import report_presets def get_report_presets(account_type, account_id): """Get report presets for a vendor or subaccount. Args: account_type (string): Orchard account type. account_id (int): Orchard account id. Returns: oto.Response: Report presets. """ account_presets = report_presets.get_report_presets( account_type, account_id ) if not account_presets: return account_presets orchard_presets = report_presets.get_orchard_report_presets() if not orchard_presets: return orchard_presets combined_presets = sorted( account_presets.message + orchard_presets.message, key=lambda preset: preset['name'].lower(), ) return Response(message={'items': combined_presets}) def delete_report_preset(preset_id, account_type, account_id): """Delete report preset. Args: preset_id (int): Preset id account_type (string): Orchard account type. account_id (int): Orchard account id. Returns: oto.Response: Report presets. """ return report_presets.delete_report_preset( preset_id, account_type, account_id ) def create_report_preset(preset, account_type, account_id, user_id): """Create report preset. Args: preset (obj): Preset account_type (string): Orchard account type. account_id (int): Orchard account id. user_id (int): Orchard user id. Returns: oto.Response: Report presets. """ return report_presets.create_report_preset( preset, account_type, account_id, user_id )