|
| 1 | +import { type UsernameCheckResponse, UsernameErrorType } from '$lib/api/internal/v1'; |
1 | 2 | import { UsernameAvailability } from '$lib/api/internal/v2'; |
2 | 3 | import { isEmailAddress } from '$lib/inputvalidation/emailValidator'; |
3 | 4 | import type { ValidationResult } from '$lib/types/ValidationResult'; |
@@ -61,6 +62,11 @@ export const UsernameTakenValRes: ValidationResult = { |
61 | 62 | message: 'Username is already taken', |
62 | 63 | }; |
63 | 64 |
|
| 65 | +export const UsernameInvalidValRes: ValidationResult = { |
| 66 | + valid: false, |
| 67 | + message: 'Username invalid', |
| 68 | +}; |
| 69 | + |
64 | 70 | export const UsernameAvailabilityUnknownValRes: ValidationResult = { |
65 | 71 | valid: false, |
66 | 72 | message: 'Unknown username availability', |
@@ -108,13 +114,27 @@ export function validateUsername(value: string): ValidationResult | null { |
108 | 114 | return { valid: true }; |
109 | 115 | } |
110 | 116 |
|
111 | | -export function mapUsernameAvailability(availability: UsernameAvailability): ValidationResult { |
| 117 | +export function mapUsernameCheckResponse({ |
| 118 | + availability, |
| 119 | + error, |
| 120 | +}: UsernameCheckResponse): ValidationResult { |
112 | 121 | switch (availability) { |
113 | 122 | case UsernameAvailability.Available: |
114 | 123 | return UsernameAvailableValRes; |
115 | 124 | case UsernameAvailability.Taken: |
116 | 125 | return UsernameTakenValRes; |
| 126 | + case UsernameAvailability.Invalid: |
| 127 | + break; |
117 | 128 | default: |
118 | 129 | return UsernameAvailabilityUnknownValRes; |
119 | 130 | } |
| 131 | + |
| 132 | + if (!error) { |
| 133 | + return UsernameInvalidValRes; |
| 134 | + } |
| 135 | + |
| 136 | + return { |
| 137 | + valid: false, |
| 138 | + message: error.message, |
| 139 | + }; |
120 | 140 | } |
0 commit comments