youyesyet.routes.rest
Manually maintained routes which handle data transfer to/from the canvasser app.
create-intention-and-visit!
(create-intention-and-visit! request)
Doing visit creation logic server side; request params are expected to
include an `option_id`, an `elector_id` and an `address_id`, or an `option` and
a `location`. If no `address_id` is provided, we simply create an
`intention` record from the `option_id` and the `locality`; if an `address_id`
is provided, we need to check whether the last `visit` by the current `user`
was to the same address, if so use that as the `visit_id`, if not create
a new `visit` record.
create-request-and-visit!
(create-request-and-visit! request)
Doing visit creation logic server side; request params are expected to
include an `issue`, an `elector_id` and an `address_id` (and also a
`method_id` and `method_detail`). Ye cannae reasonably create a request
without having recorded the visit, so let's not muck about.
current-visit-id
(current-visit-id request)
Return the id of the current visit by the current user, creating it if necessary.
get-local-data
(get-local-data request)
Get data local to the user of the canvasser app. Expects arguments `latitude` and
`longitude`, or `locality`. Returns a block of data for that locality
in-get-local-data
Local data is volatile, because hopefully canvassers are updating it as they
work. So cache for only 90 seconds.
last-visit-by-current-user
(last-visit-by-current-user request)
Return the most recent visit by the currently logged in user
update-elector-signature!
(update-elector-signature! request)
Set the `signature` in the params of this `request` as the signature for
the elector whose `id` is in the params of this `request`.