<!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <title>user.rb</title> <link rel="stylesheet" href="http://jashkenas.github.com/docco/resources/docco.css"> </head> <body> <div id='container'> <div id="background"></div> <div id="jump_to"> Jump To … <div id="jump_wrapper"> <div id="jump_page"> <a class="source" href="../dailycred.html">dailycred.rb</a> <a class="source" href="acts_as_dailycred.html">acts_as_dailycred.rb</a> <a class="source" href="client.html">client.rb</a> <a class="source" href="engine.html">engine.rb</a> <a class="source" href="helper.html">helper.rb</a> <a class="source" href="middleware.html">middleware.rb</a> <a class="source" href="tests_helper.html">tests_helper.rb</a> <a class="source" href="user.html">user.rb</a> <a class="source" href="../generators/dailycred_generator.html">dailycred_generator.rb</a> <a class="source" href="../generators/templates/migration_create_user.html">migration_create_user.rb</a> <a class="source" href="../generators/templates/omniauth.html">omniauth.rb</a> <a class="source" href="../generators/templates/sessions_controller.html">sessions_controller.rb</a> <a class="source" href="../generators/templates/user.html">user.rb</a> <a class="source" href="../omniauth/strategies/dailycred.html">dailycred.rb</a> </div> </div> </div> <table cellspacing=0 cellpadding=0> <thead> <tr> <th class=docs><h1>user.rb</h1></th> <th class=code></th> </tr> </thead> <tbody> <tr id='section-1'> <td class=docs> <div class="pilwrap"> <a class="pilcrow" href="#section-1">¶</a> </div> </td> <td class=code> <div class='highlight'><pre><span class="k">module</span> <span class="nn">Dailycred</span> <span class="k">class</span> <span class="nc">User</span> <span class="kp">include</span> <span class="no">ActiveModel</span><span class="o">::</span><span class="no">Validations</span> <span class="kp">include</span> <span class="no">ActiveModel</span><span class="o">::</span><span class="no">Serialization</span> <span class="n">validates_presence_of</span> <span class="ss">:email</span><span class="p">,</span> <span class="ss">:pass</span> <span class="kp">attr_accessor</span> <span class="ss">:client</span><span class="p">,</span> <span class="ss">:email</span><span class="p">,</span> <span class="ss">:pass</span><span class="p">,</span> <span class="ss">:authorized</span> <span class="k">def</span> <span class="nf">initialize</span> <span class="n">client</span><span class="p">,</span> <span class="n">user</span> <span class="o">=</span> <span class="p">{}</span> <span class="nb">self</span><span class="o">.</span><span class="n">client</span> <span class="o">=</span> <span class="n">client</span> <span class="nb">self</span><span class="o">.</span><span class="n">authorized</span> <span class="o">=</span> <span class="kp">false</span> <span class="n">user</span><span class="o">.</span><span class="n">each</span> <span class="k">do</span> <span class="o">|</span><span class="n">k</span><span class="p">,</span><span class="n">v</span><span class="o">|</span> <span class="nb">self</span><span class="o">[</span><span class="n">k</span><span class="o">]</span> <span class="o">=</span> <span class="n">v</span> <span class="k">if</span> <span class="nb">self</span><span class="o">.</span><span class="n">respond_to</span><span class="p">(</span><span class="n">k</span><span class="p">)</span> <span class="k">end</span> <span class="k">end</span> <span class="k">def</span> <span class="nf">login</span> <span class="k">if</span> <span class="o">!</span><span class="nb">self</span><span class="o">.</span><span class="n">valid?</span></pre></div> </td> </tr> <tr id='section-2'> <td class=docs> <div class="pilwrap"> <a class="pilcrow" href="#section-2">¶</a> </div> <p>it didn’t work already, return false</p> </td> <td class=code> <div class='highlight'><pre> <span class="k">return</span> <span class="kp">false</span> <span class="k">end</span> <span class="n">response</span> <span class="o">=</span> <span class="no">JSON</span><span class="o">.</span><span class="n">parse</span> <span class="n">client</span><span class="o">.</span><span class="n">login</span><span class="p">(</span><span class="nb">self</span><span class="o">.</span><span class="n">to_hash</span><span class="p">)</span> <span class="n">err_parser</span> <span class="n">response</span> <span class="k">return</span> <span class="kp">false</span> <span class="k">if</span> <span class="o">!</span><span class="nb">self</span><span class="o">.</span><span class="n">valid?</span> <span class="kp">true</span> <span class="k">end</span> <span class="k">def</span> <span class="nf">to_hash</span> <span class="p">{</span> <span class="ss">:email</span> <span class="o">=></span> <span class="nb">self</span><span class="o">.</span><span class="n">email</span><span class="p">,</span> <span class="ss">:pass</span> <span class="o">=></span> <span class="nb">self</span><span class="o">.</span><span class="n">pass</span> <span class="p">}</span> <span class="k">end</span> <span class="kp">private</span></pre></div> </td> </tr> <tr id='section-3'> <td class=docs> <div class="pilwrap"> <a class="pilcrow" href="#section-3">¶</a> </div> <p>response is a hash, which is a json-parsed http response body</p> </td> <td class=code> <div class='highlight'><pre> <span class="k">def</span> <span class="nf">err_parser</span> <span class="n">response</span> <span class="k">if</span> <span class="o">!</span><span class="n">response</span><span class="o">[</span><span class="s2">"worked"</span><span class="o">]</span> <span class="nb">self</span><span class="o">.</span><span class="n">authorized</span> <span class="o">=</span> <span class="kp">false</span> <span class="n">response</span><span class="o">[</span><span class="s2">"errors"</span><span class="o">].</span><span class="n">each</span> <span class="k">do</span> <span class="o">|</span><span class="n">err</span><span class="o">|</span> <span class="n">attrib</span> <span class="o">=</span> <span class="n">err</span><span class="o">[</span><span class="s2">"attribute"</span><span class="o">]</span> <span class="n">message</span> <span class="o">=</span> <span class="n">err</span><span class="o">[</span><span class="s2">"message"</span><span class="o">]</span> <span class="k">if</span> <span class="n">attrib</span> <span class="o">==</span> <span class="s2">"form"</span> <span class="nb">self</span><span class="o">.</span><span class="n">errors</span><span class="o">.</span><span class="n">add_to_base</span> <span class="n">message</span> <span class="k">else</span> <span class="k">if</span> <span class="n">attrib</span> <span class="o">==</span> <span class="s2">"user"</span> <span class="nb">self</span><span class="o">.</span><span class="n">errors</span><span class="o">.</span><span class="n">add</span> <span class="ss">:email</span><span class="p">,</span> <span class="n">message</span> <span class="k">elsif</span> <span class="nb">self</span><span class="o">.</span><span class="n">respond_to</span> <span class="n">attrib</span> <span class="nb">self</span><span class="o">.</span><span class="n">errors</span><span class="o">.</span><span class="n">add</span> <span class="n">attrib</span><span class="p">,</span> <span class="n">message</span> <span class="k">end</span> <span class="k">end</span> <span class="k">end</span> <span class="k">end</span> <span class="k">end</span> <span class="k">end</span> <span class="k">end</span></pre></div> </td> </tr> </table> </div> </body>