remove the user code
This commit is contained in:
		| @@ -1,39 +0,0 @@ | ||||
| import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose'; | ||||
| import { Document } from 'mongoose'; | ||||
|  | ||||
| export type UserDocument = User & Document; | ||||
|  | ||||
| @Schema() | ||||
| export class User { | ||||
|   @Prop({ | ||||
|     required: true, | ||||
|     index: true, | ||||
|     type: Number, | ||||
|   }) | ||||
|   vatsimId: number; | ||||
|  | ||||
|   @Prop({ | ||||
|     required: true, | ||||
|     type: String, | ||||
|   }) | ||||
|   apiCode: string; | ||||
|  | ||||
|   @Prop({ | ||||
|     type: Boolean, | ||||
|     default: false, | ||||
|   }) | ||||
|   systemAdminAccess: boolean; | ||||
|  | ||||
|   @Prop({ | ||||
|     type: [String], | ||||
|     default: [], | ||||
|   }) | ||||
|   airportAdminAccess: string[]; | ||||
|  | ||||
|   @Prop({ | ||||
|     type: String, | ||||
|   }) | ||||
|   fullName: string; | ||||
| } | ||||
|  | ||||
| export const UserSchema = SchemaFactory.createForClass(User); | ||||
| @@ -1,11 +0,0 @@ | ||||
| import { Module } from '@nestjs/common'; | ||||
| import { MongooseModule } from '@nestjs/mongoose'; | ||||
| import { UserSchema } from './models/user.model'; | ||||
| import { UserService } from './user.service'; | ||||
|  | ||||
| @Module({ | ||||
|   imports: [MongooseModule.forFeature([{ name: 'user', schema: UserSchema }])], | ||||
|   providers: [UserService], | ||||
|   exports: [MongooseModule, UserService], | ||||
| }) | ||||
| export class UserModule {} | ||||
| @@ -1,18 +0,0 @@ | ||||
| import { Test, TestingModule } from '@nestjs/testing'; | ||||
| import { UserService } from './user.service'; | ||||
|  | ||||
| describe('UserService', () => { | ||||
|   let service: UserService; | ||||
|  | ||||
|   beforeEach(async () => { | ||||
|     const module: TestingModule = await Test.createTestingModule({ | ||||
|       providers: [UserService], | ||||
|     }).compile(); | ||||
|  | ||||
|     service = module.get<UserService>(UserService); | ||||
|   }); | ||||
|  | ||||
|   it('should be defined', () => { | ||||
|     expect(service).toBeDefined(); | ||||
|   }); | ||||
| }); | ||||
| @@ -1,50 +0,0 @@ | ||||
| import { Injectable } from '@nestjs/common'; | ||||
| import { InjectModel } from '@nestjs/mongoose'; | ||||
| import { randomBytes } from 'crypto'; | ||||
| import { Model } from 'mongoose'; | ||||
| import { UserDocument, User } from './models/user.model'; | ||||
|  | ||||
| const ApiKeyLength = 64; | ||||
|  | ||||
| @Injectable() | ||||
| export class UserService { | ||||
|   constructor( | ||||
|     @InjectModel('user') | ||||
|     private readonly userModel: Model<UserDocument>, | ||||
|   ) {} | ||||
|  | ||||
|   private static createApiKey(): string { | ||||
|     return randomBytes(ApiKeyLength).toString('hex'); | ||||
|   } | ||||
|  | ||||
|   async register(vatsimId: number, fullName: string): Promise<User> { | ||||
|     return this.user(vatsimId).then((user) => { | ||||
|       if (user) return user; | ||||
|  | ||||
|       return this.userModel | ||||
|         .create({ | ||||
|           vatsimId, | ||||
|           apiCode: UserService.createApiKey(), | ||||
|           systemAdminAccess: false, | ||||
|           airportAdminAccess: [], | ||||
|           fullName, | ||||
|         }) | ||||
|         .then(() => this.user(vatsimId)); | ||||
|     }); | ||||
|   } | ||||
|  | ||||
|   async user(vatsimId: number): Promise<User | undefined> { | ||||
|     return this.userModel.findOne({ vatsimId }); | ||||
|   } | ||||
|  | ||||
|   async refreshApiKey(vatsimId: number): Promise<User | undefined> { | ||||
|     return this.userModel | ||||
|       .findOneAndUpdate({ vatsimId }, { apiCode: UserService.createApiKey() }) | ||||
|       .then(() => | ||||
|         this.user(vatsimId).then((user) => { | ||||
|           if (!user) return undefined; | ||||
|           return user; | ||||
|         }), | ||||
|       ); | ||||
|   } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user