Source code for accounts.services.users
"""
Provide service API for legacy user data.
This maps modules and functions required by the accounts service to
corresponding objects in the :mod:`arxiv.users.legacy` module.
"""
from arxiv.users import legacy
init_app = legacy.util.init_app
transaction = legacy.util.transaction
models = legacy.models
drop_all = legacy.util.drop_all
exceptions = legacy.exceptions
authenticate = legacy.authenticate.authenticate
get_user_by_id = legacy.accounts.get_user_by_id
register = legacy.accounts.register
username_exists = legacy.accounts.username_exists
email_exists = legacy.accounts.email_exists
update = legacy.accounts.update
[docs]def create_all() -> None:
    """Initialize the legacy database."""
    legacy.util.create_all()
    with legacy.util.transaction() as session:
        data = session.query(legacy.models.DBPolicyClass).all()
        if data:
            return
        for datum in legacy.models.DBPolicyClass.POLICY_CLASSES:
            session.add(legacy.models.DBPolicyClass(**datum))