youyesyet/docs/youyesyet.routes.rest.html

3 lines
16 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html PUBLIC ""
"">
<html><head><meta charset="UTF-8" /><title>youyesyet.routes.rest documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Youyesyet</span> <span class="project-version">0.2.2-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="authorisation.html"><div class="inner"><span>Security and authorisation</span></div></a></li><li class="depth-1 "><a href="competitors.html"><div class="inner"><span>Competitor Analysis</span></div></a></li><li class="depth-1 "><a href="database.html"><div class="inner"><span>Database Specification</span></div></a></li><li class="depth-1 "><a href="scaling.html"><div class="inner"><span>YouYesYet: Scaling</span></div></a></li><li class="depth-1 "><a href="userspec.html"><div class="inner"><span>YouYesYet: User-oriented specification</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>youyesyet</span></div></div></li><li class="depth-2 branch"><a href="youyesyet.cache.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>cache</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>canvasser-app</span></div></div></li><li class="depth-3 branch"><a href="youyesyet.canvasser-app.ajax.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>ajax</span></div></a></li><li class="depth-3 branch"><a href="youyesyet.canvasser-app.core.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>core</span></div></a></li><li class="depth-3 branch"><a href="youyesyet.canvasser-app.gis.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gis</span></div></a></li><li class="depth-3 branch"><a href="youyesyet.canvasser-app.handlers.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>handlers</span></div></a></li><li class="depth-3 branch"><a href="youyesyet.canvasser-app.state.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>state</span></div></a></li><li class="depth-3 branch"><a href="youyesyet.canvasser-app.subscriptions.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>subscriptions</span></div></a></li><li class="depth-3 branch"><a href="youyesyet.canvasser-app.ui-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>ui-utils</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>views</span></div></div></li><li class="depth-4 branch"><a href="youyesyet.canvasser-app.views.about.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>about</span></div></a></li><li class="depth-4 branch"><a href="youyesyet.canvasser-app.views.building.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>building</span></div></a></li><li class="depth-4 branch"><a href="youyesyet.canvasser-app.views.dwelling.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>dwelling</span></div></a></li><li class="depth-4 branch"><a href="youyesyet.canvasser-app.views.elector.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>elector</span></div></a></li><li class="depth-4 branch"><a href="youyesyet.canvasser-app.views.followup.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>followup</span></div></a></li><li class="depth-4 branch"><a href="youyesyet.canvasser-app.views.gdpr.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gdpr</span></div></a></li><li class="depth-4 branch"><a href="youyesyet.canvasser-app.views.issue.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>issue</span></div></a></li><li class="depth-4 branch"><a href="youyesyet.canvasser-app.views.issues.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>issues</span></div></a></li><li class="depth-4"><a href="youyesyet.canvasser-app.views.map.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>map</span></div></a></li><li class="depth-2 branch"><a href="youyesyet.config.html"><div class="inner"><span class="tree" style="top: -548px;"><span class="top" style="height: 557px;"></span><span class="bottom"></span></span><span>config</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>db</span></div></div></li><li class="depth-3"><a href="youyesyet.db.core.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>core</span></div></a></li><li class="depth-2 branch"><a href="youyesyet.handler.html"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>handler</span></div></a></li><li class="depth-2 branch"><a href="youyesyet.layout.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>layout</span></div></a></li><li class="depth-2 branch"><a href="youyesyet.locality.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>locality</span></div></a></li><li class="depth-2 branch"><a href="youyesyet.middleware.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>middleware</span></div></a></li><li class="depth-2 branch"><a href="youyesyet.oauth.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>oauth</span></div></a></li><li class="depth-2 branch"><a href="youyesyet.outqueue.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>outqueue</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></div></li><li class="depth-3 branch"><a href="youyesyet.routes.auto.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>auto</span></div></a></li><li class="depth-3 branch"><a href="youyesyet.routes.auto-json.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>auto-json</span></div></a></li><li class="depth-3 branch"><a href="youyesyet.routes.home.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>home</span></div></a></li><li class="depth-3 branch"><a href="youyesyet.routes.issue-experts.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>issue-experts</span></div></a></li><li class="depth-3 branch"><a href="youyesyet.routes.logged-in.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>logged-in</span></div></a></li><li class="depth-3 branch"><a href="youyesyet.routes.manual.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>manual</span></div></a></li><li class="depth-3 branch"><a href="youyesyet.routes.oauth.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>oauth</span></div></a></li><li class="depth-3 branch current"><a href="youyesyet.routes.rest.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>rest</span></div></a></li><li class="depth-3 branch"><a href="youyesyet.routes.roles.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>roles</span></div></a></li><li class="depth-3"><a href="youyesyet.routes.services.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>services</span></div></a></li><li class="depth-2 branch"><a href="youyesyet.utils.html"><div class="inner"><span class="tree" style="top: -331px;"><span class="top" style="height: 340px;"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><a href="youyesyet.validation.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>validation</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="youyesyet.routes.rest.html#var-create-intention-and-visit.21"><div class="inner"><span>create-intention-and-visit!</span></div></a></li><li class="depth-1"><a href="youyesyet.routes.rest.html#var-create-request-and-visit.21"><div class="inner"><span>create-request-and-visit!</span></div></a></li><li class="depth-1"><a href="youyesyet.routes.rest.html#var-current-visit-id"><div class="inner"><span>current-visit-id</span></div></a></li><li class="depth-1"><a href="youyesyet.routes.rest.html#var-get-local-data"><div class="inner"><span>get-local-data</span></div></a></li><li class="depth-1"><a href="youyesyet.routes.rest.html#var-in-get-local-data"><div class="inner"><span>in-get-local-data</span></div></a></li><li class="depth-1"><a href="youyesyet.routes.rest.html#var-last-visit-by-current-user"><div class="inner"><span>last-visit-by-current-user</span></div></a></li><li class="depth-1"><a href="youyesyet.routes.rest.html#var-rest-routes"><div class="inner"><span>rest-routes</span></div></a></li><li class="depth-1"><a href="youyesyet.routes.rest.html#var-update-elector-signature.21"><div class="inner"><span>update-elector-signature!</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">youyesyet.routes.rest</h1><div class="doc"><div class="markdown"><p>Manually maintained routes which handle data transfer to/from the canvasser app.</p></div></div><div class="public anchor" id="var-create-intention-and-visit.21"><h3>create-intention-and-visit!</h3><div class="usage"><code>(create-intention-and-visit! request)</code></div><div class="doc"><div class="markdown"><p>Doing visit creation logic server side; request params are expected to include an <code>option_id</code>, an <code>elector_id</code> and an <code>address_id</code>, or an <code>option</code> and a <code>location</code>. If no <code>address_id</code> is provided, we simply create an <code>intention</code> record from the <code>option_id</code> and the <code>locality</code>; if an <code>address_id</code> is provided, we need to check whether the last <code>visit</code> by the current <code>user</code> was to the same address, if so use that as the <code>visit_id</code>, if not create a new <code>visit</code> record.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/youyesyet/blob/master/src/clj/youyesyet/routes/rest.clj#L123">view source</a></div></div><div class="public anchor" id="var-create-request-and-visit.21"><h3>create-request-and-visit!</h3><div class="usage"><code>(create-request-and-visit! request)</code></div><div class="doc"><div class="markdown"><p>Doing visit creation logic server side; request params are expected to include an <code>issue</code>, an <code>elector_id</code> and an <code>address_id</code> (and also a <code>method_id</code> and <code>method_detail</code>). Ye cannae reasonably create a request without having recorded the visit, so lets not muck about.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/youyesyet/blob/master/src/clj/youyesyet/routes/rest.clj#L154">view source</a></div></div><div class="public anchor" id="var-current-visit-id"><h3>current-visit-id</h3><div class="usage"><code>(current-visit-id request)</code></div><div class="doc"><div class="markdown"><p>Return the id of the current visit by the current user, creating it if necessary.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/youyesyet/blob/master/src/clj/youyesyet/routes/rest.clj#L101">view source</a></div></div><div class="public anchor" id="var-get-local-data"><h3>get-local-data</h3><div class="usage"><code>(get-local-data request)</code></div><div class="doc"><div class="markdown"><p>Get data local to the user of the canvasser app. Expects arguments <code>latitude</code> and <code>longitude</code>, or <code>locality</code>. Returns a block of data for that locality</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/youyesyet/blob/master/src/clj/youyesyet/routes/rest.clj#L81">view source</a></div></div><div class="public anchor" id="var-in-get-local-data"><h3>in-get-local-data</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>Local data is volatile, because hopefully canvassers are updating it as they work. So cache for only 90 seconds.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/youyesyet/blob/master/src/clj/youyesyet/routes/rest.clj#L49">view source</a></div></div><div class="public anchor" id="var-last-visit-by-current-user"><h3>last-visit-by-current-user</h3><div class="usage"><code>(last-visit-by-current-user request)</code></div><div class="doc"><div class="markdown"><p>Return the most recent visit by the currently logged in user</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/youyesyet/blob/master/src/clj/youyesyet/routes/rest.clj#L93">view source</a></div></div><div class="public anchor" id="var-rest-routes"><h3>rest-routes</h3><div class="usage"></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/youyesyet/blob/master/src/clj/youyesyet/routes/rest.clj#L194">view source</a></div></div><div class="public anchor" id="var-update-elector-signature.21"><h3>update-elector-signature!</h3><div class="usage"><code>(update-elector-signature! request)</code></div><div class="doc"><div class="markdown"><p>Set the <code>signature</code> in the params of this <code>request</code> as the signature for the elector whose <code>id</code> is in the params of this <code>request</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/youyesyet/blob/master/src/clj/youyesyet/routes/rest.clj#L178">view source</a></div></div></div></body></html>