Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 52 additions & 16 deletions src/learning-token-backend/src/modules/auth/auth.controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,19 @@ export class AuthController {
try {
registerRequestDto.type = 'Admin'
const result = await this.service.register(registerRequestDto)
return {
status: HttpStatus.CREATED,
message: 'User has been created',
result: result
if (result) {
console.log('registered', result)
return {
status: HttpStatus.CREATED,
message: 'User has been created',
result: result
}
} else {
return {
status: HttpStatus.FOUND,
message: 'User already registered',
result: null
}
}
} catch (error) {
throw new ConflictException(error.message)
Expand Down Expand Up @@ -88,10 +97,19 @@ export class AuthController {
try {
registerRequestDto.type = 'Institution'
const result = await this.service.register(registerRequestDto)
return {
status: HttpStatus.CREATED,
message: 'User has been created',
result: result
if (result) {
console.log('registered', result)
return {
status: HttpStatus.CREATED,
message: 'User has been created',
result: result
}
} else {
return {
status: HttpStatus.FOUND,
message: 'User already registered',
result: null
}
}
} catch (error) {
console.log(error)
Expand Down Expand Up @@ -127,10 +145,19 @@ export class AuthController {
try {
registerRequestDto.type = 'Learner'
const result = await this.service.register(registerRequestDto)
return {
status: HttpStatus.CREATED,
message: 'User has been created',
result: result
if (result) {
console.log('registered', result)
return {
status: HttpStatus.CREATED,
message: 'User has been created',
result: result
}
} else {
return {
status: HttpStatus.FOUND,
message: 'User already registered',
result: null
}
}
} catch (error) {
throw new ConflictException(error.message)
Expand Down Expand Up @@ -165,10 +192,19 @@ export class AuthController {
try {
registerRequestDto.type = 'Instructor'
const result = await this.service.register(registerRequestDto)
return {
status: HttpStatus.CREATED,
message: 'User has been created',
result: result
if (result) {
console.log('registered', result)
return {
status: HttpStatus.CREATED,
message: 'User has been created',
result: result
}
} else {
return {
status: HttpStatus.FOUND,
message: 'User already registered',
result: null
}
}
} catch (error) {
throw new ConflictException(error.message)
Expand Down
171 changes: 104 additions & 67 deletions src/learning-token-backend/src/modules/auth/service/auth.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ export class AuthService {
private readonly jwtService: JwtService,
@InjectRepository(Role)
private readonly roleRepository: Repository<Role>
) {}
) { }

/**
* REGISTRATION OF A USER
Expand All @@ -43,80 +43,93 @@ export class AuthService {
longitude
}: any) {
if (type == 'Admin') {
const user = new User()
user.name = name
user.email = email
user.password = this.jwtService.encodePassword(password)
const registeredUser = await this.userRepository.save(user)
return {
id: registeredUser.id,
name: registeredUser.name,
email: registeredUser.email,
token: null,
createdAt: registeredUser.createdAt,
updatedAt: registeredUser.updatedAt
if (!(await this.checkUser(email, type))) {
const user = new User()
user.name = name
user.email = email
user.password = this.jwtService.encodePassword(password)
console.log('name,email', user.name, user.email)
const registeredUser = await this.userRepository.save(user)
return {
id: registeredUser.id,
name: registeredUser.name,
email: registeredUser.email,
token: null,
createdAt: registeredUser.createdAt,
updatedAt: registeredUser.updatedAt
}
}
} else if (type == 'Institution') {
const user = new Institution()
user.name = name
user.email = email
user.password = this.jwtService.encodePassword(password)
user.latitude = latitude
user.longitude = longitude

const role = await this.roleRepository.findOne({
where: {
name: 'institution'
}
})
user.roleId = role.id // default to institution
if (!(await this.checkUser(email, type))) {
const user = new Institution()
user.name = name
user.email = email
user.password = this.jwtService.encodePassword(password)
user.latitude = latitude
user.longitude = longitude

const registeredUser = await this.institutionRepository.save(user)
const wallet = await getWallet('institution', registeredUser.id)
await this.institutionRepository.update(registeredUser.id, {
publicAddress: wallet.address,
role: role
})
return {
id: registeredUser.id,
name: registeredUser.name,
email: registeredUser.email,
token: null,
createdAt: registeredUser.createdAt,
updatedAt: registeredUser.updatedAt
const role = await this.roleRepository.findOne({
where: {
name: 'institution'
}
})
user.roleId = role.id // default to institution

const registeredUser = await this.institutionRepository.save(
user
)
const wallet = await getWallet('institution', registeredUser.id)
await this.institutionRepository.update(registeredUser.id, {
publicAddress: wallet.address,
role: role
})
return {
id: registeredUser.id,
name: registeredUser.name,
email: registeredUser.email,
token: null,
createdAt: registeredUser.createdAt,
updatedAt: registeredUser.updatedAt
}
}
//no longer registering from the api
} else if (type == 'Learner') {
const user = new Learner()
user.name = name
user.email = email
// user.publicAddress = publicAddress
user.password = this.jwtService.encodePassword(password)
user.latitude = latitude
user.longitude = longitude
const registeredUser = await this.learnerRepository.save(user)
return {
id: registeredUser.id,
name: registeredUser.name,
email: registeredUser.email,
token: null,
createdAt: registeredUser.createdAt,
updatedAt: registeredUser.updatedAt
if (!(await this.checkUser(email, type))) {
const user = new Learner()
user.name = name
user.email = email
// user.publicAddress = publicAddress
user.password = this.jwtService.encodePassword(password)
user.latitude = latitude
user.longitude = longitude
const registeredUser = await this.learnerRepository.save(user)
return {
id: registeredUser.id,
name: registeredUser.name,
email: registeredUser.email,
token: null,
createdAt: registeredUser.createdAt,
updatedAt: registeredUser.updatedAt
}
}
} else if (type == 'Instructor') {
const user = new Instructor()
user.name = name
user.email = email
// user.publicAddress = publicAddress
user.password = this.jwtService.encodePassword(password)
const registeredUser = await this.insturctorRepository.save(user)
return {
id: registeredUser.id,
name: registeredUser.name,
email: registeredUser.email,
token: null,
createdAt: registeredUser.createdAt,
updatedAt: registeredUser.updatedAt
if (!(await this.checkUser(email, type))) {
const user = new Instructor()
user.name = name
user.email = email
// user.publicAddress = publicAddress
user.password = this.jwtService.encodePassword(password)
const registeredUser = await this.insturctorRepository.save(
user
)
return {
id: registeredUser.id,
name: registeredUser.name,
email: registeredUser.email,
token: null,
createdAt: registeredUser.createdAt,
updatedAt: registeredUser.updatedAt
}
}
}
}
Expand Down Expand Up @@ -209,6 +222,30 @@ export class AuthService {
}
}

public checkUser = async (email, type) => {
if (type == 'Admin') {
const found = await this.userRepository.findOne({
where: { email: email }
})
return found ? true : false
} else if (type == 'Learner') {
const found = await this.learnerRepository.findOne({
where: { email: email }
})
return found ? true : false
} else if (type == 'Instructor') {
const found = await this.insturctorRepository.findOne({
where: { email: email }
})
return found ? true : false
} else if (type == 'Institution') {
const found = await this.institutionRepository.findOne({
where: { email: email }
})
return found ? true : false
}
}

/**
* VALIDATING A USER
*/
Expand Down
4 changes: 4 additions & 0 deletions src/learning-token-dashboard/src/pages/Register.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,8 @@ const Login = () => {
navigate("/");
}
});
}else if(result && result.status === 302){
alert("User already exist")
}
});
} else if (values.type === "institution") {
Expand Down Expand Up @@ -123,6 +125,8 @@ const Login = () => {
navigate("/");
}
});
}else if(result && result.status === 302){
alert("User already exist")
}
});
}
Expand Down