Publish to my blog (weekly)

    • <tr><td class="blob-code blob-code-inner js-file-line" id="file-auth-service-ts-LC32"><span class="pl-k">async</span> <span class="pl-en">signInWithGoogle</span><span class="pl-kos">(</span><span class="pl-s1">data</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td><br/> </tr><br/> <tr><br/> <td data-line-number="33" class="blob-num js-line-number js-code-nav-line-number js-blob-rnum" id="file-auth-service-ts-L33"></td><br/> <td class="blob-code blob-code-inner js-file-line" id="file-auth-service-ts-LC33"> <span class="pl-k">if</span><span class="pl-kos">(</span><span class="pl-c1">!</span><span class="pl-s1">data</span><span class="pl-kos">.</span><span class="pl-c1">user</span><span class="pl-kos">)</span> <span class="pl-k">throw</span> <span class="pl-k">new</span> <span class="pl-smi">BadRequestException</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td><br/> </tr><br/> <tr><br/> <td data-line-number="34" class="blob-num js-line-number js-code-nav-line-number js-blob-rnum" id="file-auth-service-ts-L34"></td><br/> <td class="blob-code blob-code-inner js-file-line" id="file-auth-service-ts-LC34"> </td><br/> </tr><br/> <tr><br/> <td data-line-number="35" class="blob-num js-line-number js-code-nav-line-number js-blob-rnum" id="file-auth-service-ts-L35"></td><br/> <td class="blob-code blob-code-inner js-file-line" id="file-auth-service-ts-LC35"> <span class="pl-k">let</span> <span class="pl-s1">user</span> <span class="pl-c1">=</span> <span class="pl-kos">(</span><span class="pl-k">await</span> <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-c1">usersService</span><span class="pl-kos">.</span><span class="pl-en">findBy</span><span class="pl-kos">(</span><span class="pl-kos">{</span> <span class="pl-c1">where</span>: <span class="pl-kos">[</span><span class="pl-kos">{</span> <span class="pl-c1">googleId</span>: <span class="pl-s1">data</span><span class="pl-kos">.</span><span class="pl-c1">user</span><span class="pl-kos">.</span><span class="pl-c1">id</span> <span class="pl-kos">}</span><span class="pl-kos">]</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">[</span><span class="pl-c1">0</span><span class="pl-kos">]</span><span class="pl-kos">;</span></td><br/> </tr><br/> <tr><br/> <td data-line-number="36" class="blob-num js-line-number js-code-nav-line-number js-blob-rnum" id="file-auth-service-ts-L36"></td><br/> <td class="blob-code blob-code-inner js-file-line" id="file-auth-service-ts-LC36"> <span class="pl-k">if</span><span class="pl-kos">(</span><span class="pl-s1">user</span><span class="pl-kos">)</span> <span class="pl-k">return</span> <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-en">login</span><span class="pl-kos">(</span><span class="pl-s1">user</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td><br/> </tr><br/> <tr><br/> <td data-line-number="37" class="blob-num js-line-number js-code-nav-line-number js-blob-rnum" id="file-auth-service-ts-L37"></td><br/> <td class="blob-code blob-code-inner js-file-line" id="file-auth-service-ts-LC37"><br/></td><br/> </tr><br/> <tr><br/> <td data-line-number="38" class="blob-num js-line-number js-code-nav-line-number js-blob-rnum" id="file-auth-service-ts-L38"></td><br/> <td class="blob-code blob-code-inner js-file-line" id="file-auth-service-ts-LC38"> <span class="pl-s1">user</span> <span class="pl-c1">=</span> <span class="pl-kos">(</span><span class="pl-k">await</span> <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-c1">usersService</span><span class="pl-kos">.</span><span class="pl-en">findBy</span><span class="pl-kos">(</span><span class="pl-kos">{</span> <span class="pl-c1">where</span>: <span class="pl-kos">[</span><span class="pl-kos">{</span> <span class="pl-c1">email</span>: <span class="pl-s1">data</span><span class="pl-kos">.</span><span class="pl-c1">user</span><span class="pl-kos">.</span><span class="pl-c1">email</span> <span class="pl-kos">}</span><span class="pl-kos">]</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">[</span><span class="pl-c1">0</span><span class="pl-kos">]</span><span class="pl-kos">;</span></td><br/> </tr><br/> <tr><br/> <td data-line-number="39" class="blob-num js-line-number js-code-nav-line-number js-blob-rnum" id="file-auth-service-ts-L39"></td><br/> <td class="blob-code blob-code-inner js-file-line" id="file-auth-service-ts-LC39"> <span class="pl-k">if</span><span class="pl-kos">(</span><span class="pl-s1">user</span><span class="pl-kos">)</span> <span class="pl-k">throw</span> <span class="pl-k">new</span> <span class="pl-smi">ForbiddenException</span><span class="pl-kos">(</span><span class="pl-s">'User already exists, but Google account was not connected to user\'s account'</span><span class="pl-kos">)</span></td><br/> </tr><br/> <tr><br/> <td data-line-number="40" class="blob-num js-line-number js-code-nav-line-number js-blob-rnum" id="file-auth-service-ts-L40"></td><br/> <td class="blob-code blob-code-inner js-file-line" id="file-auth-service-ts-LC40"><br/></td><br/> </tr><br/> <tr><br/> <td data-line-number="41" class="blob-num js-line-number js-code-nav-line-number js-blob-rnum" id="file-auth-service-ts-L41"></td><br/> <td class="blob-code blob-code-inner js-file-line" id="file-auth-service-ts-LC41"> <span class="pl-k">try</span> <span class="pl-kos">{</span></td><br/> </tr><br/> <tr><br/> <td data-line-number="42" class="blob-num js-line-number js-code-nav-line-number js-blob-rnum" id="file-auth-service-ts-L42"></td><br/> <td class="blob-code blob-code-inner js-file-line" id="file-auth-service-ts-LC42"> <span class="pl-k">const</span> <span class="pl-s1">newUser</span> <span class="pl-c1">=</span> <span class="pl-k">new</span> <span class="pl-smi">User</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td><br/> </tr><br/> <tr><br/> <td data-line-number="43" class="blob-num js-line-number js-code-nav-line-number js-blob-rnum" id="file-auth-service-ts-L43"></td><br/> <td class="blob-code blob-code-inner js-file-line" id="file-auth-service-ts-LC43"> <span class="pl-s1">newUser</span><span class="pl-kos">.</span><span class="pl-c1">firstName</span> <span class="pl-c1">=</span> <span class="pl-s1">data</span><span class="pl-kos">.</span><span class="pl-c1">user</span><span class="pl-kos">.</span><span class="pl-c1">firstName</span><span class="pl-kos">;</span></td><br/> </tr><br/> <tr><br/> <td data-line-number="44" class="blob-num js-line-number js-code-nav-line-number js-blob-rnum" id="file-auth-service-ts-L44"></td><br/> <td class="blob-code blob-code-inner js-file-line" id="file-auth-service-ts-LC44"> <span class="pl-s1">newUser</span><span class="pl-kos">.</span><span class="pl-c1">lastName</span> <span class="pl-c1">=</span> <span class="pl-s1">data</span><span class="pl-kos">.</span><span class="pl-c1">user</span><span class="pl-kos">.</span><span class="pl-c1">lastName</span><span class="pl-kos">;</span></td><br/> </tr><br/> <tr><br/> <td data-line-number="45" class="blob-num js-line-number js-code-nav-line-number js-blob-rnum" id="file-auth-service-ts-L45"></td><br/> <td class="blob-code blob-code-inner js-file-line" id="file-auth-service-ts-LC45"> <span class="pl-s1">newUser</span><span class="pl-kos">.</span><span class="pl-c1">email</span> <span class="pl-c1">=</span> <span class="pl-s1">data</span><span class="pl-kos">.</span><span class="pl-c1">user</span><span class="pl-kos">.</span><span class="pl-c1">email</span><span class="pl-kos">;</span></td><br/> </tr><br/> <tr><br/> <td data-line-number="46" class="blob-num js-line-number js-code-nav-line-number js-blob-rnum" id="file-auth-service-ts-L46"></td><br/> <td class="blob-code blob-code-inner js-file-line" id="file-auth-service-ts-LC46"> <span class="pl-s1">newUser</span><span class="pl-kos">.</span><span class="pl-c1">googleId</span> <span class="pl-c1">=</span> <span class="pl-s1">data</span><span class="pl-kos">.</span><span class="pl-c1">user</span><span class="pl-kos">.</span><span class="pl-c1">id</span><span class="pl-kos">;</span></td><br/> </tr><br/> <tr><br/> <td data-line-number="47" class="blob-num js-line-number js-code-nav-line-number js-blob-rnum" id="file-auth-service-ts-L47"></td><br/> <td class="blob-code blob-code-inner js-file-line" id="file-auth-service-ts-LC47"><br/></td><br/> </tr><br/> <tr><br/> <td data-line-number="48" class="blob-num js-line-number js-code-nav-line-number js-blob-rnum" id="file-auth-service-ts-L48"></td><br/> <td class="blob-code blob-code-inner js-file-line" id="file-auth-service-ts-LC48"> <span class="pl-k">await</span> <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-c1">usersService</span><span class="pl-kos">.</span><span class="pl-en">store</span><span class="pl-kos">(</span><span class="pl-s1">newUser</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td><br/> </tr><br/> <tr><br/> <td data-line-number="49" class="blob-num js-line-number js-code-nav-line-number js-blob-rnum" id="file-auth-service-ts-L49"></td><br/> <td class="blob-code blob-code-inner js-file-line" id="file-auth-service-ts-LC49"> <span class="pl-k">return</span> <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-en">login</span><span class="pl-kos">(</span><span class="pl-s1">newUser</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td><br/> </tr><br/> <tr><br/> <td data-line-number="50" class="blob-num js-line-number js-code-nav-line-number js-blob-rnum" id="file-auth-service-ts-L50"></td><br/> <td class="blob-code blob-code-inner js-file-line" id="file-auth-service-ts-LC50"> <span class="pl-kos">}</span> <span class="pl-k">catch</span><span class="pl-kos">(</span><span class="pl-s1">e</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td><br/> </tr><br/> <tr><br/> <td data-line-number="51" class="blob-num js-line-number js-code-nav-line-number js-blob-rnum" id="file-auth-service-ts-L51"></td><br/> <td class="blob-code blob-code-inner js-file-line" id="file-auth-service-ts-LC51"> <span class="pl-k">throw</span> <span class="pl-k">new</span> <span class="pl-smi">Error</span><span class="pl-kos">(</span><span class="pl-s1">e</span><span class="pl-kos">)</span></td><br/> </tr><br/> <tr><br/> <td data-line-number="52" class="blob-num js-line-number js-code-nav-line-number js-blob-rnum" id="file-auth-service-ts-L52"></td><br/> <td class="blob-code blob-code-inner js-file-line" id="file-auth-service-ts-LC52"> <span class="pl-kos">}</span></td><br/> </tr><br/> <tr><br/> <td data-line-number="53" class="blob-num js-line-number js-code-nav-line-number js-blob-rnum" id="file-auth-service-ts-L53"></td><br/> <td class="blob-code blob-code-inner js-file-line" id="file-auth-service-ts-LC53"> <span class="pl-kos">}</span></td></tr>

Posted from Diigo. The rest of my favorite links are here.

댓글

이 블로그의 인기 게시물

Publish to my blog (weekly)

Publish to my blog (weekly)