Api reference
components.onboarding.public.actions ¶
cancel_person_onboarding ¶
cancel_person_onboarding ¶
Cancels the onboarding for the person onboarding. You can only cancel a non-completed onboarding
Source code in components/onboarding/internal/actions/cancel_person_onboarding.py
customer_admin ¶
cancel_customer_admin_invitation ¶
Remove a customer admin invitation by its ID.
todo @alexandre.dubreuil - Duplicates cancel_person_onboarding
Source code in components/onboarding/internal/actions/customer_admin.py
invite_customer_admin ¶
invite_customer_admin(
invitation_email,
entities,
*,
first_name=None,
last_name=None,
external_employee_id=None,
lang=None,
**email_kwargs
)
Source code in components/onboarding/internal/actions/customer_admin.py
resend_customer_admin_invitation_email ¶
Resend the invitation email for a customer admin onboarding.
Source code in components/onboarding/internal/actions/customer_admin.py
employee_onboarding ¶
update_employee_onboarding ¶
update_employee_onboarding(
person_onboarding_id,
first_name=None,
last_name=None,
birthdate=None,
street=None,
gender=None,
city=None,
province=None,
postal_code=None,
country=None,
billing_account_number=None,
viewed_terms_at=None,
commit=True,
)
Source code in components/onboarding/internal/actions/update_employee_onboarding.py
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 | |
merge_users ¶
merge_users_in_onboarding_component ¶
Support function for the "merge user" procedure: change all onboardings that target
user source_user_id so that they target user target_user_id instead.
This will change ALL onboardings for the user, including cancelled ones.
Source code in components/onboarding/internal/actions/merge_users.py
onboarding_invitation_emails ¶
resend_onboarding_invitation_email ¶
Resend an onboarding invitation email if the onboarding is pending. Do nothing otherwise.
Source code in components/onboarding/internal/actions/resend_onboarding_invitation.py
components.onboarding.public.api ¶
complete_retiree_onboarding ¶
Mark the retiree onboarding object as completed
Source code in components/onboarding/public/api.py
get_first_employee_onboarding_by_email ¶
Source code in components/onboarding/public/api.py
get_pending_onboardings ¶
Source code in components/onboarding/public/api.py
invite_employee ¶
invite_employee(
invitation_email,
coverage_start_date,
company_name,
user_id=None,
defer_side_effects=True,
commit=True,
)
Source code in components/onboarding/public/api.py
invite_partner ¶
invite_partner(
inviter_user_id,
invitation_email,
partner_profile_id,
partner_first_name,
partner_last_name,
partner_user_id,
lang=None,
send_invite_email=True,
commit=True,
)
Invites a user to onboard as a company admin.
Source code in components/onboarding/public/api.py
invite_retiree ¶
invite_retiree(
inviter_user_id,
invitation_email,
coverage_start_date,
contract_id,
retiree_onboarding_type,
retiree_user_id=None,
first_name=None,
last_name=None,
identification_number=None,
retirement_date=None,
is_offline=False,
alsace_moselle_eligibility_status=None,
read_only_fields=None,
lang=None,
send_invite_email=True,
on_duplicated_onboarding="Fail",
defer_side_effects=False,
commit=True,
)
Invites a user to onboard as retiree.
Source code in components/onboarding/public/api.py
components.onboarding.public.commands ¶
onboarding ¶
generate_frontend_typescript_types_file ¶
Use flask generate_frontend_typescript_types_file --execute to generate the frontend typescript types.
- File: "frontend/features/onboarding/queries/types.ts"
- Types: all enums and entities
Source code in components/onboarding/public/commands/onboarding.py
invite_retiree ¶
invite_retiree(
invitation_email,
start_date,
contract_ref,
retiree_user_id,
retiree_onboarding_type,
dry_run,
)
Use
flask onboarding invite_retiree --invitation_email
Source code in components/onboarding/public/commands/onboarding.py
onboarding_commands
module-attribute
¶
onboarding_commands = AppGroup(
name="onboarding",
help="Main command group for the onboarding component",
)
components.onboarding.public.constants ¶
components.onboarding.public.dependencies ¶
OnboardingDependency ¶
Bases: ABC
can_invite_partner
abstractmethod
¶
can_user_invite_company_admin
abstractmethod
¶
can_user_invite_on_retiree_contract
abstractmethod
¶
Implement can_user_invite_on_contract
can_user_onboard_as_retiree
abstractmethod
¶
create_or_update_user
abstractmethod
¶
create_retiree_proposal ¶
Creates a proposal for a retiree onboarding. The flow will then be able to redirect the user to the approval request page of the proposal, so they can sign their contract.
Source code in components/onboarding/public/dependencies.py
custom_mailer_params ¶
Allows dependencies to customize the email.
This allows dependencies to add attachments or even change the template itself.
Source code in components/onboarding/public/dependencies.py
get_account
abstractmethod
¶
get_account_org_tree_query_api
abstractmethod
¶
get_async_mailer
abstractmethod
¶
get_async_mailer(
category,
priority,
email_queue_name,
delivery=DEFAULT_DELIVERY,
job_timeout=None,
enqueue=True,
redacted_args=None,
)
Implements getting the local async_mailer
Source code in components/onboarding/public/dependencies.py
get_company
abstractmethod
¶
get_company_from_contract
abstractmethod
¶
get_company_from_employed_user ¶
get_retiree_onboarding_link
abstractmethod
¶
get_terms_documents
abstractmethod
¶
get_user_by_email
abstractmethod
¶
get_user_info ¶
is_employee_onboarding_completed ¶
Implement is_employee_onboarding_completed (override for specific completed rules)
Source code in components/onboarding/public/dependencies.py
is_partner_onboarding_completed ¶
Implement is_employee_onboarding_completed (override for specific completed rules)
Source code in components/onboarding/public/dependencies.py
is_retiree_onboarding_completed ¶
Implement is_retiree_onboarding_completed (override for specific completed rules)
Source code in components/onboarding/public/dependencies.py
on_completed_onboarding ¶
Implement on_completed_employee_onboarding (optional)
on_onboarding_completed
abstractmethod
¶
Called when an onboarding is completed. This allows dependencies to perform additional actions when an onboarding is completed.
Source code in components/onboarding/public/dependencies.py
update_user_billing_account_number
abstractmethod
¶
update_user_info
abstractmethod
¶
update_user_info(
user_id,
first_name,
last_name,
birth_date,
gender,
identification_number,
street,
postal_code,
city,
province,
country,
lang,
)
Update basic member info
Source code in components/onboarding/public/dependencies.py
update_user_settlement_account_number
abstractmethod
¶
user_can_admin_admined_entities
abstractmethod
¶
Implement user_can_admin_admined_entities
validates_billing_account_number
abstractmethod
¶
Implement validates_billing_account_number If failing to validate provided account number, should raise BankAccountValidationError
Source code in components/onboarding/public/dependencies.py
validates_legacy_contract_delay ¶
Implement validates_legacy_contract_delay If failing to validate provided dates, should raise LegacyContractDelayValidationError
Source code in components/onboarding/public/dependencies.py
validates_settlement_account_number
abstractmethod
¶
Implement validates_settlement_account_number If failing to validate provided account number, should raise BankAccountValidationError
Source code in components/onboarding/public/dependencies.py
validates_start_date ¶
Depending on the flow, the start date might be customized by members. In that case, we want to validates that date. We might want to force it to be in the future, and so on.
By default it doesn't validates anything, but one could check!
Source code in components/onboarding/public/dependencies.py
get_app_dependency ¶
set_app_dependency ¶
components.onboarding.public.entities ¶
bank_account ¶
company ¶
customer_admin_onboarding ¶
CustomerAdminInvitationToEntity
dataclass
¶
CustomerAdminInvitationToEntity(
*,
entity_id,
entity_type,
invite_as_contract_manager=None,
invite_as_people_manager=None,
invite_as_payroll_manager=None,
invite_as_invoice_manager=None,
invite_as_wellbeing_referent=None
)
Bases: DataClassJsonMixin
Dataclass representing a customer admin invitation to an entity.
invite_as_wellbeing_referent
class-attribute
instance-attribute
¶
CustomerAdminOnboarding
dataclass
¶
CustomerAdminOnboarding(
*,
id,
onboarding_type,
onboarding_status,
invitation_email,
authentication_token,
user_id,
first_name,
last_name,
lang,
is_offline,
start_date,
is_cancelled,
external_employee_id,
entities
)
Bases: PersonOnboardingEntity, DataClassJsonMixin
Dataclass representing a customer admin onboarding.
employee_onboarding ¶
EmployeeOnboardingEntity
dataclass
¶
EmployeeOnboardingEntity(
*,
person_onboarding_id,
onboarding_type,
onboarding_status,
invitation_email,
authentication_token,
user_id,
target_ref,
start_date=optional_isodate_field(),
lang,
is_offline,
employee_onboarding_progress_id,
first_name=None,
last_name=None,
birthdate=optional_isodate_field(),
gender=None,
street=None,
city=None,
province=None,
postal_code=None,
billing_account_number=None,
billing_account_type=None,
viewed_terms_at=optional_isodatetime_field(),
created_at=isodatetime_field()
)
Bases: BaseOnboardingProgress, DataClassJsonMixin
onboarding_progress ¶
BaseOnboardingProgress
dataclass
¶
BaseOnboardingProgress(
*,
person_onboarding_id,
onboarding_type,
onboarding_status,
invitation_email,
authentication_token,
user_id,
target_ref,
start_date=optional_isodate_field(),
lang,
is_offline
)
Bases: DataClassJsonMixin
partner_onboarding ¶
PartnerOnboardingEntity
dataclass
¶
PartnerOnboardingEntity(
*,
person_onboarding_id,
onboarding_type,
onboarding_status,
invitation_email,
authentication_token,
user_id,
target_ref,
start_date=optional_isodate_field(),
lang,
is_offline,
first_name=None,
last_name=None
)
Bases: BaseOnboardingProgress, DataClassJsonMixin
pending_onboardings ¶
PendingEmployeeOnboardingEntity
dataclass
¶
PendingOnboardingsEntity
dataclass
¶
Bases: DataClassJsonMixin
Represents pending onboardings
- duplicates backend/components/fr/internal/business_logic/user/queries/user.py - keep return type aligned
PendingRetireeOnboardingEntity
dataclass
¶
PendingRetireeOnboardingEntity(
id,
retirement_date,
is_offline,
alsace_moselle_eligibility_status,
onboarding_token,
onboarding_url,
onboarding_status,
)
Bases: DataClassJsonMixin
Represents a pending retiree onboarding status
- new compared to backend/components/fr/internal/business_logic/user/queries/user.py - keep return type aligned
person_onboarding ¶
PersonOnboardingEntity
dataclass
¶
PersonOnboardingEntity(
*,
id,
onboarding_type,
onboarding_status,
invitation_email,
authentication_token,
user_id,
first_name,
last_name,
lang,
is_offline,
start_date,
is_cancelled
)
Bases: DataClassJsonMixin
Dataclass representing a person onboarding.
retiree_onboarding ¶
OnboardingDocumentEntity
dataclass
¶
OnboardingDocumentToAdd
dataclass
¶
Bases: DataClassJsonMixin, DataClassJsonAlanMixin
Represent a file from the frontend, one that can be included in JSON bodies.
get_file ¶
Return a file-like object from the base64 content.
Source code in components/onboarding/public/entities/retiree_onboarding.py
OnboardingDocumentUpdates
module-attribute
¶
RetireeOnboardingEntity
dataclass
¶
RetireeOnboardingEntity(
*,
person_onboarding_id,
onboarding_type,
onboarding_status,
invitation_email,
authentication_token,
user_id,
target_ref,
start_date=optional_isodate_field(),
lang,
is_offline,
company_id,
company_name,
retiree_onboarding_progress_id,
retiree_onboarding_type,
first_name=None,
last_name=None,
birthdate=optional_isodate_field(),
gender=None,
identification_number=None,
street=None,
postal_code=None,
city=None,
province=None,
country=None,
retirement_date=optional_isodate_field(),
legacy_insurer_ref=None,
legacy_contract_ref=None,
legacy_contract_start_date=optional_isodate_field(),
billing_account_number=None,
billing_account_type=None,
settlement_account_number=None,
settlement_account_type=None,
approval_link=None,
alsace_moselle_eligibility_status=None,
onboarding_documents=list(),
read_only_fields=list(),
proposal_ref=None
)
Bases: BaseOnboardingProgress, DataClassJsonMixin
RetireeOnboardingStatusUpdate ¶
Bases: AlanBaseEnum
waiting_for_approvalis used by the frontend when we consider we are ready to create a proposal.cancelledis used to cancel the onboarding itself.
UpdateRetireeOnboardingFields
dataclass
¶
UpdateRetireeOnboardingFields(
*,
first_name=NOT_SET,
last_name=NOT_SET,
gender=NOT_SET,
birthdate=NOT_SET,
identification_number=NOT_SET,
street=NOT_SET,
postal_code=NOT_SET,
city=NOT_SET,
province=NOT_SET,
country=NOT_SET,
start_date=NOT_SET,
retirement_date=NOT_SET,
legacy_insurer_ref=NOT_SET,
legacy_contract_ref=NOT_SET,
legacy_contract_start_date=NOT_SET,
billing_account_number=NOT_SET,
settlement_account_number=NOT_SET,
onboarding_documents=NOT_SET,
is_offline=NOT_SET
)
See update_retiree_onboarding, which takes such updates.
Having those updates in the same dataclass help sharing them across different functions.
legacy_contract_start_date
class-attribute
instance-attribute
¶
terms_document ¶
user_info ¶
UserInfo
dataclass
¶
UserInfo(
first_name=None,
last_name=None,
birthdate=None,
gender=None,
identification_number=None,
street=None,
postal_code=None,
city=None,
province=None,
country=None,
settlement_account_number=None,
settlement_account_type=None,
billing_account_number=None,
billing_account_type=None,
)
Bases: DataClassJsonMixin
Dataclass containing user information used to fill the onboarding fields
components.onboarding.public.enums ¶
account_type ¶
onboarding_type ¶
OnboardingType ¶
Bases: AlanBaseEnum
company_admin_onboarding
class-attribute
instance-attribute
¶
DEPRECATED: Replaced by customer_admin_onboarding, keeping for backward compatibility
customer_admin_onboarding
class-attribute
instance-attribute
¶
dependent_onboarding
class-attribute
instance-attribute
¶
employee_onboarding
class-attribute
instance-attribute
¶
person_onboarding_status ¶
retiree_onboarding_type ¶
components.onboarding.public.errors ¶
components.onboarding.public.exceptions ¶
BankAccountValidationError ¶
Bases: Exception
LegacyContractDelayValidationError ¶
Bases: Exception
OnboardingAlreadyPendingError ¶
OnboardingAlreadyPendingError(
existing_person_onboarding_id,
message="A pending onboarding already exists",
)
Bases: Exception
Source code in components/onboarding/public/exceptions.py
OnboardingMissingInvitationEmailError ¶
OnboardingMissingInvitationEmailError(
person_onboarding_id,
message="Missing email for onboarding",
)
Bases: Exception
Source code in components/onboarding/public/exceptions.py
StartDateInThePastError ¶
Bases: Exception
components.onboarding.public.queries ¶
get_customer_admin_onboarding ¶
get_customer_admin_onboarding ¶
Get customer admin onboarding by person onboarding ID.
Source code in components/onboarding/internal/queries/customer_admin.py
get_invitation_email_for_users_and_entities ¶
:param user_id_to_entities: dict used as input to nudge towards performant data loading patterns. In practice this means calling this query function once instead of once per user. :return: most recent invitation email if any for each user and entities
Source code in components/onboarding/internal/queries/customer_admin.py
get_pending_customer_admin_onboarding ¶
Get customer admin onboarding by person onboarding ID.
Source code in components/onboarding/internal/queries/customer_admin.py
get_pending_customer_admin_onboarding_for_entities ¶
get_pending_customer_admin_onboarding_for_entities(
entities,
sort_filter,
sort_direction,
cursor=None,
limit=None,
)
Get all customer admin onboardings targeting the specified entities that are not completed.
Source code in components/onboarding/internal/queries/customer_admin.py
get_employee_onboardings ¶
get_employee_onboardings ¶
Get employee onboarding for each user ids provided.
Source code in components/onboarding/public/queries/get_employee_onboardings.py
get_first_employee_onboarding_by_user ¶
Get employee onboarding for a given user id.
Source code in components/onboarding/public/queries/get_employee_onboardings.py
get_person_onboarding ¶
get_person_onboarding ¶
Source code in components/onboarding/internal/queries/person_onboarding.py
get_person_onboarding_by_invitation_email ¶
Source code in components/onboarding/internal/queries/person_onboarding.py
get_person_onboarding_by_user ¶
Source code in components/onboarding/internal/queries/person_onboarding.py
get_person_onboardings_by_user ¶
Source code in components/onboarding/internal/queries/person_onboarding.py
get_retiree_onboarding ¶
get_retiree_onboarding ¶
Get retiree onboarding with given person_onboarding_id
Source code in components/onboarding/public/queries/get_retiree_onboarding.py
get_retiree_onboarding_from_token ¶
Get retiree onboarding with given token
Source code in components/onboarding/public/queries/get_retiree_onboarding.py
invitation_link ¶
get_onboarding_landing_url ¶
Returns the landing page URL for this person onboarding, based on its type
See FRONT_END_KEY_MAP_LANDING_PAGE above
e.g. https://alan.com/en-ca/onboarding/customer-admin-onboarding?token= ⧉...
Source code in components/onboarding/internal/queries/invitation_link.py
get_onboarding_mobile_deeplink ¶
Returns the mobile deeplink for this person onboarding, based on its type
See FRONT_END_KEY_MAP_DEEPLINK above
e.g. alanmobile://employee_onboarding?country=ca&token=...