agency.api

Attributes

T

UPDATE_FILTER_PARAMS

Classes

ApisMixin

PersonApiEndpoint

An API endpoint.

AgencyApiEndpoint

An API endpoint.

MembershipApiEndpoint

An API endpoint.

Functions

filter_for_updated(→ T)

Applies filters for several 'updated' comparisons.

get_geo_location(→ dict[str, Any])

get_modified_iso_format(→ str)

Returns the iso format of the modified or created field of item.

Module Contents

agency.api.T[source]
agency.api.UPDATE_FILTER_PARAMS[source]
agency.api.filter_for_updated(filter_operation: str, filter_value: str | None, result: T) T[source]

Applies filters for several ‘updated’ comparisons. Refer to UPDATE_FILTER_PARAMS for all filter keywords.

Parameters:
  • filter_operation – the updated filter operation to be applied. For allowed filters refer to UPDATE_FILTER_PARAMS

  • filter_value – the updated filter value to filter for

  • result – the results to apply the filters on

Returns:

filter result

class agency.api.ApisMixin[source]
app: onegov.agency.app.AgencyApp[source]
property agency_api: AgencyApiEndpoint[source]
property person_api: PersonApiEndpoint[source]
property membership_api: MembershipApiEndpoint[source]
agency.api.get_geo_location(item: onegov.core.orm.mixins.ContentMixin) dict[str, Any][source]
agency.api.get_modified_iso_format(item: onegov.core.orm.mixins.TimestampMixin) str[source]

Returns the iso format of the modified or created field of item.

Parameters:

item – db item e.g. agency, people, membership

Returns:

str iso representation of item last modification

class agency.api.PersonApiEndpoint(app: onegov.core.Framework, extra_parameters: dict[str, str | None] | None = None, page: int | None = None)[source]

Bases: onegov.api.ApiEndpoint[onegov.agency.models.ExtendedPerson], ApisMixin

An API endpoint.

API endpoints wrap collection and do some filter mapping.

To add a new endpoint, inherit from this class and provide the missing functions and properties at the bottom. Note that the collection is expected to be to provide the functionality of onegov.core.collection.Pagination.

app: onegov.agency.app.AgencyApp[source]
endpoint = 'people'[source]
filters[source]
form_class[source]
property collection: onegov.agency.collections.ExtendedPersonCollection[source]

Return an instance of the collection with filters and page set.

item_data(item: onegov.agency.models.ExtendedPerson) dict[str, Any][source]

Return the data properties of the collection item as a dictionary.

For example:

{
    'name': 'Paul',
    'age': 40
}

Return the link properties of the collection item as a dictionary. Links can either be string or a linkable object.

For example:

{
    'website': 'https://onegov.ch',
    'friends': FriendsApiEndpoint(app).for_item(paul),
    'home': ApiEndpointCollection(app)
}
apply_changes(item: onegov.agency.models.ExtendedPerson, form: onegov.agency.forms.PersonMutationForm) None[source]

Apply the changes to the item based on the given form data.

class agency.api.AgencyApiEndpoint(app: onegov.core.Framework, extra_parameters: dict[str, str | None] | None = None, page: int | None = None)[source]

Bases: onegov.api.ApiEndpoint[onegov.agency.models.ExtendedAgency], ApisMixin

An API endpoint.

API endpoints wrap collection and do some filter mapping.

To add a new endpoint, inherit from this class and provide the missing functions and properties at the bottom. Note that the collection is expected to be to provide the functionality of onegov.core.collection.Pagination.

app: onegov.agency.app.AgencyApp[source]
endpoint = 'agencies'[source]
filters[source]
property collection: onegov.agency.collections.PaginatedAgencyCollection[source]

Return an instance of the collection with filters and page set.

item_data(item: onegov.agency.models.ExtendedAgency) dict[str, Any][source]

Return the data properties of the collection item as a dictionary.

For example:

{
    'name': 'Paul',
    'age': 40
}

Return the link properties of the collection item as a dictionary. Links can either be string or a linkable object.

For example:

{
    'website': 'https://onegov.ch',
    'friends': FriendsApiEndpoint(app).for_item(paul),
    'home': ApiEndpointCollection(app)
}
class agency.api.MembershipApiEndpoint(app: onegov.core.Framework, extra_parameters: dict[str, str | None] | None = None, page: int | None = None)[source]

Bases: onegov.api.ApiEndpoint[onegov.agency.models.ExtendedAgencyMembership], ApisMixin

An API endpoint.

API endpoints wrap collection and do some filter mapping.

To add a new endpoint, inherit from this class and provide the missing functions and properties at the bottom. Note that the collection is expected to be to provide the functionality of onegov.core.collection.Pagination.

app: onegov.agency.app.AgencyApp[source]
endpoint = 'memberships'[source]
filters[source]
property collection: onegov.agency.collections.PaginatedMembershipCollection[source]

Return an instance of the collection with filters and page set.

item_data(item: onegov.agency.models.ExtendedAgencyMembership) dict[str, Any][source]

Return the data properties of the collection item as a dictionary.

For example:

{
    'name': 'Paul',
    'age': 40
}

Return the link properties of the collection item as a dictionary. Links can either be string or a linkable object.

For example:

{
    'website': 'https://onegov.ch',
    'friends': FriendsApiEndpoint(app).for_item(paul),
    'home': ApiEndpointCollection(app)
}