Coverage for functions \ flipdare \ services.py: 74%
174 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# Copyright (c) 2026 Flipdare Pty Ltd. All rights reserved.
3#
4# This file is part of Flipdare's proprietary software and contains
5# confidential and copyrighted material. Unauthorised copying,
6# modification, distribution, or use of this file is strictly
7# prohibited without prior written permission from Flipdare Pty Ltd.
8#
9# This software includes third-party components licensed under MIT,
10# BSD, and Apache 2.0 licences. See THIRD_PARTY_NOTICES for details.
11#
13from __future__ import annotations
15from google.cloud.storage import Bucket as StorageBucket
16from google.cloud.firestore import Client as FirestoreClient
17from firebase_admin._auth_client import Client as AuthClient
19from flipdare.backend.app_stats import AppStats
20from flipdare.backend.exchange_rate_monitor import ExchangeRateMonitor
21from flipdare.manager.task_manager import TaskManager
22from flipdare.service.payments.app_payment_service import AppPaymentService
23from flipdare.service.payments.risk_service import RiskService
24from flipdare.task.command_task_handler import CommandTaskHandler
25from flipdare.task.cron_task_handler import CronTaskHandler
26from flipdare.app_service import get_app_service
27from flipdare.backend.app_scheduler import AppScheduler
28from flipdare.backend.runtime_config_admin import RuntimeConfigAdmin
29from flipdare.service.account_service import AccountService
30from flipdare.service.external_account_service import ExternalAccountService
31from flipdare.service.content_service import ContentService
32from flipdare.service.dare_service import DareService
33from flipdare.service.flag_service import FlagService
34from flipdare.service.friend_service import FriendService
35from flipdare.service.group_service import GroupService
36from flipdare.backend.indexer_service import IndexerService
37from flipdare.manager.service_manager import ServiceManager
38from flipdare.manager.db_manager import DbManager
39from flipdare.manager.search_manager import SearchManager
40from flipdare.manager.backend_manager import BackendManager
41from flipdare.service.notification_service import NotificationService
42from flipdare.service.pledge_service import PledgeService
43from flipdare.service.search_service import SearchService
44from flipdare.backend.app_logger import AppLogger
45from flipdare.backend.job_logger import JobLogger
46from flipdare.task.report_task_handler import ReportTaskHandler
47from flipdare.service.user_service import UserService
48from flipdare.mailer.admin_mailer import AdminMailer
49from flipdare.mailer.user_mailer import UserMailer
50from flipdare.firestore.backend.app_job_db import AppJobDb
51from flipdare.firestore.backend.app_log_db import AppLogDb
52from flipdare.firestore.backend.app_stat_db import AppStatDb
53from flipdare.firestore.backend.exchange_rate_db import ExchangeRateDb
54from flipdare.firestore.backend.run_config_group_db import RunConfigGroupDb
55from flipdare.firestore.backend.run_config_job_db import RunConfigJobDb
56from flipdare.firestore.chat_db import ChatDb
57from flipdare.firestore.content_db import ContentDb
58from flipdare.firestore.dare_db import DareDb
59from flipdare.firestore.flag_db import FlagDb
60from flipdare.firestore.friend_db import FriendDb
61from flipdare.firestore.group_db import GroupDb
62from flipdare.firestore.invite_db import InviteDb
63from flipdare.firestore.pledge_db import PledgeDb
64from flipdare.firestore.restriction_db import RestrictionDb
65from flipdare.firestore.user_db import UserDb
66from flipdare.firestore.user_summary_db import UserSummaryDb
67from flipdare.job.job_admin import JobAdmin
68from flipdare.service.safety.moderation_service import ModerationService
69from flipdare.service.safety.reputation_service import ReputationService
70from flipdare.service.safety.restriction_service import RestrictionService
71from flipdare.search.db.app_friend_search import AppFriendSearch
72from flipdare.search.db.app_general_search import AppGeneralSearch
73from flipdare.task.trigger_task_handler import TriggerTaskHandler
75__all__ = [
76 "get_service_manager",
77 "get_backend_manager",
78 "get_search_manager",
79 "get_restriction_service",
80 "get_moderation_service",
81 "get_reputation_service",
82 "get_friend_search",
83 "get_general_search",
84 "get_auth_client",
85 "get_job_admin",
86 "get_app_scheduler",
87 "get_app_logger",
88 "get_job_logger",
89 "get_admin_mailer",
90 "get_user_emailer",
91 "get_report_handler",
92 "get_default_bucket",
93 "get_runtime_config",
94 "get_exchange_rate_handler",
95 "get_friend_service",
96 "get_content_service",
97 "get_account_service",
98 "get_ext_account_service",
99 "get_notification_service",
100 "get_pledge_service",
101 "get_user_service",
102 "get_group_service",
103 "get_flag_service",
104 "get_indexer_service",
105 "get_dare_service",
106 "get_search_service",
107 "get_firestore_client",
108 "get_db_manager",
109 "get_user_db",
110 "get_content_db",
111 "get_group_db",
112 "get_friend_db",
113 "get_invite_db",
114 "get_dare_db",
115 "get_pledge_db",
116 "get_flag_db",
117 "get_restriction_db",
118 "get_chat_db",
119 "get_exchange_rate_db",
120 "get_run_group_db",
121 "get_run_job_db",
122 "get_stats_db",
123 "get_log_db",
124 "get_job_db",
125 "get_summary_db",
126]
129# -----------------------------------------------------------------------------
130# managers
131# -----------------------------------------------------------------------------
134def get_service_manager() -> ServiceManager:
135 return get_app_service().service_manager
138def get_backend_manager() -> BackendManager:
139 return get_app_service().backend_manager
142def get_search_manager() -> SearchManager:
143 return get_app_service().search_manager
146def get_task_manager() -> TaskManager:
147 return get_app_service().task_manager
150# -----------------------------------------------------------------------------
151# Search
152# -----------------------------------------------------------------------------
155def get_friend_search() -> AppFriendSearch:
156 return get_app_service().search_manager.friend
159def get_general_search() -> AppGeneralSearch:
160 return get_app_service().search_manager.general
163# -----------------------------------------------------------------------------
164# Backend
165# -----------------------------------------------------------------------------
168def get_auth_client() -> AuthClient:
169 return get_app_service().auth
172def get_job_admin() -> JobAdmin:
173 return get_app_service().backend_manager.job_admin
176def get_app_scheduler() -> AppScheduler:
177 return get_app_service().backend_manager.app_scheduler
180def get_app_logger() -> AppLogger:
181 return get_app_service().backend_manager.app_logger
184def get_job_logger() -> JobLogger:
185 return get_app_service().backend_manager.job_logger
188def get_app_stats() -> AppStats:
189 return get_app_service().backend_manager.app_stats
192def get_admin_mailer() -> AdminMailer:
193 return get_app_service().backend_manager.admin_mailer
196def get_user_emailer() -> UserMailer:
197 return get_app_service().backend_manager.user_mailer
200def get_report_handler() -> ReportTaskHandler:
201 return get_app_service().task_manager.report_handler
204def get_cron_handler() -> CronTaskHandler:
205 return get_app_service().task_manager.cron_handler
208def get_command_handler() -> CommandTaskHandler:
209 return get_app_service().task_manager.command_handler
212def get_trigger_handler() -> TriggerTaskHandler:
213 return get_app_service().task_manager.trigger_handler
216def get_default_bucket() -> StorageBucket:
217 return get_app_service().backend_manager.storage_bucket
220def get_runtime_config() -> RuntimeConfigAdmin:
221 return get_app_service().backend_manager.runtime_config
224def get_exchange_rate_handler() -> ExchangeRateMonitor:
225 return get_app_service().backend_manager.exchange_rate_monitor
228# -----------------------------------------------------------------------------
229# Services
230# -----------------------------------------------------------------------------
233def get_friend_service() -> FriendService:
234 return get_app_service().service_manager.friend
237def get_content_service() -> ContentService:
238 return get_app_service().service_manager.content
241def get_account_service() -> AccountService:
242 return get_app_service().service_manager.account
245def get_ext_account_service() -> ExternalAccountService:
246 return get_app_service().service_manager.ext_account
249def get_notification_service() -> NotificationService:
250 return get_app_service().service_manager.notification
253def get_pledge_service() -> PledgeService:
254 return get_app_service().service_manager.pledge
257def get_user_service() -> UserService:
258 return get_app_service().service_manager.user
261def get_group_service() -> GroupService:
262 return get_app_service().service_manager.group
265def get_flag_service() -> FlagService:
266 return get_app_service().service_manager.flag
269def get_indexer_service() -> IndexerService:
270 return get_app_service().backend_manager.indexer
273def get_dare_service() -> DareService:
274 return get_app_service().service_manager.dare
277def get_search_service() -> SearchService:
278 return get_app_service().service_manager.search
281def get_payment_service() -> AppPaymentService:
282 return get_app_service().service_manager.payment
285def get_risk_service() -> RiskService:
286 return get_app_service().service_manager.risk
289# -----------------------------------------------------------------------------
290# Safety
291# -----------------------------------------------------------------------------
294def get_restriction_service() -> RestrictionService:
295 return get_app_service().service_manager.restriction
298def get_moderation_service() -> ModerationService:
299 return get_app_service().service_manager.moderation
302def get_reputation_service() -> ReputationService:
303 return get_app_service().service_manager.reputation
306# -----------------------------------------------------------------------------
307# Databases
308# -----------------------------------------------------------------------------
311def get_firestore_client() -> FirestoreClient:
312 return get_app_service().firestore_client
315def get_db_manager() -> DbManager:
316 return get_app_service().db_manager
319def get_user_db() -> UserDb:
320 return get_app_service().db_manager.user_db
323def get_content_db() -> ContentDb:
324 return get_app_service().db_manager.content_db
327def get_group_db() -> GroupDb:
328 return get_app_service().db_manager.group_db
331def get_friend_db() -> FriendDb:
332 return get_app_service().db_manager.friend_db
335def get_invite_db() -> InviteDb:
336 return get_app_service().db_manager.invite_db
339def get_dare_db() -> DareDb:
340 return get_app_service().db_manager.dare_db
343def get_pledge_db() -> PledgeDb:
344 return get_app_service().db_manager.pledge_db
347def get_flag_db() -> FlagDb:
348 return get_app_service().db_manager.flag_db
351def get_restriction_db() -> RestrictionDb:
352 return get_app_service().db_manager.restriction_db
355def get_chat_db() -> ChatDb:
356 return get_app_service().db_manager.chat_db
359# -----------------------------------------------------------------------------
360# Internal Databases
361# -----------------------------------------------------------------------------
364def get_exchange_rate_db() -> ExchangeRateDb:
365 return get_app_service().db_manager.exchange_rate_db
368def get_run_group_db() -> RunConfigGroupDb:
369 return get_app_service().db_manager.run_group_db
372def get_run_job_db() -> RunConfigJobDb:
373 return get_app_service().db_manager.run_job_db
376def get_stats_db() -> AppStatDb:
377 return get_app_service().db_manager.stat_db
380def get_log_db() -> AppLogDb:
381 return get_app_service().db_manager.log_db
384def get_job_db() -> AppJobDb:
385 return get_app_service().db_manager.job_db
388def get_summary_db() -> UserSummaryDb:
389 return get_app_service().db_manager.summary_db