Coverage for functions \ flipdare \ generated \ shared \ app_error_code.py: 100%
0 statements
« prev ^ index » next coverage.py v7.13.0, created at 2026-05-08 12:22 +1000
« prev ^ index » next coverage.py v7.13.0, created at 2026-05-08 12:22 +1000
1#!/usr/bin/env python
2#
3# Copyright (c) 2026 Flipdare Pty Ltd. All rights reserved.
4#
5# This file is part of Flipdare's proprietary software and contains
6# confidential and copyrighted material. Unauthorised copying,
7# modification, distribution, or use of this file is strictly
8# prohibited without prior written permission from Flipdare Pty Ltd.
9#
10# This software includes third-party components licensed under MIT,
11# BSD, and Apache 2.0 licences. See THIRD_PARTY_NOTICES for details.
12#
13# NOTE: THIS FILE IS AUTO GENERATED. DO NOT EDIT.
14#
15# Generated by codegen_models.py
16#
17# Modify 'codegen_models.py'
18# and re-run the script above to update.
19#
21# pragma: no cover
23from enum import StrEnum
24from flipdare.generated.shared.app_log_category import AppLogCategory
27class AppErrorCode(StrEnum):
28 """Error code enum carrying http_code, category and display display_title."""
30 # Declared here so type-checkers know these attributes exist.
31 # They are populated per-member inside __new__.
32 _http_code: int
33 _category: AppLogCategory
34 _display_title: str
36 def __new__(
37 cls,
38 code: str,
39 http_code: int | None = None,
40 category: AppLogCategory | None = None,
41 display_title: str | None = None,
42 ) -> "AppErrorCode":
43 obj = str.__new__(cls, code)
44 obj._value_ = code
45 # Only set attributes if they are provided (during member definition)
46 if http_code is not None:
47 obj._http_code = http_code
48 if category is not None:
49 obj._category = category
50 if display_title is not None:
51 obj._display_title = display_title
52 return obj
54 # ---- Members --------------------------------------------------------
55 # fmt: off
56 SERVER = ("SERVER", 500, AppLogCategory.SERVER, "Server Error")
57 DATABASE = ("DATABASE", 500, AppLogCategory.DATABASE, "Database Error")
58 SERVER_MAINTENANCE = ("SERVER_MAINTENANCE", 503, AppLogCategory.SERVER, "Maintenance Mode")
59 SERVER_CONFIG = ("SERVER_CONFIG", 500, AppLogCategory.SERVER, "Bad Server Configuration")
60 SERVER_INIT = ("SERVER_INIT", 503, AppLogCategory.SERVER, "Server Initialization Error")
61 SERVER_EX = ("SERVER_EXCEPTION", 500, AppLogCategory.SERVER, "Server Exception")
62 SERVER_REPORT = ("SERVER_REPORT", 500, AppLogCategory.SERVER, "Server Report Error")
63 UNEXPECTED_CODE_PATH = ("UNEXPECTED_CODE_PATH", 500, AppLogCategory.CONFIG, "Unexpected Code Path")
64 GUARD = ("GUARD", 500, AppLogCategory.CONFIG, "Guard Error")
65 UNKNOWN = ("UNKNOWN", 400, AppLogCategory.OTHER, "Unknown Error")
66 AUTH = ("AUTH", 401, AppLogCategory.AUTH, "Auth Error")
67 WRONG_AUTH_REQUEST_TYPE = ("WRONG_AUTH_REQUEST_TYPE", 500, AppLogCategory.AUTH, "Wrong Auth Request Type")
68 MISSING_AUTH_HEADER = ("MISSING_AUTH_HEADER", 401, AppLogCategory.AUTH, "Missing Auth Header")
69 MALFORMED_AUTH_HEADER = ("MALFORMED_AUTH_HEADER", 401, AppLogCategory.AUTH, "Malformed Auth Header")
70 EMPTY_AUTH_HEADER = ("EMPTY_AUTH_HEADER", 401, AppLogCategory.AUTH, "Empty Auth Header")
71 INVALID_AUTH_TOKEN = ("INVALID_AUTH_TOKEN", 401, AppLogCategory.AUTH, "Invalid Auth Token")
72 INVALID_API_TOKEN = ("INVALID_API_TOKEN", 401, AppLogCategory.AUTH, "Invalid API Token")
73 PERMISSION_DENIED = ("PERMISSION_DENIED", 401, AppLogCategory.AUTH, "Permission Denied")
74 FORBIDDEN = ("FORBIDDEN", 403, AppLogCategory.AUTH, "Forbidden")
75 INVALID_EMAIL = ("INVALID_EMAIL", 422, AppLogCategory.EMAIL, "Invalid Email")
76 MISSING_PIN_CODE = ("MISSING_PIN_CODE", 400, AppLogCategory.REQUEST, "Missing Pin Code")
77 PIN_CODE_MISMATCH = ("PIN_CODE_MISMATCH", 400, AppLogCategory.REQUEST, "Pin Code Mismatch")
78 VALIDATION = ("VALIDATION", 400, AppLogCategory.REQUEST, "Validation Error")
79 MALFORMED_REQUEST = ("MALFORMED_REQUEST", 400, AppLogCategory.REQUEST, "Request Error")
80 DATA_LOAD = ("DATA_LOAD", 400, AppLogCategory.DATABASE, "Invalid Data Error")
81 USER_NOT_FOUND = ("USER_NOT_FOUND", 404, AppLogCategory.INTEGRITY, "User Not Found")
82 BAD_SEARCH_DATA = ("BAD_SEARCH_DATA", 400, AppLogCategory.REQUEST, "Bad Search Data")
83 CONTEXT = ("CONTEXT", 500, AppLogCategory.DATABASE, "Context Error")
84 USER_MISSING = ("USER_MISSING", 404, AppLogCategory.DATABASE, "User Missing")
85 NOT_FOUND = ("NOT_FOUND", 404, AppLogCategory.INTEGRITY, "Not Found")
86 MISSING_ID = ("MISSING_ID", 400, AppLogCategory.DATABASE, "Missing ID")
87 CREATE_FAILED = ("CREATE_FAILED", 500, AppLogCategory.DATABASE, "Create Failed")
88 UPDATE_FAILED = ("UPDATE_FAILED", 500, AppLogCategory.DATABASE, "Update Failed")
89 INVALID_DATA = ("INVALID_DATA", 400, AppLogCategory.INTEGRITY, "Invalid Data")
90 INVALID_CONTEXT = ("INVALID_CONTEXT", 500, AppLogCategory.CONFIG, "Invalid Context")
91 MISSING_DATA = ("MISSING_DATA", 400, AppLogCategory.INTEGRITY, "Missing Data")
92 MISMATCH_DATA = ("MISMATCH_DATA", 400, AppLogCategory.INTEGRITY, "Mismatch Data")
93 DATABASE_EX = ("DATABASE_EXCEPTION", 500, AppLogCategory.DATABASE, "Database Exception")
94 INDEX_FAILED = ("INDEX_FAILED", 500, AppLogCategory.SEARCH, "Index Failed")
95 EMAIL_SMTP = ("EMAIL_SMTP", 500, AppLogCategory.EMAIL, "Email Sending Error")
96 EMAIL_TEMPLATE = ("EMAIL_TEMPLATE", 500, AppLogCategory.EMAIL, "Email Template Error")
97 EMAIL = ("EMAIL", 500, AppLogCategory.EMAIL, "Email Error")
98 TRIGGER = ("TRIGGER", 500, AppLogCategory.TRIGGER, "Trigger Error")
99 REPORT = ("REPORT", 500, AppLogCategory.REPORTING, "Report Error")
100 REPORT_DATA_GENERATION = ("REPORT_DATA_GENERATION", 500, AppLogCategory.REPORTING, "Report Data Generation Error")
101 REPORT_HTML_GENERATION = ("REPORT_HTML_GENERATION", 500, AppLogCategory.REPORTING, "Report HTML Generation Error")
102 REPORT_EMAIL = ("REPORT_EMAIL", 500, AppLogCategory.REPORTING, "Report Email Error")
103 COMMAND = ("COMMAND", 500, AppLogCategory.COMMAND, "Command Error")
104 PROCESSING_STEP = ("PROCESSING_STEP", 500, AppLogCategory.CRON, "Processing Step")
105 PROCESSING_CHAINED_RESULT = ("PROCESSING_CHAINED_RESULT", 500, AppLogCategory.CRON, "Processing Chained Result")
106 DARE_PRE_FLIGHT = ("DARE_PRE_FLIGHT", 400, AppLogCategory.CRON, "Dare Pre-Flight")
107 DARE_PROCESSING = ("DARE_PROCESSING", 500, AppLogCategory.CRON, "Dare Processing")
108 CURRENCY_CONVERSION = ("CURRENCY_CONVERSION", 500, AppLogCategory.CRON, "Currency Conversion")
109 FLAG = ("FLAG", 400, AppLogCategory.CRON, "Flag Processing")
110 INVITE = ("INVITE", 400, AppLogCategory.CRON, "Invite Processing")
111 VOTING = ("VOTING", 400, AppLogCategory.CRON, "Voting Processing")
112 MODERATION = ("MODERATION", 400, AppLogCategory.CRON, "Moderation Processing")
113 SEARCH = ("SEARCH", 400, AppLogCategory.SEARCH, "Searching")
114 TAGGING = ("TAGGING", 400, AppLogCategory.CRON, "Tagging")
115 NOTIFICATION = ("NOTIFICATION", 500, AppLogCategory.CRON, "Notification")
116 SCHEDULER = ("SCHEDULER", 500, AppLogCategory.CRON, "Scheduler")
117 SAFETY = ("SAFETY", 400, AppLogCategory.CRON, "Safety")
118 USER_SUMMARY = ("USER_SUMMARY", 500, AppLogCategory.CRON, "Daily Summary")
119 CONTACT = ("CONTACT", 400, AppLogCategory.CRON, "Contact")
120 COMP_PROCESSING_FAILED = ("COMP_PROCESSING_FAILED", 500, AppLogCategory.COMPLIANCE, "Compliance Processing Failed")
121 COMP_MISSING_OBJECT = ("COMP_MISSING_OBJECT", 404, AppLogCategory.COMPLIANCE, "Compliance Missing Object")
122 COMP_INVALID_OBJECT = ("COMP_INVALID_OBJECT", 400, AppLogCategory.COMPLIANCE, "Compliance Invalid Object")
123 COMP_CREATE_FAILED = ("COMP_CREATE_FAILED", 500, AppLogCategory.COMPLIANCE, "Compliance Create Failed")
124 COMP_ANONYMIZE_FAILED = ("COMP_ANONYMIZE_FAILED", 500, AppLogCategory.COMPLIANCE, "Compliance Anonymize Failed")
125 COMP_DELETE_FAILED = ("COMP_DELETE_FAILED", 500, AppLogCategory.COMPLIANCE, "Compliance Delete Failed")
126 COMP_REMOVE_SEARCH_ERROR = ("COMP_REMOVE_SEARCH_ERROR", 500, AppLogCategory.COMPLIANCE, "Compliance Remove Search Error")
127 CURRENCY_API = ("CURRENCY_API", 500, AppLogCategory.API, "Currency API Error")
128 RESTRICTION = ("RESTRICTION", 400, AppLogCategory.SAFETY, "Restriction")
129 RESTRICTION_REMOVAL = ("RESTRICTION_REMOVAL", 400, AppLogCategory.SAFETY, "Restriction Removal")
130 RESTRICTION_MISMATCH = ("RESTRICTION_MISMATCH", 400, AppLogCategory.SAFETY, "Restriction Mismatch")
131 RESTRICTION_MISSING = ("RESTRICTION_MISSING", 400, AppLogCategory.SAFETY, "Restriction Missing")
132 NO_VIDEO = ("NO_VIDEO", 400, AppLogCategory.CONTENT, "No Video")
133 MISSING_VIDEO = ("MISSING_VIDEO", 400, AppLogCategory.CONTENT, "Missing Video")
134 OPTIMIZE_VIDEO = ("OPTIMIZE_VIDEO", 500, AppLogCategory.CONTENT, "Optimize Video")
135 THUMBNAIL_GENERATION = ("THUMBNAIL_GENERATION", 500, AppLogCategory.CONTENT, "Thumbnail Generation")
136 NO_IMAGE = ("NO_IMAGE", 400, AppLogCategory.CONTENT, "No Image")
137 MISSING_IMAGE = ("MISSING_IMAGE", 400, AppLogCategory.CONTENT, "Missing Image")
138 HASH = ("HASH", 500, AppLogCategory.CONTENT, "Hash Error")
139 INVALID_INPUT = ("INVALID_INPUT", 400, AppLogCategory.REQUEST, "Invalid Input")
140 CONTENT = ("CONTENT", 400, AppLogCategory.CONTENT, "Content Error")
141 # fmt: on
142 # ---- Properties -----------------------------------------------------
143 @property
144 def http_code(self) -> int:
145 return self._http_code
147 @property
148 def category(self) -> AppLogCategory:
149 return self._category
151 @property
152 def display_title(self) -> str:
153 return self._display_title
155 # ---- Convenience predicates -----------------------------------------
157 @property
158 def is_db_error(self) -> bool:
159 return self._category == AppLogCategory.DATABASE
161 @property
162 def is_auth_error(self) -> bool:
163 return self._category == AppLogCategory.AUTH