{"id":2525,"date":"2017-02-08T08:23:02","date_gmt":"2017-02-08T08:23:01","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2525"},"modified":"2018-12-18T02:13:40","modified_gmt":"2018-12-18T10:13:40","slug":"develop-a-rest-api-with-couchbase-ottoman-nodejs-hapijs","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/develop-a-rest-api-with-couchbase-ottoman-nodejs-hapijs\/","title":{"rendered":"Develop a REST API with Couchbase Ottoman + Node.js + hapi.js"},"content":{"rendered":"<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><a style=\"text-decoration: none;\" href=\"https:\/\/www.linkedin.com\/in\/jm8nav\"><span style=\"font-size: 11pt; font-family: Arial; color: #1155cc; background-color: transparent; font-style: italic; text-decoration: underline; vertical-align: baseline;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-thumbnail wp-image-2551\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/02\/josenavarro-150x150.jpg\" alt=\"Jose Navarro\" width=\"150\" height=\"150\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/josenavarro-150x150.jpg 150w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/josenavarro-65x65.jpg 65w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/josenavarro-50x50.jpg 50w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>Jose Navarro<\/span><\/a><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-style: italic; vertical-align: baseline;\"> is a full stack developer at FAMOCO in Brussels, Belgium. He has been working for the last 3 years as a web <\/span><a style=\"text-decoration: none;\" href=\"https:\/\/github.com\/jmn8718\"><span style=\"font-size: 11pt; font-family: Arial; color: #1155cc; background-color: transparent; font-style: italic; text-decoration: underline; vertical-align: baseline;\">developer<\/span><\/a><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-style: italic; vertical-align: baseline;\"> with Node.js, Java, AngularJS, and ReactJS, and has deep interest in web development and mobile technologies.<\/span><\/p>\n<h2 dir=\"ltr\" style=\"line-height: 1.38; margin-top: 18pt; margin-bottom: 6pt;\"><span style=\"font-size: 16pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; vertical-align: baseline;\">Introduction<\/span><\/h2>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">We are going to develop a REST API using Node.js and Couchbase ODM Ottoman. There are a few frameworks to do this in Node.js, so we are going to use hapi.js, which makes it easy to start and develop an API, and its code is clean and easy to understand. It also provides a validator in the request so we can integrate well with the Ottoman model, which we are going to use so we can abstract our code and work with objects.<\/span><\/p>\n<h2 dir=\"ltr\" style=\"line-height: 1.38; margin-top: 18pt; margin-bottom: 6pt;\"><span style=\"font-size: 16pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; vertical-align: baseline;\">Requirements<\/span><\/h2>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">To build the project, you need to have the following installed on your computer:<\/span><\/p>\n<ul style=\"margin-top: 0pt; margin-bottom: 0pt;\">\n<li dir=\"ltr\" style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; background-color: transparent; vertical-align: baseline;\">Node.js and NPM<\/span><\/p>\n<\/li>\n<li dir=\"ltr\" style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; background-color: transparent; vertical-align: baseline;\">Couchbase Server<\/span><\/p>\n<\/li>\n<\/ul>\n<h2 dir=\"ltr\" style=\"line-height: 1.38; margin-top: 18pt; margin-bottom: 6pt;\"><span style=\"font-size: 16pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; vertical-align: baseline;\">Hapi Server<\/span><\/h2>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">First, we create the main directory for our project, then go inside that directory and start the npm project, where we will be asked for a few parameters for our project.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">We can do it with the following commands:<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">mkdir node<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">&#8211;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">hapi<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">&#8211;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">couchbase<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">&#8211;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">api<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">npm init<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">The next step is to add the dependencies to our project. First, we will add the <\/span><a style=\"text-decoration: none;\" href=\"https:\/\/hapijs.com\/\"><span style=\"font-size: 11pt; font-family: Arial; color: #1155cc; background-color: transparent; text-decoration: underline; vertical-align: baseline;\">hapi.js<\/span><\/a><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\"> related packages, then we add the Couchbase related packages, and finally we add <\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: bold; vertical-align: baseline;\">nodemon<\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\"> to our dev dependencies for the live reload of our server while we are coding.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">npm install <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">&#8211;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">S hapi joi<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">npm install <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">&#8211;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">S couchbase ottoman<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">npm install <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">&#8211;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">D nodemon<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">Once all this is ready, we start to create our project. We create a folder <\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: bold; font-style: italic; vertical-align: baseline;\">src<\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\"> where we will have all our code. Inside we create an <\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: bold; font-style: italic; vertical-align: baseline;\">index.js<\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\"> file where we will have our basic hapi server. There we add the following code:<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">const<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #660066; background-color: transparent; vertical-align: baseline;\">Hapi<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">require<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;hapi&#8217;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #880000; background-color: transparent; vertical-align: baseline;\">\/\/ Create a server with a host and port<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">const<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> server <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">new<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #660066; background-color: transparent; vertical-align: baseline;\">Hapi<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #660066; background-color: transparent; vertical-align: baseline;\">Server<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">();<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">server<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">connection<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">({<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0host<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;localhost&#8217;,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0port<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">5000,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0routes<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0cors<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">true,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">});<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #880000; background-color: transparent; vertical-align: baseline;\">\/\/ Start the server<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">server<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">start<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> err <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=&gt;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">if<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> err <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #880000; background-color: transparent; vertical-align: baseline;\">\/\/ Fancy error handling here<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0console<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">error<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> err <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">throw<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> err;<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0console<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">log<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">`Server started at ${ server.info.uri }`<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">}<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">module<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">exports <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> server;<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">We have just created our basic server.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">Now we are going to define an entry route for our server. First, we create a folder API where we will define our routes. And we create a file <\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: bold; font-style: italic; vertical-align: baseline;\">index.js<\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">, with the code of our entry route:<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">const<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> routes <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> [<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0{<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0method<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;GET&#8217;,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0path<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;\/&#8217;,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0config<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0handler<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">request<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">,<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> reply<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=&gt;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">return<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> reply<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">({<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0name<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;node-hapi-couchbase-api&#8217;,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0version<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> 1<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">});<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">];<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">module<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">exports <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> routes;<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">In the main <\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: bold; font-style: italic; vertical-align: baseline;\">index.js<\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\"> file, we are going to import the routes. For that we add the following code before the server.start code that we defined earlier:<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">const<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> routes <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">require<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;.\/api&#8217;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #880000; background-color: transparent; vertical-align: baseline;\">\/\/ Add the routes<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">server<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">route<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">routes<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">Now in our <\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: bold; font-style: italic; vertical-align: baseline;\">package.json<\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\"> file, we will add the <\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-style: italic; vertical-align: baseline;\">script<\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\"> section.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8220;scripts&#8221;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8220;start&#8221;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8220;nodemon .\/src\/index.js&#8221;<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">},<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">If we run <\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-style: italic; vertical-align: baseline;\">npm start<\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">, we will start our server. We can check it by going to <\/span><a style=\"text-decoration: none;\" href=\"https:\/\/localhost:5000\"><span style=\"font-size: 11pt; font-family: Arial; color: #1155cc; background-color: transparent; text-decoration: underline; vertical-align: baseline;\">https:\/\/localhost:5000<\/span><\/a><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">, and we should get a response.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">{<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8220;name&#8221;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8220;node-hapi-couchbase-api&#8221;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">,<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8220;version&#8221;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">1}<\/span><\/p>\n<h2 dir=\"ltr\" style=\"line-height: 1.38; margin-top: 18pt; margin-bottom: 6pt;\"><span style=\"font-size: 16pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; vertical-align: baseline;\">Database Connector<\/span><\/h2>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">To set up the database connector, we are going to create a folder <\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: bold; font-style: italic; vertical-align: baseline;\">db<\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\"> where we will store the database information and the logic for the connector.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">We are going to store the information in the file config.json with the following code:<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">{<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8220;couchbase&#8221;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8220;endpoint&#8221;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8220;localhost:8091&#8221;,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8220;bucket&#8221;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8220;api&#8221;<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">For the connector, we are going to create a file <\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: bold; font-style: italic; vertical-align: baseline;\">index.js<\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">, where we are going to import the config file and the Couchbase library and initialize the connection with the database and the bucket.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">let config <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">require<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;.\/config&#8217;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">let couchbase <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">require<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;couchbase&#8217;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">let endpoint <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> config<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">couchbase<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">endpoint;<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">let bucket <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> config<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">couchbase<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">bucket;<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">let myCluster <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">new<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> couchbase<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #660066; background-color: transparent; vertical-align: baseline;\">Cluster<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">endpoint<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">,<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">function<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">if<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0console<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">log<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8220;Can&#8217;t connect to couchbase: %s&#8221;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">,<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0console<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">log<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;connected to db %s&#8217;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">,<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> endpoint<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">});<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">let myBucket <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> myCluster<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">openBucket<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">bucket<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">,<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">function<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">if<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0console<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">log<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8220;Can&#8217;t connect to bucket: %s&#8221;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">,<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0console<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">log<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;connected to bucket %s&#8217;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">,<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> bucket<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">});<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">The next step is to import the Couchbase ODM Ottoman and set it up with the bucket.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">let ottoman <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">require<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;ottoman&#8217;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">ottoman<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">store <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">new<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> ottoman<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #660066; background-color: transparent; vertical-align: baseline;\">CbStoreAdapter<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">myBucket<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">,<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> couchbase<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">Finally, we are going to export the bucket and Ottoman so we have access from other files.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">module<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">exports <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0bucket<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> myBucket,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0ottoman<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> ottoman<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">};<\/span><\/p>\n<h2 dir=\"ltr\" style=\"line-height: 1.38; margin-top: 18pt; margin-bottom: 6pt;\"><span style=\"font-size: 16pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; vertical-align: baseline;\">Models<\/span><\/h2>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">Now that we have our basic server running, we are going to define our models with Ottoman. We are going to define two models: one for a <\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-style: italic; vertical-align: baseline;\">User<\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\"> and another for a <\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-style: italic; vertical-align: baseline;\">Post<\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">. For that we create a folder called <\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: bold; font-style: italic; vertical-align: baseline;\">models<\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">, and inside we create two js files: <\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: bold; vertical-align: baseline;\">user.js<\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\"> and <\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: bold; font-style: italic; vertical-align: baseline;\">post.js<\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">. We can add the validations in the model, but hapi.js offers a validation before handling the route, so we are going to use that to validate the data that we receive from the user before we pass it to our model.<\/span><\/p>\n<h3 dir=\"ltr\" style=\"line-height: 1.38; margin-top: 16pt; margin-bottom: 4pt;\"><span style=\"font-size: 14pt; font-family: Arial; color: #434343; background-color: transparent; font-weight: 400; vertical-align: baseline;\">User Model<\/span><\/h3>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">The user will have three fields: <\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-style: italic; vertical-align: baseline;\">name<\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">, <\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-style: italic; vertical-align: baseline;\">email,<\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\"> and <\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-style: italic; vertical-align: baseline;\">password<\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">. We create our user model using the package Ottoman. Our user model contains the following code:<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">let ottoman <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">require<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;..\/db&#8217;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">).<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">ottoman;<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">let <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #660066; background-color: transparent; vertical-align: baseline;\">UserModel<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> ottoman<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">model<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;User&#8217;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">,<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0password<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;string&#8217;,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0name<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;string&#8217;,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0email<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;string&#8217;,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">},<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0index<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0findByEmail<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">by<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8217;email&#8217;,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0type<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;refdoc&#8217;<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">});<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">First, we import the Ottoman instance that we initiated in the db connector. After that we start defining our model. The first parameter is the name of our model, in this case \u2018User\u2019. The second parameter is the JSON object that contains the name of the field and the type; in our case all the values are string (check O<\/span><a style=\"text-decoration: none;\" href=\"https:\/\/ottomanjs.com\/\"><span style=\"font-size: 11pt; font-family: Arial; color: #1155cc; background-color: transparent; text-decoration: underline; vertical-align: baseline;\">ttoman<\/span><\/a><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\"> documentation to see other types). The next parameter is the object that contains the index we want to create. We are going to create an index for the email so we can use that index to query for the user using our model; this will also create a restriction to avoid duplicated emails in our users. <\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">When we create an index we need to call the function ensureIndices to create the indexes internally. <\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">ottoman<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">ensureIndices<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">function<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">if<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">return<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> console<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">error<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;Error ensure indices USER&#8217;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">,<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0console<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">log<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;Ensure indices USER&#8217;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">});<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">The last step is to export the model.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">module<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">exports <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #660066; background-color: transparent; vertical-align: baseline;\">UserModel;<\/span><\/p>\n<h3 dir=\"ltr\" style=\"line-height: 1.38; margin-top: 16pt; margin-bottom: 4pt;\"><span style=\"font-size: 14pt; font-family: Arial; color: #434343; background-color: transparent; font-weight: 400; vertical-align: baseline;\">Post Model<\/span><\/h3>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">The post will contain four fields: <\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-style: italic; vertical-align: baseline;\">title<\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\"> and <\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-style: italic; vertical-align: baseline;\">body<\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">, the <\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-style: italic; vertical-align: baseline;\">timestamp<\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">, and the <\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-style: italic; vertical-align: baseline;\">user<\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">First, we import the Ottoman instance that we initialized in the db connector, and we also import the User model.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">let ottoman <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">require<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;..\/db&#8217;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">).<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">ottoman;<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">let <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #660066; background-color: transparent; vertical-align: baseline;\">User<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">require<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;.\/user&#8217;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">let <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #660066; background-color: transparent; vertical-align: baseline;\">PostModel<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> ottoman<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">model<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;Post&#8217;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">,<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0user<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #660066; background-color: transparent; vertical-align: baseline;\">User,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0title<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;string&#8217;,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0body<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;string&#8217;,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0timestamp<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0type<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;Date&#8217;,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">default<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #660066; background-color: transparent; vertical-align: baseline;\">Date<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">now<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">});<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">The first parameter is the name of our model, \u2018Post\u2019. The second is the JSON object with our field. In this case we define user with the type <\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-style: italic; vertical-align: baseline;\">User<\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\"> that we defined in our previous model; the title and body of type <\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-style: italic; vertical-align: baseline;\">string<\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">, and timestamp of type <\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-style: italic; vertical-align: baseline;\">Date<\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">. We are going to create a default value with the current timestamp when the object is created.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">And finally we export our model.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">module<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">exports <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #660066; background-color: transparent; vertical-align: baseline;\">PostModel;<\/span><\/p>\n<h2 dir=\"ltr\" style=\"line-height: 1.38; margin-top: 18pt; margin-bottom: 6pt;\"><span style=\"font-size: 16pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; vertical-align: baseline;\">API Routes<\/span><\/h2>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">We are going to define our routes for Users and Posts; the basic path we are going to use is <\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-style: italic; vertical-align: baseline;\">\/api\/v1<\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">. In our index.js file inside API, we are going to import the user routes and the post routes, and we will join them in an array.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">const<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> users <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">require<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;.\/users&#8217;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">const<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> posts <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">require<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;.\/posts&#8217;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">&#8230;<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">routes <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> routes<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">concat<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">users<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">routes <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> routes<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">concat<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">posts<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">In both User and Post routes, we are going to define the methods to perform a CRUD operation. For every route, we need to define the method, path, and config. In the config section we provide the handler, that it is the function to perform; and we can also provide a validate function that will be called before we perform the handle function. For validations, we are going to use the Joi package, which we can use to define the schema and validations for the body of the request.<\/span><\/p>\n<h3 dir=\"ltr\" style=\"line-height: 1.38; margin-top: 16pt; margin-bottom: 4pt;\"><span style=\"font-size: 14pt; font-family: Arial; color: #434343; background-color: transparent; font-weight: 400; vertical-align: baseline;\">User routes<\/span><\/h3>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">For users, we are going to use the path <\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-style: italic; vertical-align: baseline;\">\/api\/v1\/users<\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">. The first step in our routes file is to import the User model and the joi package.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">const<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #660066; background-color: transparent; vertical-align: baseline;\">User<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">require<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;..\/models\/user&#8217;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">const<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #660066; background-color: transparent; vertical-align: baseline;\">Joi<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">require<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;joi&#8217;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<h4 dir=\"ltr\" style=\"line-height: 1.38; margin-top: 14pt; margin-bottom: 4pt;\"><span style=\"font-size: 12pt; font-family: Arial; color: #666666; background-color: transparent; font-weight: 400; vertical-align: baseline;\">Retrieve the list of users GET \/api\/v1\/users<\/span><\/h4>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">In the handle function we are going to use the find function from the User model that allows us to query the db to collect all the documents of type User. \u00a0<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0{<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0method<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;GET&#8217;,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0path<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;\/api\/v1\/users&#8217;,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0config<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0handler<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">request<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">,<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> reply<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=&gt;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #660066; background-color: transparent; vertical-align: baseline;\">User<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">find<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">({},<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">,<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> users<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=&gt;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">if<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">return<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> reply<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">({<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0status<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">400,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0message<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">message<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">}).<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">code<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">400<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">return<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> reply<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">({<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0data<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> users,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0count<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> users<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">length<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">});<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">});<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">We are going to return an object with an array of user and a count with the number of objects inside the array. <\/span><\/p>\n<h4 dir=\"ltr\" style=\"line-height: 1.38; margin-top: 14pt; margin-bottom: 4pt;\"><span style=\"font-size: 12pt; font-family: Arial; color: #666666; background-color: transparent; font-weight: 400; vertical-align: baseline;\">Retrieve a User by its id GET \/api\/v1\/users\/{id}<\/span><\/h4>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">In this case, we are going to query for a user by its document id, so we are going to use the built-in function <\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-style: italic; vertical-align: baseline;\">getById<\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\"> in our model to retrieve a document from the database.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">In this case, we provide a <\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-style: italic; vertical-align: baseline;\">validate<\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\"> object to validate that the param value <\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-style: italic; vertical-align: baseline;\">id<\/span><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\"> is a string.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0{<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0method<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;GET&#8217;,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0path<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;\/api\/v1\/users\/{id}&#8217;,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0config<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0handler<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">request<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">,<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> reply<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=&gt;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #660066; background-color: transparent; vertical-align: baseline;\">User<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">getById<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">request<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">params<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">id<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">,<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">,<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> user<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=&gt;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">if<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">return<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> reply<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">({<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0status<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">400,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0message<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">message<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">}).<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">code<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">400<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">return<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> reply<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">user<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">});<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">},<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0validate<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">params<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0id<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #660066; background-color: transparent; vertical-align: baseline;\">Joi<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">string<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(),<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">We are going to return the document of the user.<\/span><\/p>\n<h4 dir=\"ltr\" style=\"line-height: 1.38; margin-top: 14pt; margin-bottom: 4pt;\"><span style=\"font-size: 12pt; font-family: Arial; color: #666666; background-color: transparent; font-weight: 400; vertical-align: baseline;\">Create a new user POST \/api\/v1\/users<\/span><\/h4>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">Now we are going to create a new user. The first step is to create the User with the User model and the body of the request.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">We provide a validate object to check that payload (body of the request).<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0{<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0method<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;POST&#8217;,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0path<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;\/api\/v1\/users&#8217;,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0config<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0handler<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">request<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">,<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> reply<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=&gt;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">const<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> user <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">new<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #660066; background-color: transparent; vertical-align: baseline;\">User<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">request<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">payload<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0user<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">save<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">((<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=&gt;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">if<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">return<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> reply<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">({<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0status<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">400,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0message<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">message<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">}).<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">code<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">400<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">return<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> reply<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">user<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">).<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">code<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">201<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">});<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">},<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0validate<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0payload<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0password<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #660066; background-color: transparent; vertical-align: baseline;\">Joi<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">string<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">().<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">alphanum<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">().<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">min<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">3<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">).<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">max<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">30<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">).<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">required<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(),<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0email<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #660066; background-color: transparent; vertical-align: baseline;\">Joi<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">string<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">().<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">email<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">().<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">required<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(),<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0name<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #660066; background-color: transparent; vertical-align: baseline;\">Joi<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">string<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">()<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">We will return the object of the new user created.<\/span><\/p>\n<h4 dir=\"ltr\" style=\"line-height: 1.38; margin-top: 14pt; margin-bottom: 4pt;\"><span style=\"font-size: 12pt; font-family: Arial; color: #666666; background-color: transparent; font-weight: 400; vertical-align: baseline;\">Update a user PUT \/api\/v1\/users\/{id}<\/span><\/h4>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">Now we are going to update a user. In this case we are first going to retrieve the user document from the database, then we will update the fields, and finally we will save the updated document in the database.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">In this case, we provide a validate object where we validate both params and payload.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0{<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0method<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;PUT&#8217;,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0path<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;\/api\/v1\/users\/{id}&#8217;,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0config<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0handler<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">request<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">,<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> reply<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=&gt;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #660066; background-color: transparent; vertical-align: baseline;\">User<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">getById<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">request<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">params<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">id<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">,<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">,<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> user<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=&gt;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">if<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">return<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> reply<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">({<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0status<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">400,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0message<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">message<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">}).<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">code<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">400<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">const<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> payload <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> request<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">payload;<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">if<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">payload<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">name<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0user<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">name <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> payload<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">name;<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">if<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">payload<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">password<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0user<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">password <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> payload<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">password;<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0user<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">save<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">((<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=&gt;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">if<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">return<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> reply<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">({<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0status<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">400,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0message<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">message<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">}).<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">code<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">400<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">return<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> reply<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">user<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">).<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">code<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">200<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">});<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">});<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">},<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0validate<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">params<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0id<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #660066; background-color: transparent; vertical-align: baseline;\">Joi<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">string<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(),<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">},<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0payload<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0name<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #660066; background-color: transparent; vertical-align: baseline;\">Joi<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">string<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(),<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0password<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #660066; background-color: transparent; vertical-align: baseline;\">Joi<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">string<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">().<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">alphanum<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">().<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">min<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">3<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">).<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">max<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">30<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">),<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">We will return the updated document.<\/span><\/p>\n<h4 dir=\"ltr\" style=\"line-height: 1.38; margin-top: 14pt; margin-bottom: 4pt;\"><span style=\"font-size: 12pt; font-family: Arial; color: #666666; background-color: transparent; font-weight: 400; vertical-align: baseline;\">Delete a user DELETE \/api\/v1\/users\/{id}<\/span><\/h4>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">In this case we are going to delete a user. First we retrieve the document from the database, and then we remove it.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0{<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0method<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;DELETE&#8217;,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0path<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;\/api\/v1\/users\/{id}&#8217;,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0config<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0handler<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">request<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">,<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> reply<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=&gt;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #660066; background-color: transparent; vertical-align: baseline;\">User<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">getById<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">request<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">params<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">id<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">,<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">,<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> user<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=&gt;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">if<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">return<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> reply<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">({<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0status<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">400,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0message<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">message<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">}).<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">code<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">400<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0user<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">remove<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">((<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=&gt;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">if<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">return<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> reply<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">({<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0status<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">400,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0message<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">message<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">}).<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">code<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">400<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">return<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> reply<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">user<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">});<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">});<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">},<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0validate<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">params<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0id<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #660066; background-color: transparent; vertical-align: baseline;\">Joi<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">string<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(),<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">We will return the document deleted.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">Finally, we need to export the routes.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">module<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">exports <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> routes;<\/span><\/p>\n<h3 dir=\"ltr\" style=\"line-height: 1.38; margin-top: 16pt; margin-bottom: 4pt;\"><span style=\"font-size: 14pt; font-family: Arial; color: #434343; background-color: transparent; font-weight: 400; vertical-align: baseline;\">Post routes<\/span><\/h3>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">For the post routes we are going to use the path \/api\/v1\/users\/{userId}\/posts, so we only perform operations to post related to the user. We will define a validation function that it is going to check if the user exists in the database, and return it so we have access to the user in the function that handles the request.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">The first section of the code is the imports and that function.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">const<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #660066; background-color: transparent; vertical-align: baseline;\">User<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">require<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;..\/models\/user&#8217;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">const<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #660066; background-color: transparent; vertical-align: baseline;\">Post<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">require<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;..\/models\/post&#8217;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">const<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #660066; background-color: transparent; vertical-align: baseline;\">Joi<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">require<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;joi&#8217;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">const<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> validateUser <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">value<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">,<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> options<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">,<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">next<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=&gt;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">const<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> userId <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> options<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">context<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">params<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">userId;<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #660066; background-color: transparent; vertical-align: baseline;\">User<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">getById<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">userId<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">,<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">,<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> user<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=&gt;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">next<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">,<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #660066; background-color: transparent; vertical-align: baseline;\">Object<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">assign<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">({},<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> value<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">,<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">{<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> user <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">}))<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">})<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">};<\/span><\/p>\n<h4 dir=\"ltr\" style=\"line-height: 1.38; margin-top: 14pt; margin-bottom: 4pt;\"><span style=\"font-size: 12pt; font-family: Arial; color: #666666; background-color: transparent; font-weight: 400; vertical-align: baseline;\">Retrieve the list of posts of the user GET \/api\/v1\/users\/{userId}\/posts<\/span><\/h4>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">To retrieve all the user\u2019s posts we are going to use the Post model and the function find. We are going to execute with an object where we are going to provide the id of the user to retrieve all the Post of the user.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0{<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0method<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;GET&#8217;,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0path<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;\/api\/v1\/users\/{userId}\/posts&#8217;,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0config<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0handler<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">request<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">,<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> reply<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=&gt;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">const<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> user <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> request<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">query<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">user;<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #660066; background-color: transparent; vertical-align: baseline;\">Post<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">find<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">({<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> user<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">{<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> _id<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> user<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">_id <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">}<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">},<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">,<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> posts<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=&gt;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">if<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">return<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> reply<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">({<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0status<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">400,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0message<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">message<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">}).<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">code<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">400<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">return<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> reply<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">({<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0data<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> posts,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0count<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> posts<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">length<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">});<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">})<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">},<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0validate<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0query<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> validateUser,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">We are going to return an object with an array of post and the count of posts.<\/span><\/p>\n<h4 dir=\"ltr\" style=\"line-height: 1.38; margin-top: 14pt; margin-bottom: 4pt;\"><span style=\"font-size: 12pt; font-family: Arial; color: #666666; background-color: transparent; font-weight: 400; vertical-align: baseline;\">Retrieve a post GET \/api\/v1\/users\/{userId}\/posts\/{postId}<\/span><\/h4>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">Like we do in the list of post, to retrieve one post we are going to call the function find with the user id, and also with the post id that we want to retrieve.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0{<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0method<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;GET&#8217;,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0path<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;\/api\/v1\/users\/{userId}\/posts\/{postId}&#8217;,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0config<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0handler<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">request<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">,<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> reply<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=&gt;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">const<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> user <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> request<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">query<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">user;<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">const<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> postId <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> request<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">params<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">postId;<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #660066; background-color: transparent; vertical-align: baseline;\">Post<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">find<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">({<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> user<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">{<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> _id<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> user<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">_id <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">},<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> _id<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> postId <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">},<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">,<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> posts<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=&gt;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">if<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">return<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> reply<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">({<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0status<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">400,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0message<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">message<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">}).<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">code<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">400<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">if<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">posts<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">length <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">===<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">return<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> reply<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">({<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0status<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">404,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0message<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;Not Found&#8217;<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">}).<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">code<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">404<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">}<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">else<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">return<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> reply<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">posts<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">[<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">]);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">})<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">},<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0validate<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0query<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> validateUser,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">We are going to return the first post that we receive. We can only receive one post because we are querying the db to find a post by its id, which is why we return the first item of the array. If we do not get any post, it means there is no post with that id related to that user, so we return a not found error.<\/span><\/p>\n<h4 dir=\"ltr\" style=\"line-height: 1.38; margin-top: 14pt; margin-bottom: 4pt;\"><span style=\"font-size: 12pt; font-family: Arial; color: #666666; background-color: transparent; font-weight: 400; vertical-align: baseline;\">Create a new post POST \/api\/v1\/users\/{userId}\/posts<\/span><\/h4>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">To create a post, we are going to do the same process as we did in the user. We provide a validate object for the payload so we can validate the body that we receive. We only validate the title and the body of the post because the user we are getting it from &#8212; the path and the timestamp &#8212; is generated when we create the post.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">In the handler function we create a new post with the payload, and we set the user of the post with the user.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0{<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0method<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;POST&#8217;,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0path<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;\/api\/v1\/users\/{userId}\/posts&#8217;,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0config<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0handler<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">request<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">,<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> reply<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=&gt;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">const<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> user <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> request<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">query<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">user;<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">const<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> post <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">new<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #660066; background-color: transparent; vertical-align: baseline;\">Post<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">request<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">payload<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0post<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">user <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> user;<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0post<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">save<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">((<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=&gt;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">if<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">return<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> reply<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">({<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0status<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">400,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0message<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">message<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">}).<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">code<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">400<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">return<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> reply<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">post<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">).<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">code<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">201<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">});<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">},<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0validate<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0query<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> validateUser,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0payload<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0title<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #660066; background-color: transparent; vertical-align: baseline;\">Joi<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">string<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">().<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">required<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(),<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0body<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #660066; background-color: transparent; vertical-align: baseline;\">Joi<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">string<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">().<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">required<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(),<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">We will return the post created.<\/span><\/p>\n<h4 dir=\"ltr\" style=\"line-height: 1.38; margin-top: 14pt; margin-bottom: 4pt;\"><span style=\"font-size: 12pt; font-family: Arial; color: #666666; background-color: transparent; font-weight: 400; vertical-align: baseline;\">Update a post PUT \/api\/v1\/users\/{userId}\/posts\/{postId}<\/span><\/h4>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">To update a post, we provide a validate object like we did in the create, and we are going to allow change to the title and the body of the post. Here we are going to query the post using the Post model and getById function, so when we retrieve the post, we check if the user matches the user provided in the path. If it matches, we update the fields in the post with the values of the request, and we save the updated post.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">{<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0method<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;PUT&#8217;,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0path<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;\/api\/v1\/users\/{userId}\/posts\/{postId}&#8217;,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0config<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0handler<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">request<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">,<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> reply<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=&gt;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #660066; background-color: transparent; vertical-align: baseline;\">Post<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">getById<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">request<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">params<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">postId<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">,<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">,<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> post<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=&gt;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">if<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">return<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> reply<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">({<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0status<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">400,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0message<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">message<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">}).<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">code<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">400<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">if<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">request<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">params<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">userId <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">===<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> post<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">user<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">_id<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">const<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> payload <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> request<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">payload;<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">if<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">payload<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">title<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0post<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">title <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> payload<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">title;<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">if<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">payload<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">body<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0post<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">body <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> payload<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">body;<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0post<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">save<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">((<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=&gt;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">if<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">return<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> reply<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">({<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0status<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">400,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0message<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">message<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">}).<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">code<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">400<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">return<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> reply<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">post<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">).<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">code<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">200<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">});<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">}<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">else<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">return<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> reply<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">({<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0status<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">401,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0message<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8220;The user can not edit the post&#8221;<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">}).<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">code<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">401<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">})<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">},<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0validate<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0query<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> validateUser,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0payload<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0title<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #660066; background-color: transparent; vertical-align: baseline;\">Joi<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">string<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">().<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">required<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(),<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0body<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #660066; background-color: transparent; vertical-align: baseline;\">Joi<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">string<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">().<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">required<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(),<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">We will return the updated post. If the user does not match the user in the post, we receive an authorized error because the user is not the owner of the post.<\/span><\/p>\n<h4 dir=\"ltr\" style=\"line-height: 1.38; margin-top: 14pt; margin-bottom: 4pt;\"><span style=\"font-size: 12pt; font-family: Arial; color: #666666; background-color: transparent; font-weight: 400; vertical-align: baseline;\">Delete a post DELETE \/api\/v1\/users\/{userId}\/posts\/{postId}<\/span><\/h4>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">As we did in the update, we query for the post and we check if the user of the path matches the user of the post. If they match, we proceed and delete the post.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0{<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0method<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;DELETE&#8217;,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0path<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;\/api\/v1\/users\/{userId}\/posts\/{postId}&#8217;,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0config<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0handler<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">request<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">,<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> reply<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=&gt;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #660066; background-color: transparent; vertical-align: baseline;\">Post<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">getById<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">request<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">params<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">postId<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">,<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">,<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> post<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=&gt;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">if<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">return<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> reply<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">({<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0status<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">400,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0message<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">message<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">}).<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">code<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">400<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">if<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">request<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">params<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">userId <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">===<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> post<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">user<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">_id<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0post<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">remove<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">((<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=&gt;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">if<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">)<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">return<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> reply<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">({<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0status<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">400,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0message<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> err<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">message<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">}).<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">code<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">400<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">return<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> reply<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">post<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">).<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">code<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">200<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">});<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">}<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">else<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">return<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> reply<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">({<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0status<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">401,<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0message<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8220;The user can not delete the post&#8221;<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">}).<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">code<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">(<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #006666; background-color: transparent; vertical-align: baseline;\">401<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">})<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">},<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0validate<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0query<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">:<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> validateUser<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">We return the deleted post.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">Finally we export the routes.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #000088; background-color: transparent; vertical-align: baseline;\">module<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">.<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">exports <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">=<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\"> routes;<\/span><\/p>\n<h2 dir=\"ltr\" style=\"line-height: 1.38; margin-top: 18pt; margin-bottom: 6pt;\"><span style=\"font-size: 16pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; vertical-align: baseline;\">Test<\/span><\/h2>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">To test the API, we can do it with Postman, cURL, or any other application.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">Below we created some cURL examples to test the API. The ids used are the ones that we created with the POST operations, so when you execute them, remember to change the path to match the ids of the resources you have generated.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 9pt; font-family: Consolas; color: #880000; background-color: transparent; vertical-align: baseline;\"># we query for the users<\/span><br class=\"kix-line-break\" \/><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">curl <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">&#8211;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">X GET <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8220;https:\/\/localhost:5000\/api\/v1\/users&#8221;<\/span><br class=\"kix-line-break\" \/><br class=\"kix-line-break\" \/><span style=\"font-size: 9pt; font-family: Consolas; color: #880000; background-color: transparent; vertical-align: baseline;\"># we create a user<\/span><br class=\"kix-line-break\" \/><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">curl <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">&#8211;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">X POST <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">&#8211;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">H <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8220;Content-Type: application\/json&#8221;<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">&#8211;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">d <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;{<\/span><br class=\"kix-line-break\" \/><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0 <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8220;name&#8221;: &#8220;jose&#8221;,<\/span><br class=\"kix-line-break\" \/><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0 <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8220;password&#8221;: &#8220;jose&#8221;,<\/span><br class=\"kix-line-break\" \/><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0 <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8220;email&#8221;: &#8220;jose.navarro@famoco.com&#8221;<\/span><br class=\"kix-line-break\" \/><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">}&#8217;<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8220;https:\/\/localhost:5000\/api\/v1\/users&#8221;<\/span><br class=\"kix-line-break\" \/><br class=\"kix-line-break\" \/><span style=\"font-size: 9pt; font-family: Consolas; color: #880000; background-color: transparent; vertical-align: baseline;\"># we should get a json with a user<\/span><br class=\"kix-line-break\" \/><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">curl <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">&#8211;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">X GET <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8220;https:\/\/localhost:5000\/api\/v1\/users&#8221;<\/span><br class=\"kix-line-break\" \/><br class=\"kix-line-break\" \/><span style=\"font-size: 9pt; font-family: Consolas; color: #880000; background-color: transparent; vertical-align: baseline;\"># we should get the users with that id<\/span><br class=\"kix-line-break\" \/><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">curl <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">&#8211;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">X GET <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8220;https:\/\/localhost:5000\/api\/v1\/users\/e0b66baa-851d-4aae-9ef2-f12575519e5e&#8221;<\/span><br class=\"kix-line-break\" \/><br class=\"kix-line-break\" \/><span style=\"font-size: 9pt; font-family: Consolas; color: #880000; background-color: transparent; vertical-align: baseline;\"># we update the user<\/span><br class=\"kix-line-break\" \/><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">curl <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">&#8211;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">X PUT <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">&#8211;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">H <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8220;Content-Type: application\/json&#8221;<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">&#8211;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">d <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;{<\/span><br class=\"kix-line-break\" \/><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0 <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8220;name&#8221;: &#8220;jose_update&#8221;,<\/span><br class=\"kix-line-break\" \/><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0 <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8220;password&#8221;: &#8220;joseedit&#8221;<\/span><br class=\"kix-line-break\" \/><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">}&#8217;<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8220;https:\/\/localhost:5000\/api\/v1\/users\/e0b66baa-851d-4aae-9ef2-f12575519e5e&#8221;<\/span><br class=\"kix-line-break\" \/><br class=\"kix-line-break\" \/><span style=\"font-size: 9pt; font-family: Consolas; color: #880000; background-color: transparent; vertical-align: baseline;\"># we delete the user<\/span><br class=\"kix-line-break\" \/><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">curl <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">&#8211;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">X DELETE <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8220;https:\/\/localhost:5000\/api\/v1\/users\/e0b66baa-851d-4aae-9ef2-f12575519e5e&#8221;<\/span><br class=\"kix-line-break\" \/><br class=\"kix-line-break\" \/><br class=\"kix-line-break\" \/><span style=\"font-size: 9pt; font-family: Consolas; color: #880000; background-color: transparent; vertical-align: baseline;\"># posts<\/span><br class=\"kix-line-break\" \/><span style=\"font-size: 9pt; font-family: Consolas; color: #880000; background-color: transparent; vertical-align: baseline;\"># we query for the post of a user<\/span><br class=\"kix-line-break\" \/><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">curl <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">&#8211;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">X GET <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8220;https:\/\/localhost:5000\/api\/v1\/users\/e717b7a3-e991-441e-8bca-562f2a572b19\/posts&#8221;<\/span><br class=\"kix-line-break\" \/><br class=\"kix-line-break\" \/><span style=\"font-size: 9pt; font-family: Consolas; color: #880000; background-color: transparent; vertical-align: baseline;\"># we create a post<\/span><br class=\"kix-line-break\" \/><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">curl <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">&#8211;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">X POST <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">&#8211;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">H <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8220;Content-Type: application\/json&#8221;<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">&#8211;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">d <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;{<\/span><br class=\"kix-line-break\" \/><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0 <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8220;title&#8221;: &#8220;my post title&#8221;,<\/span><br class=\"kix-line-break\" \/><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0 <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8220;body&#8221;: &#8220;my post body&#8221;<\/span><br class=\"kix-line-break\" \/><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">}&#8217;<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8220;https:\/\/localhost:5000\/api\/v1\/users\/e717b7a3-e991-441e-8bca-562f2a572b19\/posts&#8221;<\/span><br class=\"kix-line-break\" \/><br class=\"kix-line-break\" \/><span style=\"font-size: 9pt; font-family: Consolas; color: #880000; background-color: transparent; vertical-align: baseline;\"># we query for a post<\/span><br class=\"kix-line-break\" \/><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">curl <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">&#8211;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">X GET <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8220;https:\/\/localhost:5000\/api\/v1\/users\/e717b7a3-e991-441e-8bca-562f2a572b19\/posts\/94b1dd8e-73aa-4e4e-8b29-0870e6515945&#8221;<\/span><br class=\"kix-line-break\" \/><br class=\"kix-line-break\" \/><span style=\"font-size: 9pt; font-family: Consolas; color: #880000; background-color: transparent; vertical-align: baseline;\"># we update a post<\/span><br class=\"kix-line-break\" \/><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">curl <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">&#8211;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">X PUT <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">&#8211;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">H <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8220;Content-Type: application\/json&#8221;<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">&#8211;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">d <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8216;{<\/span><br class=\"kix-line-break\" \/><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0 <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8220;title&#8221;: &#8220;my edited title&#8221;,<\/span><br class=\"kix-line-break\" \/><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">\u00a0\u00a0\u00a0 <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8220;body&#8221;: &#8220;my edited body&#8221;<\/span><br class=\"kix-line-break\" \/><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">}&#8217;<\/span> <span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8220;https:\/\/localhost:5000\/api\/v1\/users\/e717b7a3-e991-441e-8bca-562f2a572b19\/posts\/94b1dd8e-73aa-4e4e-8b29-0870e6515945&#8221;<\/span><br class=\"kix-line-break\" \/><br class=\"kix-line-break\" \/><span style=\"font-size: 9pt; font-family: Consolas; color: #880000; background-color: transparent; vertical-align: baseline;\"># we delete a post<\/span><br class=\"kix-line-break\" \/><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">curl <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #666600; background-color: transparent; vertical-align: baseline;\">&#8211;<\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #000000; background-color: transparent; vertical-align: baseline;\">X DELETE <\/span><span style=\"font-size: 9pt; font-family: Consolas; color: #008800; background-color: transparent; vertical-align: baseline;\">&#8220;https:\/\/localhost:5000\/api\/v1\/users\/e717b7a3-e991-441e-8bca-562f2a572b19\/posts\/94b1dd8e-73aa-4e4e-8b29-0870e6515945&#8221;<\/span><\/p>\n<h2 dir=\"ltr\" style=\"line-height: 1.38; margin-top: 18pt; margin-bottom: 6pt;\"><span style=\"font-size: 16pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; vertical-align: baseline;\">Conclusion<\/span><\/h2>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline;\">As we have seen, it was easy to develop a basic REST API to perform a CRUD operation, and the code is simple and easy to read. And with Ottoman we were able to abstract the db logic to work with object and the methods the ODM provided us.<\/span><\/p>\n<h2 dir=\"ltr\" style=\"line-height: 1.38; margin-top: 18pt; margin-bottom: 6pt;\"><span style=\"font-size: 16pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; vertical-align: baseline;\">Resources<\/span><\/h2>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><a style=\"text-decoration: none;\" href=\"https:\/\/hapijs.com\/\"><span style=\"font-size: 11pt; font-family: Arial; color: #1155cc; background-color: transparent; text-decoration: underline; vertical-align: baseline;\">Hapi.js<\/span><\/a><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><a href=\"https:\/\/ottomanjs.com\/\"><span style=\"font-size: 11pt; font-family: Arial; color: #1155cc; background-color: transparent; text-decoration: underline; vertical-align: baseline;\">Ottoman<\/span><\/a><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><a style=\"text-decoration: none;\" href=\"https:\/\/github.com\/jmn8718\/node-hapi-couchbase-api\"><span style=\"font-size: 11pt; font-family: Arial; color: #1155cc; background-color: transparent; text-decoration: underline; vertical-align: baseline;\">GitHub repo<\/span><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Jose Navarro is a full stack developer at FAMOCO in Brussels, Belgium. He has been working for the last 3 years as a web developer with Node.js, Java, AngularJS, and ReactJS, and has deep interest in web development and mobile [&hellip;]<\/p>\n","protected":false},"author":53,"featured_media":2550,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1822],"tags":[],"ppma_author":[9026],"class_list":["post-2525","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-node-js"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.8 (Yoast SEO v25.8) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Develop a REST API with Couchbase Ottoman + Node.js + hapi.js<\/title>\n<meta name=\"description\" content=\"Learn how to develop a REST API using Node.js and Couchbase ODM Ottoman. See how to use hapi.js, which makes it easy to start and develop an API.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/develop-a-rest-api-with-couchbase-ottoman-nodejs-hapijs\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Develop a REST API with Couchbase Ottoman + Node.js + hapi.js\" \/>\n<meta property=\"og:description\" content=\"Learn how to develop a REST API using Node.js and Couchbase ODM Ottoman. See how to use hapi.js, which makes it easy to start and develop an API.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/develop-a-rest-api-with-couchbase-ottoman-nodejs-hapijs\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-02-08T08:23:01+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-12-18T10:13:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/02\/shutterstock_137089781-e1487029324566.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1000\" \/>\n\t<meta property=\"og:image:height\" content=\"750\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Laura Czajkowski, Developer Community Manager, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Laura Czajkowski, Developer Community Manager, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/develop-a-rest-api-with-couchbase-ottoman-nodejs-hapijs\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/develop-a-rest-api-with-couchbase-ottoman-nodejs-hapijs\/\"},\"author\":{\"name\":\"Laura Czajkowski, Developer Community Manager, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/5f1a0ece4e644bc8c037686fbc8f3220\"},\"headline\":\"Develop a REST API with Couchbase Ottoman + Node.js + hapi.js\",\"datePublished\":\"2017-02-08T08:23:01+00:00\",\"dateModified\":\"2018-12-18T10:13:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/develop-a-rest-api-with-couchbase-ottoman-nodejs-hapijs\/\"},\"wordCount\":3298,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/develop-a-rest-api-with-couchbase-ottoman-nodejs-hapijs\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/shutterstock_137089781-e1487029324566.jpg\",\"articleSection\":[\"Node.js\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/develop-a-rest-api-with-couchbase-ottoman-nodejs-hapijs\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/develop-a-rest-api-with-couchbase-ottoman-nodejs-hapijs\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/develop-a-rest-api-with-couchbase-ottoman-nodejs-hapijs\/\",\"name\":\"Develop a REST API with Couchbase Ottoman + Node.js + hapi.js\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/develop-a-rest-api-with-couchbase-ottoman-nodejs-hapijs\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/develop-a-rest-api-with-couchbase-ottoman-nodejs-hapijs\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/shutterstock_137089781-e1487029324566.jpg\",\"datePublished\":\"2017-02-08T08:23:01+00:00\",\"dateModified\":\"2018-12-18T10:13:40+00:00\",\"description\":\"Learn how to develop a REST API using Node.js and Couchbase ODM Ottoman. See how to use hapi.js, which makes it easy to start and develop an API.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/develop-a-rest-api-with-couchbase-ottoman-nodejs-hapijs\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/develop-a-rest-api-with-couchbase-ottoman-nodejs-hapijs\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/develop-a-rest-api-with-couchbase-ottoman-nodejs-hapijs\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/shutterstock_137089781-e1487029324566.jpg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/shutterstock_137089781-e1487029324566.jpg\",\"width\":1000,\"height\":750,\"caption\":\"Learn nosql\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/develop-a-rest-api-with-couchbase-ottoman-nodejs-hapijs\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Develop a REST API with Couchbase Ottoman + Node.js + hapi.js\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/5f1a0ece4e644bc8c037686fbc8f3220\",\"name\":\"Laura Czajkowski, Developer Community Manager, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/9deb07d5daaa00220534c31768bc4409\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/bc8eebaf25cbe39bc12fd7b1ef92550becc3953ab877a3f0285a59ec2d30b754?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/bc8eebaf25cbe39bc12fd7b1ef92550becc3953ab877a3f0285a59ec2d30b754?s=96&d=mm&r=g\",\"caption\":\"Laura Czajkowski, Developer Community Manager, Couchbase\"},\"description\":\"Laura Czajkowski is the Snr. Developer Community Manager at Couchbase overseeing the community. She\u2019s responsible for our monthly developer newsletter.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/author\/laura-czajkowski\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Develop a REST API with Couchbase Ottoman + Node.js + hapi.js","description":"Learn how to develop a REST API using Node.js and Couchbase ODM Ottoman. See how to use hapi.js, which makes it easy to start and develop an API.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/develop-a-rest-api-with-couchbase-ottoman-nodejs-hapijs\/","og_locale":"en_US","og_type":"article","og_title":"Develop a REST API with Couchbase Ottoman + Node.js + hapi.js","og_description":"Learn how to develop a REST API using Node.js and Couchbase ODM Ottoman. See how to use hapi.js, which makes it easy to start and develop an API.","og_url":"https:\/\/www.couchbase.com\/blog\/develop-a-rest-api-with-couchbase-ottoman-nodejs-hapijs\/","og_site_name":"The Couchbase Blog","article_published_time":"2017-02-08T08:23:01+00:00","article_modified_time":"2018-12-18T10:13:40+00:00","og_image":[{"width":1000,"height":750,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/02\/shutterstock_137089781-e1487029324566.jpg","type":"image\/jpeg"}],"author":"Laura Czajkowski, Developer Community Manager, Couchbase","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Laura Czajkowski, Developer Community Manager, Couchbase","Est. reading time":"16 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/develop-a-rest-api-with-couchbase-ottoman-nodejs-hapijs\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/develop-a-rest-api-with-couchbase-ottoman-nodejs-hapijs\/"},"author":{"name":"Laura Czajkowski, Developer Community Manager, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/5f1a0ece4e644bc8c037686fbc8f3220"},"headline":"Develop a REST API with Couchbase Ottoman + Node.js + hapi.js","datePublished":"2017-02-08T08:23:01+00:00","dateModified":"2018-12-18T10:13:40+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/develop-a-rest-api-with-couchbase-ottoman-nodejs-hapijs\/"},"wordCount":3298,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/develop-a-rest-api-with-couchbase-ottoman-nodejs-hapijs\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/shutterstock_137089781-e1487029324566.jpg","articleSection":["Node.js"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/develop-a-rest-api-with-couchbase-ottoman-nodejs-hapijs\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/develop-a-rest-api-with-couchbase-ottoman-nodejs-hapijs\/","url":"https:\/\/www.couchbase.com\/blog\/develop-a-rest-api-with-couchbase-ottoman-nodejs-hapijs\/","name":"Develop a REST API with Couchbase Ottoman + Node.js + hapi.js","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/develop-a-rest-api-with-couchbase-ottoman-nodejs-hapijs\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/develop-a-rest-api-with-couchbase-ottoman-nodejs-hapijs\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/shutterstock_137089781-e1487029324566.jpg","datePublished":"2017-02-08T08:23:01+00:00","dateModified":"2018-12-18T10:13:40+00:00","description":"Learn how to develop a REST API using Node.js and Couchbase ODM Ottoman. See how to use hapi.js, which makes it easy to start and develop an API.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/develop-a-rest-api-with-couchbase-ottoman-nodejs-hapijs\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/develop-a-rest-api-with-couchbase-ottoman-nodejs-hapijs\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/develop-a-rest-api-with-couchbase-ottoman-nodejs-hapijs\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/shutterstock_137089781-e1487029324566.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/shutterstock_137089781-e1487029324566.jpg","width":1000,"height":750,"caption":"Learn nosql"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/develop-a-rest-api-with-couchbase-ottoman-nodejs-hapijs\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Develop a REST API with Couchbase Ottoman + Node.js + hapi.js"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"The Couchbase Blog","description":"Couchbase, the NoSQL Database","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"The Couchbase Blog","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/5f1a0ece4e644bc8c037686fbc8f3220","name":"Laura Czajkowski, Developer Community Manager, Couchbase","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/9deb07d5daaa00220534c31768bc4409","url":"https:\/\/secure.gravatar.com\/avatar\/bc8eebaf25cbe39bc12fd7b1ef92550becc3953ab877a3f0285a59ec2d30b754?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bc8eebaf25cbe39bc12fd7b1ef92550becc3953ab877a3f0285a59ec2d30b754?s=96&d=mm&r=g","caption":"Laura Czajkowski, Developer Community Manager, Couchbase"},"description":"Laura Czajkowski is the Snr. Developer Community Manager at Couchbase overseeing the community. She\u2019s responsible for our monthly developer newsletter.","url":"https:\/\/www.couchbase.com\/blog\/author\/laura-czajkowski\/"}]}},"authors":[{"term_id":9026,"user_id":53,"is_guest":0,"slug":"laura-czajkowski","display_name":"Laura Czajkowski, Developer Community Manager, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/bc8eebaf25cbe39bc12fd7b1ef92550becc3953ab877a3f0285a59ec2d30b754?s=96&d=mm&r=g","author_category":"","last_name":"Czajkowski","first_name":"Laura","job_title":"","user_url":"","description":"Laura Czajkowski is the Snr. Developer Community Manager at Couchbase overseeing the community. She\u2019s responsible for our monthly developer newsletter."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/2525","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/users\/53"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/comments?post=2525"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/2525\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media\/2550"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media?parent=2525"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/categories?post=2525"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/tags?post=2525"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=2525"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}