subdomainValidation.ts 1.0 KB

123456789101112131415161718192021222324252627
  1. import ApiRequestService from "~/services/data/apiRequestService";
  2. export default class SubdomainValidation {
  3. private apiRequestService: ApiRequestService
  4. public constructor(apiRequestService: ApiRequestService) {
  5. this.apiRequestService = apiRequestService
  6. }
  7. /**
  8. * Le sous-domaine est valide s'il contient entre 2 et 60 caractères, et pas de caractères spéciaux
  9. * @param subdomain
  10. */
  11. public static isValid(subdomain: string | null): boolean {
  12. return subdomain !== null && subdomain.match(/^[a-z0-9][a-z0-9\-]{0,61}[a-z0-9]$/) !== null
  13. }
  14. /**
  15. * Returns true if the given subdomain has not been registered yet or is not reserved
  16. * @param subdomain
  17. */
  18. public async isAvailable(subdomain: string): Promise<boolean> {
  19. const subdomainAvailability: any = await this.apiRequestService.get('/api/subdomains/is_available', {'subdomain': subdomain})
  20. return subdomainAvailability && subdomainAvailability['available'] === true
  21. }
  22. }