src/admin/admin.controller.ts
admin
Methods |
|
| Public Async deleteUser | ||||||
deleteUser(query: FetchuserDto)
|
||||||
Decorators :
@Get('/user/delete')
|
||||||
|
Defined in src/admin/admin.controller.ts:63
|
||||||
|
Parameters :
Returns :
unknown
|
| Public Async fetchEmailForUser | ||||||
fetchEmailForUser(query: FetchuserDto)
|
||||||
Decorators :
@Get('/user/data')
|
||||||
|
Defined in src/admin/admin.controller.ts:30
|
||||||
|
Parameters :
Returns :
unknown
|
| Public Async setEmailForUser | ||||||
setEmailForUser(dto: SetEmailDto)
|
||||||
Decorators :
@Post('/user/set/email')
|
||||||
|
Defined in src/admin/admin.controller.ts:55
|
||||||
|
Parameters :
Returns :
unknown
|
| Public Async setPasswordForUser | ||||||
setPasswordForUser(dto: SetPassDto)
|
||||||
Decorators :
@Post('/user/set/password')
|
||||||
|
Defined in src/admin/admin.controller.ts:43
|
||||||
|
Parameters :
Returns :
unknown
|
import {
Controller,
Post,
Get,
Query,
ValidationPipe,
Body,
} from '@nestjs/common';
import { AdminService } from './admin.service';
import { FastifyRequest } from 'fastify';
import { Admin } from '../common/decorators/admin.decorator';
import { UsersService } from '../users/users.service';
import { Public } from '../common/decorators/public.decorator';
import { FetchuserDto } from './dto/fetchuser.dto';
import { SetPassDto } from './dto/setpass.dto';
import { UtilsService } from '../utils/utils.service';
import { SetEmailDto } from './dto/setemail.dto';
@Controller('admin')
export class AdminController {
constructor(
private readonly adminService: AdminService,
private readonly userService: UsersService,
private readonly utilService: UtilsService,
) {}
@Get('/user/data')
@Admin()
@Public()
public async fetchEmailForUser(
@Query(new ValidationPipe()) query: FetchuserDto,
) {
const { snowflake } = await this.userService.getUser(
query.user,
'username',
);
return await this.userService.getCoreUserData(snowflake);
}
@Post('/user/set/password')
@Public()
@Admin()
public async setPasswordForUser(@Body(new ValidationPipe()) dto: SetPassDto) {
const { snowflake } = await this.userService.getUser(dto.user, 'username');
await this.userService.setFieldData(
snowflake,
'password',
await this.utilService.hashPass(dto.password),
);
return `User password updated`;
}
@Post('/user/set/email')
@Public()
@Admin()
public async setEmailForUser(@Body(new ValidationPipe()) dto: SetEmailDto) {
const { snowflake } = await this.userService.getUser(dto.user, 'username');
await this.userService.changeUserEmail(snowflake, dto.email);
return 'User email updated';
}
@Get('/user/delete')
@Public()
@Admin()
public async deleteUser(@Query(new ValidationPipe()) query: FetchuserDto) {
const { snowflake } = await this.userService.getUser(
query.user,
'username',
);
return await this.userService.deleteUserAccount(snowflake);
}
}