private async validateUniqueCosmosDBAccountName()

in src/extension/src/azure/azure-cosmosDB/cosmosDbModule.ts [297:315]


  private async validateUniqueCosmosDBAccountName(name: string): Promise<string | undefined> {
    if (this.SubscriptionItemCosmosClient === undefined) {
      throw new AuthorizationError(MESSAGES.ERRORS.COSMOS_CLIENT_NOT_DEFINED);
    }
    name = name ? name.trim() : "";

    const min = CONSTANTS.COSMOS_DB_NAME.MIN_LENGTH;
    const max = CONSTANTS.COSMOS_DB_NAME.MAX_LENGTH;

    if (name.length < min || name.length > max) {
      return MESSAGES.ERRORS.NAME_MIN_MAX(min, max);
    } else if (name.match(/[^a-z0-9-]/)) {
      return MESSAGES.ERRORS.COSMOS_VALID_CHARACTERS;
    } else if ((await this.SubscriptionItemCosmosClient.databaseAccounts.checkNameExists(name)).body) {
      return MESSAGES.ERRORS.COSMOS_ACCOUNT_NOT_AVAILABLE(name);
    } else {
      return undefined;
    }
  }