Skip to content

Commit

Permalink
refreshed
Browse files Browse the repository at this point in the history
  • Loading branch information
notahelpr committed Sep 11, 2022
0 parents commit 4dc9647
Show file tree
Hide file tree
Showing 27 changed files with 17,567 additions and 0 deletions.
7 changes: 7 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Mailing
SERVICE=
EMAIL=
PASS=

# Database
MONGODB_TOKEN=
37 changes: 37 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
{
"env": {
"browser": true,
"es2021": true
},
"extends": ["standard"],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": "latest",
"sourceType": "module"
},
"plugins": ["@typescript-eslint"],
"ignorePatterns": ["dist/*"],
"rules": {
"semi": [2, "always"],
"avoidEscape": true,
"allowTemplateLiterals": true,
"no-trailing-spaces": "warn",
"no-var": "error",
"newline-per-chained-call": "warn",
"newline-after-var": ["error", "always"],
"object-curly-spacing": ["error", "always"],
"indent": [
"error",
2,
{
"ImportDeclaration": "first"
}
],
"no-multiple-empty-lines": [
"error",
{
"max": 1
}
]
}
}
158 changes: 158 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
# Created by https://www.toptal.com/developers/gitignore/api/node,vscode,macos
# Edit at https://www.toptal.com/developers/gitignore?templates=node,vscode,macos

### macOS ###
# General
.DS_Store
.AppleDouble
.LSOverride

# Icon must end with two \r
Icon


# Thumbnails
._*

# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent

# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk

### Node ###
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*

# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage
*.lcov

# nyc test coverage
.nyc_output

# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# Bower dependency directory (https://bower.io/)
bower_components

# node-waf configuration
.lock-wscript

# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules/
jspm_packages/

# TypeScript v1 declaration files
typings/

# TypeScript cache
*.tsbuildinfo

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Optional stylelint cache
.stylelintcache

# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variables file
.env
.env.test
.env*.local

# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache

# Next.js build output
.next

# Nuxt.js build / generate output
.nuxt
dist

# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public

# vuepress build output
.vuepress/dist

# Serverless directories
.serverless/

# FuseBox cache
.fusebox/

# DynamoDB Local files
.dynamodb/

# TernJS port file
.tern-port

# Stores VSCode versions used for testing VSCode extensions
.vscode-test

### vscode ###
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
*.code-workspace

# End of https://www.toptal.com/developers/gitignore/api/node,vscode,macos

.expo
data.ts
4 changes: 4 additions & 0 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

npx lint-staged
22 changes: 22 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Viltima :: APi

<p align="center">
<img src="https://media.discordapp.net/attachments/893792219390156850/1012041271918997545/unknown.png" alt="xadara" width="300" height="200"/></a>
<p>

<p align="center">Communicate, everywhere.</p>

---

<p align="center">This is the Backend APi for Viltima.</p>

---

What we used:
- [MongoDB](https://mongodb.com)
- [NodeJS](https//nodejs.org)

## Docs, Community

- [Docs](https://viltima-docs.vercel.app)
- [Community [soon]]()
61 changes: 61 additions & 0 deletions app/app.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
import express, { NextFunction, Request, Response } from "express";
import SwaggerParser from "@apidevtools/swagger-parser";
import * as OpenApiValidator from "express-openapi-validator";
import { connector } from "swagger-routes-express";
import { StatusCodes } from "http-status-codes";
import { login } from "./controllers/login";
import { signup } from "./controllers/signup";
import { getVerificationCode } from "./controllers/getVerificationCode";
import { verify } from "./controllers/verify";
import { changePassword } from "./controllers/changePassword";

import swaggerUI from "swagger-ui-express";
import cors from "cors";
import morgan from "morgan";

import RatelimitThrottler from "./utils/ratelimit";

const routes = {
login,
signup,
verify,
getVerificationCode,
changePassword,
};

const makeApp = async () => {
const apiDescription = await SwaggerParser.validate(
"app/swagger/swagger.yml"
);
const connect = connector(routes, apiDescription, {
middleware: {
rateLimit: RatelimitThrottler
}
});
const app = express();

app.use(express.json());
app.use(morgan("tiny"));
app.use(cors());
app.use(
OpenApiValidator.middleware({
apiSpec: "app/swagger/swagger.yml",
})
);

app.use((err: any, _req: Request, res: Response, _next: NextFunction) => {
res.status(err.status || StatusCodes.INTERNAL_SERVER_ERROR).json({
message: err.message,
errors: err.errors,
});
});

// swagger ui
app.use("/api-docs", swaggerUI.serve, swaggerUI.setup(apiDescription));

connect(app);

return app;
};

export { makeApp };
Loading

0 comments on commit 4dc9647

Please sign in to comment.