add info endpoint
This commit is contained in:
parent
903b20b32f
commit
0ad444f43b
|
@ -7,10 +7,7 @@ import { TypeOrmConfigService } from './config/typeorm.config.service';
|
|||
import { PicsurLoggerModule } from './logger/logger.module';
|
||||
import { AuthManagerModule } from './managers/auth/auth.module';
|
||||
import { DemoManagerModule } from './managers/demo/demomanager.module';
|
||||
import { AuthModule } from './routes/api/auth/auth.module';
|
||||
import { ExperimentModule } from './routes/api/experiment/experiment.module';
|
||||
import { PrefModule } from './routes/api/pref/pref.module';
|
||||
import { ImageModule } from './routes/image/imageroute.module';
|
||||
import { PicsurRoutesModule } from './routes/routes.module';
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
|
@ -22,14 +19,10 @@ import { ImageModule } from './routes/image/imageroute.module';
|
|||
useExisting: ServeStaticConfigService,
|
||||
imports: [PicsurConfigModule],
|
||||
}),
|
||||
|
||||
AuthManagerModule,
|
||||
AuthModule,
|
||||
ImageModule,
|
||||
DemoManagerModule,
|
||||
PrefModule,
|
||||
PicsurLoggerModule,
|
||||
ExperimentModule,
|
||||
AuthManagerModule,
|
||||
DemoManagerModule,
|
||||
PicsurRoutesModule,
|
||||
],
|
||||
})
|
||||
export class AppModule {}
|
||||
|
|
15
backend/src/routes/api/api.module.ts
Normal file
15
backend/src/routes/api/api.module.ts
Normal file
|
@ -0,0 +1,15 @@
|
|||
import { Module } from '@nestjs/common';
|
||||
import { AuthModule } from './auth/auth.module';
|
||||
import { ExperimentModule } from './experiment/experiment.module';
|
||||
import { PrefModule } from './pref/pref.module';
|
||||
import { InfoModule } from './info/info.module';
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
AuthModule,
|
||||
PrefModule,
|
||||
ExperimentModule,
|
||||
InfoModule,
|
||||
]
|
||||
})
|
||||
export class PicsurApiModule {}
|
19
backend/src/routes/api/info/info.controller.ts
Normal file
19
backend/src/routes/api/info/info.controller.ts
Normal file
|
@ -0,0 +1,19 @@
|
|||
import { Controller, Get } from '@nestjs/common';
|
||||
import { InfoResponse } from 'picsur-shared/dist/dto/api/info.dto';
|
||||
import { HostConfigService } from '../../../config/host.config.service';
|
||||
import { NoAuth } from '../../../decorators/permissions.decorator';
|
||||
|
||||
@Controller('api/info')
|
||||
export class InfoController {
|
||||
constructor(private hostConfig: HostConfigService) {}
|
||||
|
||||
@Get()
|
||||
@NoAuth()
|
||||
getInfo() {
|
||||
const response: InfoResponse = {
|
||||
demo: this.hostConfig.isDemo(),
|
||||
production: this.hostConfig.isProduction(),
|
||||
};
|
||||
return response;
|
||||
}
|
||||
}
|
9
backend/src/routes/api/info/info.module.ts
Normal file
9
backend/src/routes/api/info/info.module.ts
Normal file
|
@ -0,0 +1,9 @@
|
|||
import { Module } from '@nestjs/common';
|
||||
import { PicsurConfigModule } from '../../../config/config.module';
|
||||
import { InfoController } from './info.controller';
|
||||
|
||||
@Module({
|
||||
imports: [PicsurConfigModule],
|
||||
controllers: [InfoController],
|
||||
})
|
||||
export class InfoModule {}
|
8
backend/src/routes/routes.module.ts
Normal file
8
backend/src/routes/routes.module.ts
Normal file
|
@ -0,0 +1,8 @@
|
|||
import { Module } from '@nestjs/common';
|
||||
import { PicsurApiModule } from './api/api.module';
|
||||
import { ImageModule } from './image/imageroute.module';
|
||||
|
||||
@Module({
|
||||
imports: [PicsurApiModule, ImageModule],
|
||||
})
|
||||
export class PicsurRoutesModule {}
|
|
@ -1,12 +1,15 @@
|
|||
import { Type } from 'class-transformer';
|
||||
import {
|
||||
IsArray, IsBoolean,
|
||||
IsDefined, IsEnum, IsInt, IsNotEmpty,
|
||||
IsArray,
|
||||
IsBoolean,
|
||||
IsDefined,
|
||||
IsEnum, IsNotEmpty,
|
||||
IsOptional,
|
||||
IsString, ValidateNested
|
||||
IsString,
|
||||
ValidateNested
|
||||
} from 'class-validator';
|
||||
import { EUser } from '../entities/user.entity';
|
||||
import { Permissions, PermissionsList } from './permissions';
|
||||
import { EUser } from '../../entities/user.entity';
|
||||
import { Permissions, PermissionsList } from '../permissions';
|
||||
|
||||
// Api
|
||||
|
||||
|
@ -63,20 +66,3 @@ export class AuthMeResponse {
|
|||
@IsDefined()
|
||||
newJwtToken: string;
|
||||
}
|
||||
|
||||
// Extra
|
||||
|
||||
export class JwtDataDto {
|
||||
@IsDefined()
|
||||
@ValidateNested()
|
||||
@Type(() => EUser)
|
||||
user: EUser;
|
||||
|
||||
@IsOptional()
|
||||
@IsInt()
|
||||
iat?: number;
|
||||
|
||||
@IsOptional()
|
||||
@IsInt()
|
||||
exp?: number;
|
||||
}
|
1
shared/src/dto/api/index.ts
Normal file
1
shared/src/dto/api/index.ts
Normal file
|
@ -0,0 +1 @@
|
|||
export * from './api.dto';
|
9
shared/src/dto/api/info.dto.ts
Normal file
9
shared/src/dto/api/info.dto.ts
Normal file
|
@ -0,0 +1,9 @@
|
|||
import { IsDefined } from 'class-validator';
|
||||
|
||||
export class InfoResponse {
|
||||
@IsDefined()
|
||||
production: boolean;
|
||||
|
||||
@IsDefined()
|
||||
demo: boolean;
|
||||
}
|
18
shared/src/dto/jwt.dto.ts
Normal file
18
shared/src/dto/jwt.dto.ts
Normal file
|
@ -0,0 +1,18 @@
|
|||
import { Type } from 'class-transformer';
|
||||
import { IsDefined, IsInt, IsOptional, ValidateNested } from 'class-validator';
|
||||
import { EUser } from '../entities/user.entity';
|
||||
|
||||
export class JwtDataDto {
|
||||
@IsDefined()
|
||||
@ValidateNested()
|
||||
@Type(() => EUser)
|
||||
user: EUser;
|
||||
|
||||
@IsOptional()
|
||||
@IsInt()
|
||||
iat?: number;
|
||||
|
||||
@IsOptional()
|
||||
@IsInt()
|
||||
exp?: number;
|
||||
}
|
Loading…
Reference in a new issue