mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
implemented checkUsername resolver
This commit is contained in:
parent
582e5c4a4f
commit
af2a77c30f
@ -26,6 +26,7 @@ import { getCustomRepository } from 'typeorm'
|
|||||||
import { UserSettingRepository } from '../../typeorm/repository/UserSettingRepository'
|
import { UserSettingRepository } from '../../typeorm/repository/UserSettingRepository'
|
||||||
import { Setting } from '../enum/Setting'
|
import { Setting } from '../enum/Setting'
|
||||||
import { UserRepository } from '../../typeorm/repository/User'
|
import { UserRepository } from '../../typeorm/repository/User'
|
||||||
|
import { LoginUser } from '@entity/LoginUser'
|
||||||
|
|
||||||
@Resolver()
|
@Resolver()
|
||||||
export class UserResolver {
|
export class UserResolver {
|
||||||
@ -276,14 +277,26 @@ export class UserResolver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Query(() => CheckUsernameResponse)
|
@Query(() => CheckUsernameResponse)
|
||||||
async checkUsername(
|
async checkUsername(@Args() { username }: CheckUsernameArgs): Promise<CheckUsernameResponse> {
|
||||||
@Args() { username, groupId = 1 }: CheckUsernameArgs,
|
// Username empty?
|
||||||
): Promise<CheckUsernameResponse> {
|
if (username === '') {
|
||||||
const response = await apiGet(
|
throw new Error('Username must be set.')
|
||||||
CONFIG.LOGIN_API_URL + `checkUsername?username=${username}&group_id=${groupId}`,
|
}
|
||||||
)
|
|
||||||
if (!response.success) throw new Error(response.data)
|
// Do we fullfil the minimum character length?
|
||||||
return new CheckUsernameResponse(response.data)
|
const MIN_CHARACTERS_USERNAME = 2
|
||||||
|
if (username.length < MIN_CHARACTERS_USERNAME) {
|
||||||
|
throw new Error(`Username must be at minimum ${MIN_CHARACTERS_USERNAME} characters long.`)
|
||||||
|
}
|
||||||
|
|
||||||
|
const usersFound = await LoginUser.count({ username })
|
||||||
|
|
||||||
|
// Username already present?
|
||||||
|
if (usersFound !== 0) {
|
||||||
|
throw new Error(`Username "${username}" already taken.`)
|
||||||
|
}
|
||||||
|
|
||||||
|
return new CheckUsernameResponse({ state: 'success' })
|
||||||
}
|
}
|
||||||
|
|
||||||
@Query(() => CheckEmailResponse)
|
@Query(() => CheckEmailResponse)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user