hunk.code_window:   content: string | IEmailBlock[];
     contentType: MessageTemplateContentType;
     payload: string;
   }) {
  
hunk.labels: keep keep add keep
hunk.after_edit:   subject: string;
  
hunk.file_path: apps/web/src/api/content-templates.ts
hunk.type: add
file: import { IntegrationEntity } from '@novu/dal';
  import { IPushFactory, IPushHandler } from './interfaces';
  import { FCMHandler } from './handlers';
  
  export class PushFactory implements IPushFactory {
    handlers: IPushHandler[] = [new FCMHandler()];
  
    getHandler(integration: IntegrationEntity): IPushHandler {
      try {
        const handler =
          this.handlers.find((handlerItem) =>
            handlerItem.canHandle(integration.providerId, integration.channel)
          ) ?? null;
  
        if (!handler) return null;
  
        handler.buildProvider(integration.credentials);
  
        return handler;
      } catch (error) {
        throw new Error(
          `Could not build push handler id: ${integration._id}, error: ${error}`
        );
      }
    }
  }
  