subdomainValidation.ts 1.1 KB

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