async uploadAllImagesAndSaveCampaign()

in genai-for-marketing/frontend/src/app/email-copy/email-copy.component.ts [352:385]


  async uploadAllImagesAndSaveCampaign(folder_id: any, updatedBulkEmails: any, selectedCampaign: any) {
    let responses: any[] = [];
    let selectedImage: File;
    Promise.all(
      updatedBulkEmails.map((email: any, i: any) => {
        let base64ImageUrl = updatedBulkEmails[i].generated_image
        base64ImageUrl = this.domSanitizer.bypassSecurityTrustResourceUrl('data:image/jpg;base64,'
          + updatedBulkEmails[i].generated_image);

        selectedImage = this.campaignServ.dataURLtoFile(base64ImageUrl.changingThisBreaksApplicationSecurity, 'email_copy_generate_image_' + i)

        return new Promise((resolve: any) => {
          this.campaignServ.imageUploadToGCS(selectedImage, folder_id, event).subscribe((res: any) => {
            return new Promise(() => {
              this.saveCampaignId = res;
              updatedBulkEmails[i].gcs_path = res;
              responses[i] = updatedBulkEmails[i];
              resolve();
            });
          })
        });
      })
    ).then(() => {
      let keys = ['generated_image'];
      responses.forEach((x: any) => {
        keys.forEach(k => delete x[k])
      })
      let emailsData = {
        'text': this.textContent,
        'persionalized_emails': responses
      }
      this.saveToCampaign(emailsData, selectedCampaign)
    });
  }