Deploying to gh-pages from @ 51764817f9 🚀

This commit is contained in:
realaravinth
2021-03-26 17:05:53 +00:00
parent 8ea519fc54
commit 2352e34a75
149 changed files with 3862 additions and 1261 deletions

View File

@@ -171,22 +171,6 @@
<span id="168">168</span>
<span id="169">169</span>
<span id="170">170</span>
<span id="171">171</span>
<span id="172">172</span>
<span id="173">173</span>
<span id="174">174</span>
<span id="175">175</span>
<span id="176">176</span>
<span id="177">177</span>
<span id="178">178</span>
<span id="179">179</span>
<span id="180">180</span>
<span id="181">181</span>
<span id="182">182</span>
<span id="183">183</span>
<span id="184">184</span>
<span id="185">185</span>
<span id="186">186</span>
</pre><div class="example-wrap"><pre class="rust ">
<span class="comment">/*
* Copyright (C) 2021 Aravinth Manivannan &lt;realaravinth@batsense.net&gt;
@@ -210,7 +194,7 @@
<span class="kw">use</span> <span class="ident">serde</span>::{<span class="ident">Deserialize</span>, <span class="ident">Serialize</span>};
<span class="kw">use</span> <span class="ident">url</span>::<span class="ident">Url</span>;
<span class="kw">use</span> <span class="kw">super</span>::<span class="ident">is_authenticated</span>;
<span class="kw">use</span> <span class="kw">super</span>::{<span class="ident">get_random</span>, <span class="ident">is_authenticated</span>};
<span class="kw">use</span> <span class="kw">crate</span>::<span class="ident">errors</span>::<span class="kw-2">*</span>;
<span class="kw">use</span> <span class="kw">crate</span>::<span class="ident">Data</span>;
@@ -236,32 +220,30 @@
<span class="kw">let</span> <span class="ident">key</span> <span class="op">=</span> <span class="ident">get_random</span>(<span class="number">32</span>);
<span class="kw">let</span> <span class="ident">url</span> <span class="op">=</span> <span class="ident">Url</span>::<span class="ident">parse</span>(<span class="kw-2">&amp;</span><span class="ident">payload</span>.<span class="ident">domain</span>)<span class="question-mark">?</span>;
<span class="macro">println</span><span class="macro">!</span>(<span class="string">&quot;got req&quot;</span>);
<span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Some</span>(<span class="ident">host</span>) <span class="op">=</span> <span class="ident">url</span>.<span class="ident">host_str</span>() {
<span class="kw">let</span> <span class="ident">res</span> <span class="op">=</span> <span class="ident">sqlx</span>::<span class="macro">query</span><span class="macro">!</span>(
<span class="string">&quot;INSERT INTO mcaptcha_config
<span class="kw">let</span> <span class="ident">host</span> <span class="op">=</span> <span class="ident">url</span>.<span class="ident">host_str</span>().<span class="ident">ok_or</span>(<span class="ident">ServiceError</span>::<span class="ident">NotAUrl</span>)<span class="question-mark">?</span>;
<span class="kw">let</span> <span class="ident">res</span> <span class="op">=</span> <span class="ident">sqlx</span>::<span class="macro">query</span><span class="macro">!</span>(
<span class="string">&quot;INSERT INTO mcaptcha_config
(name, key, domain_name)
VALUES ($1, $2, (
SELECT name FROM mcaptcha_domains WHERE name = ($3)))&quot;</span>,
<span class="kw-2">&amp;</span><span class="ident">payload</span>.<span class="ident">name</span>,
<span class="kw-2">&amp;</span><span class="ident">key</span>,
<span class="kw-2">&amp;</span><span class="ident">host</span>,
)
.<span class="ident">execute</span>(<span class="kw-2">&amp;</span><span class="ident">data</span>.<span class="ident">db</span>)
.<span class="kw">await</span>;
SELECT name FROM mcaptcha_domains_verified WHERE name = ($3)))&quot;</span>,
<span class="kw-2">&amp;</span><span class="ident">payload</span>.<span class="ident">name</span>,
<span class="kw-2">&amp;</span><span class="ident">key</span>,
<span class="kw-2">&amp;</span><span class="ident">host</span>,
)
.<span class="ident">execute</span>(<span class="kw-2">&amp;</span><span class="ident">data</span>.<span class="ident">db</span>)
.<span class="kw">await</span>;
<span class="kw">match</span> <span class="ident">res</span> {
<span class="prelude-val">Err</span>(<span class="ident">e</span>) <span class="op">=</span><span class="op">&gt;</span> <span class="prelude-val">Err</span>(<span class="ident">dup_error</span>(<span class="ident">e</span>, <span class="ident">ServiceError</span>::<span class="ident">TokenNameTaken</span>)),
<span class="prelude-val">Ok</span>(<span class="kw">_</span>) <span class="op">=</span><span class="op">&gt;</span> {
<span class="kw">let</span> <span class="ident">resp</span> <span class="op">=</span> <span class="ident">MCaptchaDetails</span> {
<span class="ident">key</span>,
<span class="ident">name</span>: <span class="ident">payload</span>.<span class="ident">into_inner</span>().<span class="ident">name</span>,
};
<span class="kw">match</span> <span class="ident">res</span> {
<span class="prelude-val">Err</span>(<span class="ident">e</span>) <span class="op">=</span><span class="op">&gt;</span> <span class="prelude-val">Err</span>(<span class="ident">dup_error</span>(<span class="ident">e</span>, <span class="ident">ServiceError</span>::<span class="ident">TokenNameTaken</span>)),
<span class="prelude-val">Ok</span>(<span class="kw">_</span>) <span class="op">=</span><span class="op">&gt;</span> {
<span class="kw">let</span> <span class="ident">resp</span> <span class="op">=</span> <span class="ident">MCaptchaDetails</span> {
<span class="ident">key</span>,
<span class="ident">name</span>: <span class="ident">payload</span>.<span class="ident">into_inner</span>().<span class="ident">name</span>,
};
<span class="prelude-val">Ok</span>(<span class="ident">HttpResponse</span>::<span class="prelude-val">Ok</span>().<span class="ident">json</span>(<span class="ident">resp</span>))
}
<span class="prelude-val">Ok</span>(<span class="ident">HttpResponse</span>::<span class="prelude-val">Ok</span>().<span class="ident">json</span>(<span class="ident">resp</span>))
}
} <span class="kw">else</span> {
<span class="prelude-val">Err</span>(<span class="ident">ServiceError</span>::<span class="ident">NotAUrl</span>)
}
}
@@ -281,20 +263,6 @@
<span class="prelude-val">Ok</span>(<span class="ident">HttpResponse</span>::<span class="prelude-val">Ok</span>())
}
<span class="kw">fn</span> <span class="ident">get_random</span>(<span class="ident">len</span>: <span class="ident">usize</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="ident">String</span> {
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">iter</span>;
<span class="kw">use</span> <span class="ident">rand</span>::{<span class="ident">distributions</span>::<span class="ident">Alphanumeric</span>, <span class="ident">rngs</span>::<span class="ident">ThreadRng</span>, <span class="ident">thread_rng</span>, <span class="ident">Rng</span>};
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">rng</span>: <span class="ident">ThreadRng</span> <span class="op">=</span> <span class="ident">thread_rng</span>();
<span class="ident">iter</span>::<span class="ident">repeat</span>(())
.<span class="ident">map</span>(<span class="op">|</span>()<span class="op">|</span> <span class="ident">rng</span>.<span class="ident">sample</span>(<span class="ident">Alphanumeric</span>))
.<span class="ident">map</span>(<span class="ident">char</span>::<span class="ident">from</span>)
.<span class="ident">take</span>(<span class="ident">len</span>)
.<span class="ident">collect</span>::<span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span>()
}
<span class="comment">// Workflow:</span>
<span class="comment">// 1. Sign up</span>
<span class="comment">// 2. Sign in</span>
@@ -375,4 +343,5 @@
}
}
</pre></div>
</section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../../../../";window.currentCrate = "guard";</script><script src="../../../../../main.js"></script><script src="../../../../../source-script.js"></script><script src="../../../../../source-files.js"></script><script defer src="../../../../../search-index.js"></script></body></html>
</section><section id="search" class="content hidden"></section><section class="footer"></section><div id="rustdoc-vars" data-root-path="../../../../../" data-current-crate="guard"></div>
<script src="../../../../../main.js"></script><script src="../../../../../source-script.js"></script><script src="../../../../../source-files.js"></script><script defer src="../../../../../search-index.js"></script></body></html>