docs/User.html
<!DOCTYPE html>
<html>
<head>
<title>User.js</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, target-densitydpi=160dpi, initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">
<link rel="stylesheet" media="all" href="docco.css" />
</head>
<body>
<div id="container">
<div id="background"></div>
<ul id="jump_to">
<li>
<a class="large" href="javascript:void(0);">Jump To …</a>
<a class="small" href="javascript:void(0);">+</a>
<div id="jump_wrapper">
<div id="jump_page_wrapper">
<div id="jump_page">
<a class="source" href="Chat.html">
Chat.js
</a>
<a class="source" href="User.html">
User.js
</a>
<a class="source" href="Gruntfile.html">
Gruntfile.js
</a>
<a class="source" href="app.html">
app.js
</a>
</div>
</div>
</li>
</ul>
<ul class="sections">
<li id="title">
<div class="annotation">
<h1>User.js</h1>
</div>
</li>
<li id="section-1">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-1">¶</a>
</div>
</div>
<div class="content"><div class='highlight'><pre>
exports.UserController = <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">colecc, redis</span>)</span>{</pre></div></div>
</li>
<li id="section-2">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-2">¶</a>
</div>
<p>Coleccion de la BD Mongo</p>
</div>
<div class="content"><div class='highlight'><pre> <span class="hljs-keyword">this</span>.coleccion = colecc;</pre></div></div>
</li>
<li id="section-3">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-3">¶</a>
</div>
<p>DB Redis</p>
</div>
<div class="content"><div class='highlight'><pre> <span class="hljs-keyword">this</span>.redisdb = redis;
<span class="hljs-keyword">this</span>.prepareIndexes = <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>)</span>{
<span class="hljs-keyword">var</span> c = <span class="hljs-keyword">this</span>.coleccion;
c.index(<span class="hljs-string">'email'</span>, { unique: <span class="hljs-literal">true</span> }); <span class="hljs-comment">// unique</span>
c.index(<span class="hljs-string">'username'</span>, { unique: <span class="hljs-literal">true</span> }); <span class="hljs-comment">// unique</span>
c.index(<span class="hljs-string">'password'</span>);
}
<span class="hljs-keyword">this</span>.add = <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">user, cb</span>)</span>{</pre></div></div>
</li>
<li id="section-4">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-4">¶</a>
</div>
<p>Add user to DB
“user” is an object with -> {username, email, password, pk, privKey}</p>
</div>
<div class="content"><div class='highlight'><pre> <span class="hljs-keyword">var</span> c = <span class="hljs-keyword">this</span>.coleccion;
<span class="hljs-keyword">var</span> r = <span class="hljs-keyword">this</span>.redisdb;
<span class="hljs-keyword">this</span>.getByUsername(user.username, <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">err, users</span>)</span>{
<span class="hljs-keyword">if</span>(users.length == <span class="hljs-number">0</span>)
{
c.insert({
username: user.username,
email: user.email,
password: user.password,
public_key: user.public_key,
private_key: user.private_key,
picture: user.picture
}, <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">err, newuser</span>)</span>{
<span class="hljs-keyword">if</span>(err || !newuser)
{
<span class="hljs-keyword">return</span> cb(err, newuser);
}</pre></div></div>
</li>
<li id="section-5">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-5">¶</a>
</div>
<p>r.set(“userpk:”+ user.private_key, newuser._id);</p>
</div>
<div class="content"><div class='highlight'><pre> cb(<span class="hljs-literal">null</span>, newuser);
});
}
<span class="hljs-keyword">else</span>
{
cb(<span class="hljs-string">"Error: User already exists"</span>, <span class="hljs-literal">null</span>);
}
});
};
<span class="hljs-keyword">this</span>.getById = <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">id, cb</span>)</span>{</pre></div></div>
</li>
<li id="section-6">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-6">¶</a>
</div>
<p>Get user by ID</p>
</div>
<div class="content"><div class='highlight'><pre> <span class="hljs-keyword">this</span>.coleccion.find({_id:id}, cb);
};
<span class="hljs-keyword">this</span>.getByUsername = <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">username, cb</span>)</span>{</pre></div></div>
</li>
<li id="section-7">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-7">¶</a>
</div>
<p>Get user by username</p>
</div>
<div class="content"><div class='highlight'><pre> <span class="hljs-keyword">this</span>.coleccion.find({username:username}, cb);
};
<span class="hljs-keyword">this</span>.getByEmail = <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">email, cb</span>)</span>{</pre></div></div>
</li>
<li id="section-8">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-8">¶</a>
</div>
<p>Get user by username</p>
</div>
<div class="content"><div class='highlight'><pre> <span class="hljs-keyword">this</span>.coleccion.find({email:email}, cb);
};
<span class="hljs-keyword">this</span>.getByPassword = <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">password, cb</span>)</span>{</pre></div></div>
</li>
<li id="section-9">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-9">¶</a>
</div>
<p>Get user by username</p>
</div>
<div class="content"><div class='highlight'><pre> <span class="hljs-keyword">this</span>.coleccion.find({password:password}, cb);
};
<span class="hljs-keyword">this</span>.search = <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">username, cb</span>)</span>{</pre></div></div>
</li>
<li id="section-10">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-10">¶</a>
</div>
<p>Search user by username</p>
</div>
<div class="content"><div class='highlight'><pre> <span class="hljs-keyword">this</span>.coleccion.find({username:{<span class="hljs-string">"$regex"</span>:username}}, cb);
};
<span class="hljs-keyword">this</span>.list = <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">limit, cb</span>)</span>{</pre></div></div>
</li>
<li id="section-11">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-11">¶</a>
</div>
<p>list last “limit” users</p>
</div>
<div class="content"><div class='highlight'><pre> <span class="hljs-keyword">this</span>.coleccion.find({}, {limit: limit}, cb);
};
<span class="hljs-keyword">this</span>.delete = <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">username, cb</span>)</span>{</pre></div></div>
</li>
<li id="section-12">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-12">¶</a>
</div>
<p>Delete user by username</p>
</div>
<div class="content"><div class='highlight'><pre> <span class="hljs-keyword">this</span>.coleccion.remove({username:username}, cb);
};
};</pre></div></div>
</li>
</ul>
</div>
</body>
</html>