Fixes #2111 The background job and operator entrypoints now use a shared function that initalizes and returns the ops classes. This is not applied in the main entrypoint as that also initializes the backend API, which we don't want in the other entrypoints.
125 lines
2.8 KiB
Python
125 lines
2.8 KiB
Python
""" shared helper to initialize ops classes """
|
|
|
|
from typing import Tuple
|
|
|
|
from .crawlmanager import CrawlManager
|
|
from .db import init_db
|
|
from .emailsender import EmailSender
|
|
|
|
from .background_jobs import BackgroundJobOps
|
|
from .basecrawls import BaseCrawlOps
|
|
from .colls import CollectionOps
|
|
from .crawls import CrawlOps
|
|
from .crawlconfigs import CrawlConfigOps
|
|
from .invites import InviteOps
|
|
from .orgs import OrgOps
|
|
from .pages import PageOps
|
|
from .profiles import ProfileOps
|
|
from .storages import StorageOps
|
|
from .users import UserManager
|
|
from .webhooks import EventWebhookOps
|
|
|
|
|
|
# pylint: disable=too-many-locals
|
|
def init_ops() -> Tuple[
|
|
OrgOps,
|
|
CrawlConfigOps,
|
|
BaseCrawlOps,
|
|
CrawlOps,
|
|
PageOps,
|
|
CollectionOps,
|
|
ProfileOps,
|
|
StorageOps,
|
|
BackgroundJobOps,
|
|
EventWebhookOps,
|
|
UserManager,
|
|
]:
|
|
"""Initialize and return ops classes"""
|
|
email = EmailSender()
|
|
|
|
dbclient, mdb = init_db()
|
|
|
|
invite_ops = InviteOps(mdb, email)
|
|
|
|
user_manager = UserManager(mdb, email, invite_ops)
|
|
|
|
org_ops = OrgOps(mdb, invite_ops, user_manager)
|
|
|
|
event_webhook_ops = EventWebhookOps(mdb, org_ops)
|
|
|
|
crawl_manager = CrawlManager()
|
|
|
|
storage_ops = StorageOps(org_ops, crawl_manager)
|
|
|
|
background_job_ops = BackgroundJobOps(
|
|
mdb, email, user_manager, org_ops, crawl_manager, storage_ops
|
|
)
|
|
|
|
profile_ops = ProfileOps(
|
|
mdb, org_ops, crawl_manager, storage_ops, background_job_ops
|
|
)
|
|
|
|
crawl_config_ops = CrawlConfigOps(
|
|
dbclient,
|
|
mdb,
|
|
user_manager,
|
|
org_ops,
|
|
crawl_manager,
|
|
profile_ops,
|
|
)
|
|
|
|
coll_ops = CollectionOps(mdb, crawl_manager, org_ops, event_webhook_ops)
|
|
|
|
base_crawl_ops = BaseCrawlOps(
|
|
mdb,
|
|
user_manager,
|
|
org_ops,
|
|
crawl_config_ops,
|
|
coll_ops,
|
|
storage_ops,
|
|
event_webhook_ops,
|
|
background_job_ops,
|
|
)
|
|
|
|
crawl_ops = CrawlOps(
|
|
crawl_manager,
|
|
mdb,
|
|
user_manager,
|
|
org_ops,
|
|
crawl_config_ops,
|
|
coll_ops,
|
|
storage_ops,
|
|
event_webhook_ops,
|
|
background_job_ops,
|
|
)
|
|
|
|
page_ops = PageOps(mdb, crawl_ops, org_ops, storage_ops)
|
|
|
|
base_crawl_ops.set_page_ops(page_ops)
|
|
|
|
crawl_ops.set_page_ops(page_ops)
|
|
|
|
background_job_ops.set_ops(crawl_ops, profile_ops)
|
|
|
|
org_ops.set_ops(base_crawl_ops, profile_ops, coll_ops, background_job_ops)
|
|
|
|
user_manager.set_ops(org_ops, crawl_config_ops, base_crawl_ops)
|
|
|
|
background_job_ops.set_ops(base_crawl_ops, profile_ops)
|
|
|
|
crawl_config_ops.set_coll_ops(coll_ops)
|
|
|
|
return (
|
|
org_ops,
|
|
crawl_config_ops,
|
|
base_crawl_ops,
|
|
crawl_ops,
|
|
page_ops,
|
|
coll_ops,
|
|
profile_ops,
|
|
storage_ops,
|
|
background_job_ops,
|
|
event_webhook_ops,
|
|
user_manager,
|
|
)
|