Skip to content

Create partners

A creation workflow that create a partner.

initial_input_form_generator()

Gather input from the user needed for creating a partner.

Source code in gso/workflows/tasks/create_partners.py
def initial_input_form_generator() -> FormGenerator:
    """Gather input from the user needed for creating a partner."""

    class CreatePartnerForm(SubmitFormPage):
        model_config = ConfigDict(title="Create a Partner")

        name: PartnerName
        email: PartnerEmail

    initial_user_input = yield CreatePartnerForm

    return initial_user_input.model_dump()

save_partner_to_database(name, email)

Save user input as a new partner in database.

Source code in gso/workflows/tasks/create_partners.py
@step("Save partner information to database")
def save_partner_to_database(
    name: PartnerName,
    email: PartnerEmail,
) -> State:
    """Save user input as a new partner in database."""
    partner = create_partner(
        partner_data=PartnerSchema(
            name=name,
            email=email,
        )
    )

    return {"created_partner": partner}

task_create_partners()

Create a new Partner.

Source code in gso/workflows/tasks/create_partners.py
@workflow(
    "Create partners",
    initial_input_form=initial_input_form_generator,
    target=Target.SYSTEM,
)
def task_create_partners() -> StepList:
    """Create a new Partner."""
    return begin >> save_partner_to_database >> done