Skip to content

Instantly share code, notes, and snippets.

View Mr-Malomz's full-sized avatar

Demola Malomo Mr-Malomz

  • Lagos, Nigeria
View GitHub Profile
@Mr-Malomz
Mr-Malomz / user.entity.ts
Last active September 1, 2020 21:10
User Entity
import { BaseEntity, PrimaryGeneratedColumn, Entity, Column, Unique } from 'typeorm';
@Entity()
@Unique(['email'])
export class User extends BaseEntity {
@PrimaryGeneratedColumn('uuid')
userID: string;
@Column({ nullable: true })
firstname: string;
@Mr-Malomz
Mr-Malomz / user.repository.ts
Created August 29, 2020 20:49
User repository
import { Repository, EntityRepository } from "typeorm";
import { User } from "./user.entity";
@EntityRepository(User)
export class UserRepository extends Repository<User> {
}
@Mr-Malomz
Mr-Malomz / auth.module.ts
Created August 29, 2020 20:57
Auth Module
import { Module } from '@nestjs/common';
import { AuthController } from './auth.controller';
import { AuthService } from './auth.service';
//Imported TypeOrmModule and UserRepository
import { TypeOrmModule } from '@nestjs/typeorm';
import { UserRepository } from './user.repository';
@Module({
//updated imports
import { Injectable } from '@nestjs/common';
import { UserRepository } from './user.repository';
import { InjectRepository } from '@nestjs/typeorm';
@Injectable()
export class AuthService {
//new code below
constructor(
@InjectRepository(UserRepository)
private userRepository: UserRepository,
export class AuthSignUpDto {
email: string;
password: string;
firstname: string;
lastname: string;
}
import { IsString, IsEmail, MinLength, Matches } from 'class-validator';
export class AuthSignUpDto {
@IsEmail()
email: string;
@IsString()
@MinLength(8)
//regex for password to contain atleast one uppercase, lowercase, number and special character
@Matches(/((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$/, {
@Mr-Malomz
Mr-Malomz / user.repository.ts
Created September 1, 2020 21:34
signUp User
import { Repository, EntityRepository } from 'typeorm';
import { User } from './user.entity';
import { AuthSignUpDto } from './dto/auth-signup.dto';
import {
ConflictException,
InternalServerErrorException,
} from '@nestjs/common';
@EntityRepository(User)
export class UserRepository extends Repository<User> {
@Mr-Malomz
Mr-Malomz / auth.service.ts
Created September 1, 2020 23:55
Updated Service
import { Injectable } from '@nestjs/common';
import { UserRepository } from './user.repository';
import { InjectRepository } from '@nestjs/typeorm';
import { AuthSignUpDto } from './dto/auth-signup.dto';
@Injectable()
export class AuthService {
constructor(
@InjectRepository(UserRepository)
private userRepository: UserRepository,
@Mr-Malomz
Mr-Malomz / auth.controller.ts
Last active September 2, 2020 00:08
Updated Controller
import { Controller } from '@nestjs/common';
import { AuthService } from './auth.service';
import { AuthSignUpDto } from './dto/auth-signup.dto';
@Controller('auth')
export class AuthController {
//injection of Authservice in the constructor
constructor(private authService: AuthService) {}
//new signUp method
@Mr-Malomz
Mr-Malomz / bcrypt install
Last active September 14, 2020 07:20
Installation
npm i --save bcrypt @types/bcrypt