Skip to content
This repository has been archived by the owner on Dec 30, 2022. It is now read-only.

Commit

Permalink
Feat/collabration (#12)
Browse files Browse the repository at this point in the history
* feat: coordination

* refactor: modules

* update code

* feat: add auth guard when login

* fix: user be overwrite

* fix: migration

* fix: hide some api property

* feat: update person password

* feata: export project

* chore: update migration file

* chore: docs

* update code

* chore: update docker config

* refactor: remove api-key validator

* feat: add username validator

* chore: move file

* fix: some dto validator

* feat: add first user to default project

* fix: import type

* update code

* fix: some entity

* fix: some dto

* chore: open api exception log

* chore: release v1.8.0

Co-authored-by: buqiyuan <[email protected]>
  • Loading branch information
scarqin and buqiyuan authored Oct 2, 2022
1 parent b47c715 commit 38a69b2
Show file tree
Hide file tree
Showing 121 changed files with 3,844 additions and 1,791 deletions.
14 changes: 10 additions & 4 deletions .env
Original file line number Diff line number Diff line change
@@ -1,14 +1,20 @@
# auth token
API_KEY=1ab2c3d4e5f61ab2c3d4e5f6

# eoapi-server coinfigure
EOAPI_SERVER_PORT=3000
EOAPI_SERVER_PATH=/api

# mysql configure
TZ=Asia/Shanghai
MYSQL_HOST=localhost
MYSQL_HOST=host.docker.internal
MYSQL_PORT=33066
MYSQL_USERNAME=root
MYSQL_DATABASE=eoapi
MYSQL_PASSWORD=123456a.
MYSQL_ROOT_PASSWORD=123456a.

# swagger
SWAGGER_PATH=swagger-docs
SWAGGER_ENABLE=true
SWAGGER_VERSION=1.0
SWAGGER_TITLE=Eoapi-remote-server API文档
SWAGGER_DESC=Eoapi remote server API document。

1 change: 1 addition & 0 deletions .env.development
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
MYSQL_HOST=localhost
37 changes: 35 additions & 2 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,15 @@ module.exports = {
parser: '@typescript-eslint/parser',
parserOptions: {
project: 'tsconfig.json',
tsconfigRootDir : __dirname,
tsconfigRootDir: __dirname,
sourceType: 'module',
},
plugins: ['@typescript-eslint/eslint-plugin'],
plugins: ['@typescript-eslint/eslint-plugin', 'prettier', 'import'],
extends: [
'eslint:recommended',
'plugin:@typescript-eslint/recommended',
'plugin:prettier/recommended',
'prettier',
],
root: true,
env: {
Expand All @@ -21,5 +23,36 @@ module.exports = {
'@typescript-eslint/explicit-function-return-type': 'off',
'@typescript-eslint/explicit-module-boundary-types': 'off',
'@typescript-eslint/no-explicit-any': 'off',

// prettier
'prettier/prettier': 'error',

// import
'import/first': 'error',
'import/no-duplicates': 'error',
'import/order': [
'error',
{
groups: [
'builtin',
'external',
'internal',
'parent',
'sibling',
'index',
'object',
'type',
],

pathGroups: [
{
pattern: '@nestjs/**',
group: 'external',
position: 'before',
},
],
pathGroupsExcludedImportTypes: ['type'],
},
],
},
};
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,7 @@ lerna-debug.log*
!.vscode/extensions.json

# sample
/sample
/sample

# env
.env.prodction
88 changes: 87 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,89 @@
{
"files.eol": "\n"
"typescript.tsdk": "./node_modules/typescript/lib",
"typescript.preferences.importModuleSpecifier": "non-relative",
"npm.packageManager": "yarn",
"editor.tabSize": 2,
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"files.eol": "\n",
"eslint.probe": [
"javascript",
"typescript",
"markdown",
"json",
"jsonc"
],
"eslint.validate": [
"javascript",
"typescript",
"markdown",
"json",
"jsonc"
],
"search.exclude": {
"**/node_modules": true,
"**/*.log": true,
"**/*.log*": true,
"**/bower_components": true,
"**/dist": true,
"**/elehukouben": true,
"**/.git": true,
"**/.gitignore": true,
"**/.svn": true,
"**/.DS_Store": true,
"**/.idea": true,
"**/.vscode": false,
"**/yarn.lock": true,
"**/tmp": true,
"out": true,
"dist": true,
"node_modules": true,
"CHANGELOG.md": true,
"examples": true,
"res": true,
"screenshots": true,
"yarn-error.log": true,
"**/.yarn": true
},
"files.exclude": {
"**/.cache": true,
"**/.editorconfig": true,
"**/.eslintcache": true,
"**/bower_components": true,
"**/.idea": true,
"**/tmp": true,
"**/.git": true,
"**/.svn": true,
"**/.hg": true,
"**/CVS": true,
"**/.DS_Store": true
},
"files.watcherExclude": {
"**/.git/objects/**": true,
"**/.git/subtree-cache/**": true,
"**/.vscode/**": true,
"**/node_modules/**": true,
"**/tmp/**": true,
"**/bower_components/**": true,
"**/dist/**": true,
"**/yarn.lock": true
},
"path-intellisense.mappings": {
"@/": "${workspaceRoot}/src"
},
"[javascriptreact]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
}
},
"[markdown]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[jsonc]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
}
2 changes: 0 additions & 2 deletions docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,6 @@ services:
restart: always
env_file:
- .env
environment:
- MYSQL_HOST=host.docker.internal
extra_hosts:
- 'host.docker.internal:host-gateway'
ports:
Expand Down
5 changes: 4 additions & 1 deletion nest-cli.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
{
"$schema": "https://json.schemastore.org/nest-cli",
"collection": "@nestjs/schematics",
"sourceRoot": "src"
"sourceRoot": "src",
"compilerOptions": {
"plugins": ["@nestjs/swagger"]
}
}
91 changes: 54 additions & 37 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "eoapi-remote-server",
"version": "1.1.0",
"version": "1.8.0",
"description": "Storage api data in remote server",
"author": "eoapi",
"private": true,
Expand All @@ -13,60 +13,77 @@
"start:dev": "rimraf dist && cross-env NODE_ENV=development nest start --watch",
"start:debug": "nest start --debug --watch",
"start:prod": "cross-env NODE_ENV=production node dist/main.js",
"migration:create": "npm run typeorm migration:create -- -n createTable",
"migration:generate": "npm run typeorm migration:generate -- -n upgradeTable",
"migration:run": "npm run build&&npm run typeorm migration:run",
"migration:create": "npx typeorm-ts-node-commonjs migration:create ./src/migrations/create-table",
"migration:generate": "npx typeorm-ts-node-commonjs migration:generate ./src/migrations/update-table -d ./src/config/data-source.ts",
"migration:run": "npm run build&&npx typeorm-ts-node-commonjs migration:run -d ./src/config/data-source.ts",
"migration:revert": "npm run typeorm migration:revert",
"lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
"typeorm": "node -r tsconfig-paths/register -r ts-node/register ./node_modules/typeorm/cli.js --config src/config/ormconfig.ts",
"typeorm": "npx typeorm-ts-node-commonjs",
"test": "jest",
"test:watch": "jest --watch",
"test:cov": "jest --coverage",
"test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
"test:e2e": "jest --config ./test/jest-e2e.json"
"test:e2e": "jest --config ./test/jest-e2e.json",
"docker:rmi": "docker compose stop eoapi-remote-server && docker container rm eoapi-remote-server && docker rmi eoapi-remote-server",
"docker:dev": "docker compose up --build -d",
"docker:prod": "docker compose --env-file .env.production up --build -d",
"docker:down": "docker compose down",
"docker:logs": "docker compose logs -f"
},
"dependencies": {
"@nestjs/common": "^8.0.0",
"@nestjs/config": "^2.0.0",
"@nestjs/core": "^8.0.0",
"@nestjs/axios": "^0.1.0",
"@nestjs/common": "^9.1.2",
"@nestjs/config": "^2.2.0",
"@nestjs/core": "^9.1.2",
"@nestjs/jwt": "^9.0.0",
"@nestjs/mapped-types": "*",
"@nestjs/passport": "^8.2.1",
"@nestjs/platform-express": "^8.0.0",
"@nestjs/typeorm": "^8.0.3",
"@nestjs/passport": "^9.0.0",
"@nestjs/platform-express": "^9.1.2",
"@nestjs/swagger": "^6.1.2",
"@nestjs/typeorm": "^9.0.1",
"ajv": "^8.11.0",
"class-transformer": "^0.5.1",
"class-validator": "^0.13.2",
"cross-env": "^7.0.3",
"crypto-js": "^4.1.1",
"mysql2": "^2.3.3",
"passport": "^0.5.3",
"nanoid": "^3.3.4",
"passport": "^0.6.0",
"passport-headerapikey": "^1.2.2",
"passport-jwt": "^4.0.0",
"passport-local": "^1.0.0",
"reflect-metadata": "^0.1.13",
"rimraf": "^3.0.2",
"rxjs": "^7.2.0",
"typeorm": "^0.2.45"
"rxjs": "^7.5.7",
"typeorm": "^0.3.10"
},
"devDependencies": {
"@nestjs/cli": "^8.0.0",
"@nestjs/schematics": "^8.0.0",
"@nestjs/testing": "^8.0.0",
"@types/express": "^4.17.13",
"@types/jest": "27.5.0",
"@types/node": "^16.0.0",
"@types/passport": "^1.0.7",
"@nestjs/cli": "^9.1.3",
"@nestjs/schematics": "^9.0.3",
"@nestjs/testing": "^9.1.2",
"@types/crypto-js": "^4.1.1",
"@types/express": "^4.17.14",
"@types/jest": "29.0.3",
"@types/node": "^18.7.23",
"@types/passport": "^1.0.11",
"@types/passport-http": "^0.3.9",
"@types/supertest": "^2.0.11",
"@typescript-eslint/eslint-plugin": "^5.0.0",
"@typescript-eslint/parser": "^5.0.0",
"eslint": "^8.0.1",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-prettier": "^4.0.0",
"jest": "28.0.3",
"prettier": "^2.3.2",
"source-map-support": "^0.5.20",
"supertest": "^6.1.3",
"ts-jest": "28.0.1",
"ts-loader": "^9.2.3",
"ts-node": "^10.0.0",
"tsconfig-paths": "4.0.0",
"typescript": "^4.3.5"
"@types/supertest": "^2.0.12",
"@typescript-eslint/eslint-plugin": "^5.38.1",
"@typescript-eslint/parser": "^5.38.1",
"dotenv": "^16.0.2",
"eslint": "^8.24.0",
"eslint-config-prettier": "^8.5.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-prettier": "^4.2.1",
"jest": "29.0.3",
"prettier": "^2.7.1",
"source-map-support": "^0.5.21",
"supertest": "^6.2.4",
"ts-jest": "29.0.2",
"ts-loader": "^9.4.1",
"ts-node": "^10.9.1",
"tsconfig-paths": "4.1.0",
"typescript": "^4.8.3"
},
"jest": {
"moduleFileExtensions": [
Expand Down
12 changes: 5 additions & 7 deletions src/app.controller.ts
Original file line number Diff line number Diff line change
@@ -1,22 +1,20 @@
import { Controller, Get, UseGuards } from '@nestjs/common';
import { AuthGuard } from '@nestjs/passport';
import { Controller, Get } from '@nestjs/common';
import { AppService } from './app.service';
import { Public } from '@/common/decorators/public.decorator';

@Controller()
export class AppController {
constructor(private readonly appService: AppService) {}

@Public()
@Get()
getHello(): string {
return this.appService.getHello();
}

@Get('system/status')
@UseGuards(AuthGuard('api-key'))
@Public()
status() {
return {
statusCode: 200,
data: 'success',
};
return 'success';
}
}
Loading

0 comments on commit 38a69b2

Please sign in to comment.