File

src/admin/admin.controller.ts

Prefix

admin

Index

Methods

Methods

Public Async deleteUser
deleteUser(query: FetchuserDto)
Decorators :
@Get('/user/delete')
@Public()
@Admin()
Parameters :
Name Type Optional
query FetchuserDto No
Returns : unknown
Public Async fetchEmailForUser
fetchEmailForUser(query: FetchuserDto)
Decorators :
@Get('/user/data')
@Admin()
@Public()
Parameters :
Name Type Optional
query FetchuserDto No
Returns : unknown
Public Async setEmailForUser
setEmailForUser(dto: SetEmailDto)
Decorators :
@Post('/user/set/email')
@Public()
@Admin()
Parameters :
Name Type Optional
dto SetEmailDto No
Returns : unknown
Public Async setPasswordForUser
setPasswordForUser(dto: SetPassDto)
Decorators :
@Post('/user/set/password')
@Public()
@Admin()
Parameters :
Name Type Optional
dto SetPassDto No
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);
  }
}

results matching ""

    No results matching ""