-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
setup project, add typescript, authentication, models
- Loading branch information
0 parents
commit 8c15725
Showing
52 changed files
with
2,020 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
# Logs | ||
logs | ||
*.log | ||
npm-debug.log* | ||
yarn-debug.log* | ||
yarn-error.log* | ||
|
||
# Runtime data | ||
pids | ||
*.pid | ||
*.seed | ||
*.pid.lock | ||
|
||
# Compiled binary addons (https://nodejs.org/api/addons.html) | ||
build/Release | ||
|
||
# Build folder | ||
dist/* | ||
|
||
# Dependency directories | ||
node_modules/ | ||
jspm_packages/ | ||
|
||
# TypeScript v1 declaration files | ||
typings/ | ||
|
||
# Optional npm cache directory | ||
.npm | ||
|
||
# Optional eslint cache | ||
.eslintcache | ||
|
||
# Output of 'npm pack' | ||
*.tgz | ||
|
||
# Yarn Integrity file | ||
.yarn-integrity | ||
yarn.lock | ||
|
||
# dotenv environment variables file | ||
.env | ||
|
||
# Serverless directories | ||
.serverless | ||
|
||
# mongoDB data | ||
data/db/* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
{ | ||
"parser": "typescript", | ||
"printWidth": 120, | ||
"useTabs": false, | ||
"semi": true, | ||
"singleQuote": true, | ||
"trailingComma": "es5", | ||
"bracketSpacing": true | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
# phone_book_server | ||
|
||
A Node.js app using Express.JS, TypeScript, MongoDB. | ||
|
||
--- | ||
|
||
## Install | ||
|
||
Make sure you have [Node.js](http://nodejs.org/) and the MongoDB installed. | ||
|
||
|
||
### Configure app | ||
|
||
Create .env file from example.env and edit it with your data. | ||
|
||
Then create directory for mongoDB: | ||
|
||
```sh | ||
mkdir data | ||
cd data | ||
mkdir db | ||
``` | ||
|
||
## Start MongoDB | ||
|
||
For start mongoDB run command: | ||
|
||
```sh | ||
npm run mongoDB | ||
``` | ||
|
||
## Start Server | ||
|
||
Starting server in dev mode with nodemon: | ||
|
||
```sh | ||
npm start | ||
``` | ||
--- | ||
|
||
Start server in production: | ||
|
||
```sh | ||
npm run prod | ||
``` | ||
--- | ||
|
||
Start with pm2: | ||
|
||
```sh | ||
npm run pm2 | ||
``` | ||
--- | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
require('dotenv').config({ path: '.env' }); | ||
module.exports = { | ||
username: process.env.DB_USER, | ||
password: process.env.DB_PASS, | ||
database: process.env.DB_NAME, | ||
host: 'localhost', | ||
db_url: `mongodb://localhost:27017/${process.env.DB_NAME}`, | ||
dialect: process.env.DB_DIALECT, | ||
port: process.env.SERVER_PORT, | ||
secretKey: process.env.SECRET_KEY, | ||
options: { | ||
expiresIn: process.env.SECRET_KEY_EXP, | ||
}, | ||
api: { | ||
url1: '', | ||
url2: '', | ||
url3: '', // define endpoints | ||
}, | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
require('dotenv').config({ path: '.env' }); | ||
module.exports = { | ||
username: process.env.DB_USER, | ||
password: process.env.DB_PASS, | ||
database: process.env.DB_NAME, | ||
host: 'localhost', | ||
db_url: `mongodb://localhost:27017/${process.env.DB_NAME}`, | ||
dialect: process.env.DB_DIALECT, | ||
port: process.env.SERVER_PORT, | ||
secretKey: process.env.SECRET_KEY, | ||
options: { | ||
expiresIn: process.env.SECRET_KEY_EXP, | ||
}, | ||
api: { | ||
url1: '', | ||
url2: '', | ||
url3: '', // define endpoints | ||
}, | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
README.md | ||
deploy.sh |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
# Swagger UI Dist | ||
[](http://badge.fury.io/js/swagger-ui-dist) | ||
|
||
# API | ||
|
||
This module, `swagger-ui-dist`, exposes Swagger-UI's entire dist folder as a dependency-free npm module. | ||
Use `swagger-ui` instead, if you'd like to have npm install dependencies for you. | ||
|
||
`SwaggerUIBundle` and `SwaggerUIStandalonePreset` can be imported: | ||
```javascript | ||
import { SwaggerUIBundle, SwaggerUIStandalonePreset } from "swagger-ui-dist" | ||
``` | ||
|
||
To get an absolute path to this directory for static file serving, use the exported `getAbsoluteFSPath` method: | ||
|
||
```javascript | ||
const swaggerUiAssetPath = require("swagger-ui-dist").getAbsoluteFSPath() | ||
|
||
// then instantiate server that serves files from the swaggerUiAssetPath | ||
``` | ||
|
||
For anything else, check the [Swagger-UI](https://github.com/swagger-api/swagger-ui) repository. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
/* | ||
* getAbsoluteFSPath | ||
* @return {string} When run in NodeJS env, returns the absolute path to the current directory | ||
* When run outside of NodeJS, will return an error message | ||
*/ | ||
const getAbsoluteFSPath = function () { | ||
// detect whether we are running in a browser or nodejs | ||
if (typeof module !== "undefined" && module.exports) { | ||
return require("path").resolve(__dirname) | ||
} | ||
throw new Error('getAbsoluteFSPath can only be called within a Nodejs environment'); | ||
} | ||
|
||
module.exports = getAbsoluteFSPath |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
<!-- HTML for static distribution bundle build --> | ||
<!DOCTYPE html> | ||
<html lang="en"> | ||
<head> | ||
<meta charset="UTF-8"> | ||
<title>Swagger UI</title> | ||
<link href="https://fonts.googleapis.com/css?family=Open+Sans:400,700|Source+Code+Pro:300,600|Titillium+Web:400,600,700" rel="stylesheet"> | ||
<link rel="stylesheet" type="text/css" href="./swagger-ui.css" > | ||
<link rel="icon" type="image/png" href="./favicon-32x32.png" sizes="32x32" /> | ||
<link rel="icon" type="image/png" href="./favicon-16x16.png" sizes="16x16" /> | ||
<style> | ||
html | ||
{ | ||
box-sizing: border-box; | ||
overflow: -moz-scrollbars-vertical; | ||
overflow-y: scroll; | ||
} | ||
*, | ||
*:before, | ||
*:after | ||
{ | ||
box-sizing: inherit; | ||
} | ||
|
||
body { | ||
margin:0; | ||
background: #fafafa; | ||
} | ||
</style> | ||
</head> | ||
|
||
<body> | ||
|
||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="position:absolute;width:0;height:0"> | ||
<defs> | ||
<symbol viewBox="0 0 20 20" id="unlocked"> | ||
<path d="M15.8 8H14V5.6C14 2.703 12.665 1 10 1 7.334 1 6 2.703 6 5.6V6h2v-.801C8 3.754 8.797 3 10 3c1.203 0 2 .754 2 2.199V8H4c-.553 0-1 .646-1 1.199V17c0 .549.428 1.139.951 1.307l1.197.387C5.672 18.861 6.55 19 7.1 19h5.8c.549 0 1.428-.139 1.951-.307l1.196-.387c.524-.167.953-.757.953-1.306V9.199C17 8.646 16.352 8 15.8 8z"></path> | ||
</symbol> | ||
|
||
<symbol viewBox="0 0 20 20" id="locked"> | ||
<path d="M15.8 8H14V5.6C14 2.703 12.665 1 10 1 7.334 1 6 2.703 6 5.6V8H4c-.553 0-1 .646-1 1.199V17c0 .549.428 1.139.951 1.307l1.197.387C5.672 18.861 6.55 19 7.1 19h5.8c.549 0 1.428-.139 1.951-.307l1.196-.387c.524-.167.953-.757.953-1.306V9.199C17 8.646 16.352 8 15.8 8zM12 8H8V5.199C8 3.754 8.797 3 10 3c1.203 0 2 .754 2 2.199V8z"/> | ||
</symbol> | ||
|
||
<symbol viewBox="0 0 20 20" id="close"> | ||
<path d="M14.348 14.849c-.469.469-1.229.469-1.697 0L10 11.819l-2.651 3.029c-.469.469-1.229.469-1.697 0-.469-.469-.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-.469-.469-.469-1.228 0-1.697.469-.469 1.228-.469 1.697 0L10 8.183l2.651-3.031c.469-.469 1.228-.469 1.697 0 .469.469.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c.469.469.469 1.229 0 1.698z"/> | ||
</symbol> | ||
|
||
<symbol viewBox="0 0 20 20" id="large-arrow"> | ||
<path d="M13.25 10L6.109 2.58c-.268-.27-.268-.707 0-.979.268-.27.701-.27.969 0l7.83 7.908c.268.271.268.709 0 .979l-7.83 7.908c-.268.271-.701.27-.969 0-.268-.269-.268-.707 0-.979L13.25 10z"/> | ||
</symbol> | ||
|
||
<symbol viewBox="0 0 20 20" id="large-arrow-down"> | ||
<path d="M17.418 6.109c.272-.268.709-.268.979 0s.271.701 0 .969l-7.908 7.83c-.27.268-.707.268-.979 0l-7.908-7.83c-.27-.268-.27-.701 0-.969.271-.268.709-.268.979 0L10 13.25l7.418-7.141z"/> | ||
</symbol> | ||
|
||
|
||
<symbol viewBox="0 0 24 24" id="jump-to"> | ||
<path d="M19 7v4H5.83l3.58-3.59L8 6l-6 6 6 6 1.41-1.41L5.83 13H21V7z"/> | ||
</symbol> | ||
|
||
<symbol viewBox="0 0 24 24" id="expand"> | ||
<path d="M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"/> | ||
</symbol> | ||
|
||
</defs> | ||
</svg> | ||
|
||
<div id="swagger-ui"></div> | ||
|
||
<script src="./swagger-ui-bundle.js"> </script> | ||
<script src="./swagger-ui-standalone-preset.js"> </script> | ||
<script> | ||
window.onload = function() { | ||
|
||
// Build a system | ||
const ui = SwaggerUIBundle({ | ||
url: "swagger.json", | ||
dom_id: '#swagger-ui', | ||
deepLinking: true, | ||
presets: [ | ||
SwaggerUIBundle.presets.apis, | ||
SwaggerUIStandalonePreset | ||
], | ||
plugins: [ | ||
SwaggerUIBundle.plugins.DownloadUrl | ||
], | ||
layout: "StandaloneLayout" | ||
}) | ||
|
||
window.ui = ui | ||
} | ||
</script> | ||
</body> | ||
|
||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
try { | ||
module.exports.SwaggerUIBundle = require("./swagger-ui-bundle.js") | ||
module.exports.SwaggerUIStandalonePreset = require("./swagger-ui-standalone-preset.js") | ||
} catch(e) { | ||
// swallow the error if there's a problem loading the assets. | ||
// allows this module to support providing the assets for browserish contexts, | ||
// without exploding in a Node context. | ||
// | ||
// see https://github.com/swagger-api/swagger-ui/issues/3291#issuecomment-311195388 | ||
// for more information. | ||
} | ||
|
||
// `absolutePath` and `getAbsoluteFSPath` are both here because at one point, | ||
// we documented having one and actually implemented the other. | ||
// They were both retained so we don't break anyone's code. | ||
module.exports.absolutePath = require("./absolute-path.js") | ||
module.exports.getAbsoluteFSPath = require("./absolute-path.js") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
<!doctype html> | ||
<html lang="en-US"> | ||
<body onload="run()"> | ||
</body> | ||
</html> | ||
<script> | ||
'use strict'; | ||
function run () { | ||
var oauth2 = window.opener.swaggerUIRedirectOauth2; | ||
var sentState = oauth2.state; | ||
var redirectUrl = oauth2.redirectUrl; | ||
var isValid, qp, arr; | ||
|
||
if (/code|token|error/.test(window.location.hash)) { | ||
qp = window.location.hash.substring(1); | ||
} else { | ||
qp = location.search.substring(1); | ||
} | ||
|
||
arr = qp.split("&") | ||
arr.forEach(function (v,i,_arr) { _arr[i] = '"' + v.replace('=', '":"') + '"';}) | ||
qp = qp ? JSON.parse('{' + arr.join() + '}', | ||
function (key, value) { | ||
return key === "" ? value : decodeURIComponent(value) | ||
} | ||
) : {} | ||
|
||
isValid = qp.state === sentState | ||
|
||
if (( | ||
oauth2.auth.schema.get("flow") === "accessCode"|| | ||
oauth2.auth.schema.get("flow") === "authorizationCode" | ||
) && !oauth2.auth.code) { | ||
if (!isValid) { | ||
oauth2.errCb({ | ||
authId: oauth2.auth.name, | ||
source: "auth", | ||
level: "warning", | ||
message: "Authorization may be unsafe, passed state was changed in server Passed state wasn't returned from auth server" | ||
}); | ||
} | ||
|
||
if (qp.code) { | ||
delete oauth2.state; | ||
oauth2.auth.code = qp.code; | ||
oauth2.callback({auth: oauth2.auth, redirectUrl: redirectUrl}); | ||
} else { | ||
let oauthErrorMsg | ||
if (qp.error) { | ||
oauthErrorMsg = "["+qp.error+"]: " + | ||
(qp.error_description ? qp.error_description+ ". " : "no accessCode received from the server. ") + | ||
(qp.error_uri ? "More info: "+qp.error_uri : ""); | ||
} | ||
|
||
oauth2.errCb({ | ||
authId: oauth2.auth.name, | ||
source: "auth", | ||
level: "error", | ||
message: oauthErrorMsg || "[Authorization failed]: no accessCode received from the server" | ||
}); | ||
} | ||
} else { | ||
oauth2.callback({auth: oauth2.auth, token: qp, isValid: isValid, redirectUrl: redirectUrl}); | ||
} | ||
window.close(); | ||
} | ||
</script> |
Oops, something went wrong.