Deploying to gh-pages from @ 95bc1feef7 🚀

This commit is contained in:
realaravinth
2021-05-09 14:21:38 +00:00
parent f437f72db4
commit d3384a9ed9
28 changed files with 82 additions and 1606 deletions

View File

@@ -70,6 +70,10 @@
<span id="67">67</span>
<span id="68">68</span>
<span id="69">69</span>
<span id="70">70</span>
<span id="71">71</span>
<span id="72">72</span>
<span id="73">73</span>
</pre><div class="example-wrap"><pre class="rust ">
<span class="comment">/*
* Copyright (C) 2021 Aravinth Manivannan &lt;realaravinth@batsense.net&gt;
@@ -88,32 +92,36 @@
* along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.
*/</span>
<span class="kw">use</span> <span class="ident">actix_web</span>::{<span class="ident">HttpResponse</span>, <span class="ident">Responder</span>};
<span class="kw">use</span> <span class="ident">lazy_static</span>::<span class="ident">lazy_static</span>;
<span class="kw">use</span> <span class="ident">actix_identity</span>::<span class="ident">Identity</span>;
<span class="kw">use</span> <span class="ident">actix_web</span>::{<span class="ident">web</span>, <span class="ident">HttpResponse</span>, <span class="ident">Responder</span>};
<span class="kw">use</span> <span class="ident">sailfish</span>::<span class="ident">TemplateOnce</span>;
<span class="kw">pub</span> <span class="kw">mod</span> <span class="ident">sitekey</span>;
<span class="kw">use</span> <span class="kw">crate</span>::<span class="ident">errors</span>::<span class="ident">PageResult</span>;
<span class="kw">use</span> <span class="kw">crate</span>::<span class="ident">Data</span>;
<span class="kw">use</span> <span class="ident">sitekey</span>::<span class="ident">list</span>::{<span class="ident">get_list_sitekeys</span>, <span class="ident">SiteKeys</span>};
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">TemplateOnce</span>, <span class="ident">Clone</span>)]</span>
<span class="attribute">#[<span class="ident">template</span>(<span class="ident">path</span> <span class="op">=</span> <span class="string">&quot;panel/index.html&quot;</span>)]</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">IndexPage</span>;
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">IndexPage</span> {
<span class="ident">sitekeys</span>: <span class="ident">SiteKeys</span>,
}
<span class="kw">const</span> <span class="ident">PAGE</span>: <span class="kw-2">&amp;</span><span class="ident">str</span> <span class="op">=</span> <span class="string">&quot;Dashboard&quot;</span>;
<span class="kw">impl</span> <span class="ident">Default</span> <span class="kw">for</span> <span class="ident">IndexPage</span> {
<span class="kw">fn</span> <span class="ident">default</span>() <span class="op">-</span><span class="op">&gt;</span> <span class="self">Self</span> {
<span class="ident">IndexPage</span>
<span class="kw">impl</span> <span class="ident">IndexPage</span> {
<span class="kw">fn</span> <span class="ident">new</span>(<span class="ident">sitekeys</span>: <span class="ident">SiteKeys</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="self">Self</span> {
<span class="ident">IndexPage</span> { <span class="ident">sitekeys</span> }
}
}
<span class="macro">lazy_static</span><span class="macro">!</span> {
<span class="kw">static</span> <span class="kw-2">ref</span> <span class="ident">INDEX</span>: <span class="ident">String</span> <span class="op">=</span> <span class="ident">IndexPage</span>::<span class="ident">default</span>().<span class="ident">render_once</span>().<span class="ident">unwrap</span>();
}
<span class="kw">const</span> <span class="ident">PAGE</span>: <span class="kw-2">&amp;</span><span class="ident">str</span> <span class="op">=</span> <span class="string">&quot;Dashboard&quot;</span>;
<span class="kw">async</span> <span class="kw">fn</span> <span class="ident">panel</span>() <span class="op">-</span><span class="op">&gt;</span> <span class="kw">impl</span> <span class="ident">Responder</span> {
<span class="ident">HttpResponse</span>::<span class="prelude-val">Ok</span>()
<span class="kw">async</span> <span class="kw">fn</span> <span class="ident">panel</span>(<span class="ident">data</span>: <span class="ident">web</span>::<span class="ident">Data</span><span class="op">&lt;</span><span class="ident">Data</span><span class="op">&gt;</span>, <span class="ident">id</span>: <span class="ident">Identity</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="ident">PageResult</span><span class="op">&lt;</span><span class="kw">impl</span> <span class="ident">Responder</span><span class="op">&gt;</span> {
<span class="kw">let</span> <span class="ident">sitekeys</span> <span class="op">=</span> <span class="ident">get_list_sitekeys</span>(<span class="kw-2">&amp;</span><span class="ident">data</span>, <span class="kw-2">&amp;</span><span class="ident">id</span>).<span class="kw">await</span><span class="question-mark">?</span>;
<span class="kw">let</span> <span class="ident">body</span> <span class="op">=</span> <span class="ident">IndexPage</span>::<span class="ident">new</span>(<span class="ident">sitekeys</span>).<span class="ident">render_once</span>().<span class="ident">unwrap</span>();
<span class="prelude-val">Ok</span>(<span class="ident">HttpResponse</span>::<span class="prelude-val">Ok</span>()
.<span class="ident">content_type</span>(<span class="string">&quot;text/html; charset=utf-8&quot;</span>)
.<span class="ident">body</span>(<span class="kw-2">&amp;</span><span class="kw-2">*</span><span class="ident">INDEX</span>)
.<span class="ident">body</span>(<span class="ident">body</span>))
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">services</span>(<span class="ident">cfg</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">actix_web</span>::<span class="ident">web</span>::<span class="ident">ServiceConfig</span>) {

View File

@@ -111,6 +111,12 @@
<span id="108">108</span>
<span id="109">109</span>
<span id="110">110</span>
<span id="111">111</span>
<span id="112">112</span>
<span id="113">113</span>
<span id="114">114</span>
<span id="115">115</span>
<span id="116">116</span>
</pre><div class="example-wrap"><pre class="rust ">
<span class="comment">/*
* Copyright (C) 2021 Aravinth Manivannan &lt;realaravinth@batsense.net&gt;
@@ -151,7 +157,17 @@
}
}
<span class="doccomment">/// render a list of all sitekeys that a user has</span>
<span class="kw">pub</span> <span class="kw">async</span> <span class="kw">fn</span> <span class="ident">list_sitekeys</span>(<span class="ident">data</span>: <span class="ident">web</span>::<span class="ident">Data</span><span class="op">&lt;</span><span class="ident">Data</span><span class="op">&gt;</span>, <span class="ident">id</span>: <span class="ident">Identity</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="ident">PageResult</span><span class="op">&lt;</span><span class="kw">impl</span> <span class="ident">Responder</span><span class="op">&gt;</span> {
<span class="kw">let</span> <span class="ident">res</span> <span class="op">=</span> <span class="ident">get_list_sitekeys</span>(<span class="kw-2">&amp;</span><span class="ident">data</span>, <span class="kw-2">&amp;</span><span class="ident">id</span>).<span class="kw">await</span><span class="question-mark">?</span>;
<span class="kw">let</span> <span class="ident">body</span> <span class="op">=</span> <span class="ident">IndexPage</span>::<span class="ident">new</span>(<span class="ident">res</span>).<span class="ident">render_once</span>().<span class="ident">unwrap</span>();
<span class="prelude-val">Ok</span>(<span class="ident">HttpResponse</span>::<span class="prelude-val">Ok</span>()
.<span class="ident">content_type</span>(<span class="string">&quot;text/html; charset=utf-8&quot;</span>)
.<span class="ident">body</span>(<span class="ident">body</span>))
}
<span class="doccomment">/// utility function to get a list of all sitekeys that a user owns</span>
<span class="kw">pub</span> <span class="kw">async</span> <span class="kw">fn</span> <span class="ident">get_list_sitekeys</span>(<span class="ident">data</span>: <span class="kw-2">&amp;</span><span class="ident">Data</span>, <span class="ident">id</span>: <span class="kw-2">&amp;</span><span class="ident">Identity</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="ident">PageResult</span><span class="op">&lt;</span><span class="ident">SiteKeys</span><span class="op">&gt;</span> {
<span class="kw">let</span> <span class="ident">username</span> <span class="op">=</span> <span class="ident">id</span>.<span class="ident">identity</span>().<span class="ident">unwrap</span>();
<span class="kw">let</span> <span class="ident">res</span> <span class="op">=</span> <span class="ident">sqlx</span>::<span class="macro">query_as</span><span class="macro">!</span>(
<span class="ident">MCaptchaDetails</span>,
@@ -161,14 +177,10 @@
)
.<span class="ident">fetch_all</span>(<span class="kw-2">&amp;</span><span class="ident">data</span>.<span class="ident">db</span>)
.<span class="kw">await</span><span class="question-mark">?</span>;
<span class="kw">let</span> <span class="ident">body</span> <span class="op">=</span> <span class="ident">IndexPage</span>::<span class="ident">new</span>(<span class="ident">res</span>).<span class="ident">render_once</span>().<span class="ident">unwrap</span>();
<span class="prelude-val">Ok</span>(<span class="ident">HttpResponse</span>::<span class="prelude-val">Ok</span>()
.<span class="ident">content_type</span>(<span class="string">&quot;text/html; charset=utf-8&quot;</span>)
.<span class="ident">body</span>(<span class="ident">body</span>))
<span class="prelude-val">Ok</span>(<span class="ident">res</span>)
}
<span class="kw">type</span> <span class="ident">SiteKeys</span> <span class="op">=</span> <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">MCaptchaDetails</span><span class="op">&gt;</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">SiteKeys</span> <span class="op">=</span> <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">MCaptchaDetails</span><span class="op">&gt;</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">test</span>)]</span>
<span class="kw">mod</span> <span class="ident">test</span> {

View File

@@ -84,7 +84,7 @@
*/</span>
<span class="kw">mod</span> <span class="ident">add</span>;
<span class="kw">mod</span> <span class="ident">list</span>;
<span class="kw">pub</span> <span class="kw">mod</span> <span class="ident">list</span>;
<span class="kw">mod</span> <span class="ident">view</span>;
<span class="kw">pub</span> <span class="kw">mod</span> <span class="ident">routes</span> {