Deploying to gh-pages from @ 6be10af6fd 🚀

This commit is contained in:
realaravinth
2021-03-11 11:28:04 +00:00
parent ed5442414c
commit a974f0650f
32 changed files with 489 additions and 58 deletions

View File

@@ -158,6 +158,26 @@
<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>
<span id="166">166</span>
<span id="167">167</span>
<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>
</pre><div class="example-wrap"><pre class="rust ">
<span class="comment">/*
* Copyright (C) 2021 Aravinth Manivannan &lt;realaravinth@batsense.net&gt;
@@ -198,8 +218,12 @@
<span class="kw">pub</span> <span class="kw">enum</span> <span class="ident">ServiceError</span> {
<span class="attribute">#[<span class="ident">display</span>(<span class="ident">fmt</span> <span class="op">=</span> <span class="string">&quot;internal server error&quot;</span>)]</span>
<span class="ident">InternalServerError</span>,
<span class="attribute">#[<span class="ident">display</span>(<span class="ident">fmt</span> <span class="op">=</span> <span class="string">&quot;The value you entered for email is not an email&quot;</span>)]</span> <span class="comment">//405j</span>
<span class="ident">NotAnEmail</span>,
<span class="attribute">#[<span class="ident">display</span>(<span class="ident">fmt</span> <span class="op">=</span> <span class="string">&quot;The value you entered for URL is not a URL&quot;</span>)]</span> <span class="comment">//405j</span>
<span class="ident">NotAUrl</span>,
<span class="attribute">#[<span class="ident">display</span>(<span class="ident">fmt</span> <span class="op">=</span> <span class="string">&quot;Wrong password&quot;</span>)]</span>
<span class="ident">WrongPassword</span>,
<span class="attribute">#[<span class="ident">display</span>(<span class="ident">fmt</span> <span class="op">=</span> <span class="string">&quot;Username not found&quot;</span>)]</span>
@@ -215,22 +239,24 @@
<span class="doccomment">/// see [blacklist](https://github.com/shuttlecraft/The-Big-Username-Blacklist)</span>
<span class="attribute">#[<span class="ident">display</span>(<span class="ident">fmt</span> <span class="op">=</span> <span class="string">&quot;Username contains blacklisted words&quot;</span>)]</span>
<span class="ident">BlacklistError</span>,
<span class="doccomment">/// when the value passed contains characters not present</span>
<span class="doccomment">/// in [UsernameCaseMapped](https://tools.ietf.org/html/rfc8265#page-7)</span>
<span class="doccomment">/// profile</span>
<span class="attribute">#[<span class="ident">display</span>(<span class="ident">fmt</span> <span class="op">=</span> <span class="string">&quot;username_case_mapped violation&quot;</span>)]</span>
<span class="ident">UsernameCaseMappedError</span>,
<span class="doccomment">/// when the value passed contains profainity</span>
<span class="attribute">#[<span class="ident">display</span>(<span class="ident">fmt</span> <span class="op">=</span> <span class="string">&quot;Username not available&quot;</span>)]</span>
<span class="ident">UsernameTaken</span>,
<span class="attribute">#[<span class="ident">display</span>(<span class="ident">fmt</span> <span class="op">=</span> <span class="string">&quot;Passsword too short&quot;</span>)]</span>
<span class="ident">PasswordTooShort</span>,
<span class="attribute">#[<span class="ident">display</span>(<span class="ident">fmt</span> <span class="op">=</span> <span class="string">&quot;Username too long&quot;</span>)]</span>
<span class="ident">PasswordTooLong</span>,
<span class="attribute">#[<span class="ident">display</span>(<span class="ident">fmt</span> <span class="op">=</span> <span class="string">&quot;The value you entered for URL is not a URL&quot;</span>)]</span> <span class="comment">//405j</span>
<span class="ident">NotAUrl</span>,
<span class="doccomment">/// when the a username is already taken</span>
<span class="attribute">#[<span class="ident">display</span>(<span class="ident">fmt</span> <span class="op">=</span> <span class="string">&quot;Username not available&quot;</span>)]</span>
<span class="ident">UsernameTaken</span>,
<span class="doccomment">/// when the a token name is already taken</span>
<span class="attribute">#[<span class="ident">display</span>(<span class="ident">fmt</span> <span class="op">=</span> <span class="string">&quot;token name not available&quot;</span>)]</span>
<span class="ident">TokenNameTaken</span>,
}
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Serialize</span>, <span class="ident">Deserialize</span>)]</span>
@@ -265,6 +291,7 @@
<span class="ident">ServiceError</span>::<span class="ident">PasswordTooLong</span> <span class="op">=</span><span class="op">&gt;</span> <span class="ident">StatusCode</span>::<span class="ident">BAD_REQUEST</span>,
<span class="ident">ServiceError</span>::<span class="ident">UsernameCaseMappedError</span> <span class="op">=</span><span class="op">&gt;</span> <span class="ident">StatusCode</span>::<span class="ident">BAD_REQUEST</span>,
<span class="ident">ServiceError</span>::<span class="ident">UsernameTaken</span> <span class="op">=</span><span class="op">&gt;</span> <span class="ident">StatusCode</span>::<span class="ident">BAD_REQUEST</span>,
<span class="ident">ServiceError</span>::<span class="ident">TokenNameTaken</span> <span class="op">=</span><span class="op">&gt;</span> <span class="ident">StatusCode</span>::<span class="ident">BAD_REQUEST</span>,
}
}
}
@@ -303,7 +330,6 @@
<span class="kw">fn</span> <span class="ident">from</span>(<span class="ident">e</span>: <span class="ident">sqlx</span>::<span class="ident">Error</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="self">Self</span> {
<span class="kw">use</span> <span class="ident">sqlx</span>::<span class="ident">error</span>::<span class="ident">Error</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">borrow</span>::<span class="ident">Cow</span>;
<span class="macro">debug</span><span class="macro">!</span>(<span class="string">&quot;{:?}&quot;</span>, <span class="kw-2">&amp;</span><span class="ident">e</span>);
<span class="kw">if</span> <span class="kw">let</span> <span class="ident">Error</span>::<span class="ident">Database</span>(<span class="ident">err</span>) <span class="op">=</span> <span class="ident">e</span> {
<span class="kw">if</span> <span class="ident">err</span>.<span class="ident">code</span>() <span class="op">=</span><span class="op">=</span> <span class="prelude-val">Some</span>(<span class="ident">Cow</span>::<span class="ident">from</span>(<span class="string">&quot;23505&quot;</span>)) {
<span class="kw">return</span> <span class="ident">ServiceError</span>::<span class="ident">UsernameTaken</span>;
@@ -314,6 +340,20 @@
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">dup_error</span>(<span class="ident">e</span>: <span class="ident">sqlx</span>::<span class="ident">Error</span>, <span class="ident">dup_error</span>: <span class="ident">ServiceError</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="ident">ServiceError</span> {
<span class="kw">use</span> <span class="ident">sqlx</span>::<span class="ident">error</span>::<span class="ident">Error</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">borrow</span>::<span class="ident">Cow</span>;
<span class="kw">if</span> <span class="kw">let</span> <span class="ident">Error</span>::<span class="ident">Database</span>(<span class="ident">err</span>) <span class="op">=</span> <span class="ident">e</span> {
<span class="kw">if</span> <span class="ident">err</span>.<span class="ident">code</span>() <span class="op">=</span><span class="op">=</span> <span class="prelude-val">Some</span>(<span class="ident">Cow</span>::<span class="ident">from</span>(<span class="string">&quot;23505&quot;</span>)) {
<span class="ident">dup_error</span>
} <span class="kw">else</span> {
<span class="ident">ServiceError</span>::<span class="ident">InternalServerError</span>
}
} <span class="kw">else</span> {
<span class="ident">ServiceError</span>::<span class="ident">InternalServerError</span>
}
}
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">not</span>(<span class="ident">tarpaulin_include</span>))]</span>
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">ServiceResult</span><span class="op">&lt;</span><span class="ident">V</span><span class="op">&gt;</span> <span class="op">=</span> <span class="ident">std</span>::<span class="ident">result</span>::<span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">V</span>, <span class="ident">ServiceError</span><span class="op">&gt;</span>;
</pre></div>