Deploying to gh-pages from @ 47cca5c9a7 🚀

This commit is contained in:
realaravinth
2021-07-12 16:02:34 +00:00
parent 96218165b0
commit 45c6c0b065
51 changed files with 498 additions and 104 deletions

View File

@@ -391,8 +391,8 @@
<span class="kw">let</span> <span class="ident">res</span>;
<span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Some</span>(<span class="ident">email</span>) <span class="op">=</span> <span class="kw-2">&amp;</span><span class="ident">payload</span>.<span class="ident">email</span> {
<span class="ident">res</span> <span class="op">=</span> <span class="macro">sqlx::query!</span>(
<span class="string">&quot;INSERT INTO mcaptcha_users
(name , password, email, secret) VALUES ($1, $2, $3, $4)&quot;</span>,
<span class="string">&quot;insert into mcaptcha_users
(name , password, email, secret) values ($1, $2, $3, $4)&quot;</span>,
<span class="kw-2">&amp;</span><span class="ident">username</span>,
<span class="kw-2">&amp;</span><span class="ident">hash</span>,
<span class="kw-2">&amp;</span><span class="ident">email</span>,
@@ -419,7 +419,7 @@
<span class="kw">if</span> <span class="ident">msg</span>.<span class="ident">contains</span>(<span class="string">&quot;mcaptcha_users_name_key&quot;</span>) {
<span class="kw">return</span> <span class="prelude-val">Err</span>(<span class="ident">ServiceError::UsernameTaken</span>);
} <span class="kw">else</span> <span class="kw">if</span> <span class="ident">msg</span>.<span class="ident">contains</span>(<span class="string">&quot;mcaptcha_users_email_key&quot;</span>) {
<span class="kw">return</span> <span class="prelude-val">Err</span>(<span class="ident">ServiceError::EmailTaken</span>);
<span class="kw">return</span> <span class="prelude-val">Err</span>(<span class="ident">ServiceError::UsernameTaken</span>);
} <span class="kw">else</span> <span class="kw">if</span> <span class="ident">msg</span>.<span class="ident">contains</span>(<span class="string">&quot;mcaptcha_users_secret_key&quot;</span>) {
<span class="kw">continue</span>;
} <span class="kw">else</span> {

View File

@@ -65,7 +65,7 @@
<span class="kw">pub</span> <span class="kw">mod</span> <span class="ident">auth</span>;
<span class="kw">pub</span> <span class="kw">mod</span> <span class="ident">mcaptcha</span>;
<span class="kw">pub</span> <span class="kw">mod</span> <span class="ident">meta</span>;
<span class="kw">mod</span> <span class="ident">notifications</span>;
<span class="kw">pub</span> <span class="kw">mod</span> <span class="ident">notifications</span>;
<span class="kw">pub</span> <span class="kw">mod</span> <span class="ident">pow</span>;
<span class="kw">mod</span> <span class="ident">routes</span>;

View File

@@ -152,6 +152,20 @@
<span id="149">149</span>
<span id="150">150</span>
<span id="151">151</span>
<span id="152">152</span>
<span id="153">153</span>
<span id="154">154</span>
<span id="155">155</span>
<span id="156">156</span>
<span id="157">157</span>
<span id="158">158</span>
<span id="159">159</span>
<span id="160">160</span>
<span id="161">161</span>
<span id="162">162</span>
<span id="163">163</span>
<span id="164">164</span>
<span id="165">165</span>
</pre><div class="example-wrap"><pre class="rust ">
<span class="comment">/*
* Copyright (C) 2021 Aravinth Manivannan &lt;realaravinth@batsense.net&gt;
@@ -218,25 +232,39 @@
<span class="kw">let</span> <span class="ident">receiver</span> <span class="op">=</span> <span class="ident">id</span>.<span class="ident">identity</span>().<span class="ident">unwrap</span>();
<span class="comment">// TODO handle error where payload.to doesnt exist</span>
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">notifications</span> <span class="op">=</span> <span class="macro">sqlx::query_file_as!</span>(
<span class="ident">Notification</span>,
<span class="string">&quot;src/api/v1/notifications/get_all_unread.sql&quot;</span>,
<span class="kw-2">&amp;</span><span class="ident">receiver</span>
)
.<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">resp</span>: <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">NotificationResp</span><span class="op">&gt;</span> <span class="op">=</span> <span class="ident">notifications</span>
.<span class="ident">drain</span>(<span class="number">0</span>..)
.<span class="ident">map</span>(<span class="op">|</span><span class="ident">x</span><span class="op">|</span> {
<span class="kw">let</span> <span class="ident">y</span>: <span class="ident">NotificationResp</span> <span class="op">=</span> <span class="ident">x</span>.<span class="ident">into</span>();
<span class="ident">y</span>
})
.<span class="ident">collect</span>();
<span class="kw">let</span> <span class="ident">resp</span> <span class="op">=</span> <span class="ident">runner::get_notification</span>(<span class="kw-2">&amp;</span><span class="ident">data</span>, <span class="kw-2">&amp;</span><span class="ident">receiver</span>).<span class="kw">await</span><span class="question-mark">?</span>;
<span class="prelude-val">Ok</span>(<span class="ident">HttpResponse::Ok</span>().<span class="ident">json</span>(<span class="ident">resp</span>))
}
<span class="kw">pub</span> <span class="kw">mod</span> <span class="ident">runner</span> {
<span class="kw">use</span> <span class="kw">super</span>::<span class="kw-2">*</span>;
<span class="kw">pub</span> <span class="kw">async</span> <span class="kw">fn</span> <span class="ident">get_notification</span>(
<span class="ident">data</span>: <span class="kw-2">&amp;</span><span class="ident">AppData</span>,
<span class="ident">receiver</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>,
) <span class="op">-</span><span class="op">&gt;</span> <span class="ident">ServiceResult</span><span class="op">&lt;</span><span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">NotificationResp</span><span class="op">&gt;</span><span class="op">&gt;</span> {
<span class="comment">// TODO handle error where payload.to doesnt exist</span>
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">notifications</span> <span class="op">=</span> <span class="macro">sqlx::query_file_as!</span>(
<span class="ident">Notification</span>,
<span class="string">&quot;src/api/v1/notifications/get_all_unread.sql&quot;</span>,
<span class="kw-2">&amp;</span><span class="ident">receiver</span>
)
.<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">resp</span> <span class="op">=</span> <span class="ident">notifications</span>
.<span class="ident">drain</span>(<span class="number">0</span>..)
.<span class="ident">map</span>(<span class="op">|</span><span class="ident">x</span><span class="op">|</span> {
<span class="kw">let</span> <span class="ident">y</span>: <span class="ident">NotificationResp</span> <span class="op">=</span> <span class="ident">x</span>.<span class="ident">into</span>();
<span class="ident">y</span>
})
.<span class="ident">collect</span>();
<span class="prelude-val">Ok</span>(<span class="ident">resp</span>)
}
}
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">test</span>)]</span>
<span class="kw">mod</span> <span class="ident">tests</span> {
<span class="kw">use</span> <span class="ident">actix_web::http</span>::{<span class="ident">header</span>, <span class="ident">StatusCode</span>};

View File

@@ -64,9 +64,9 @@
* along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.
*/</span>
<span class="kw">mod</span> <span class="ident">add</span>;
<span class="kw">mod</span> <span class="ident">get</span>;
<span class="kw">mod</span> <span class="ident">mark_read</span>;
<span class="kw">pub</span> <span class="kw">mod</span> <span class="ident">add</span>;
<span class="kw">pub</span> <span class="kw">mod</span> <span class="ident">get</span>;
<span class="kw">pub</span> <span class="kw">mod</span> <span class="ident">mark_read</span>;
<span class="kw">pub</span> <span class="kw">mod</span> <span class="ident">routes</span> {