Class IntegrationsResource

Hierarchy

  • Resource
    • IntegrationsResource

Constructors

Methods

  • Conecta una integración nueva. Ocupa cupo del plan (error 1404 si no queda).

    El cuerpo depende del proveedor: {provider: "google_drive", code} para el OAuth, o el formulario de config_fields PLANO —no dentro de un config— para el resto. El config es lo que el servidor construye y devuelve, no lo que se manda.

    const integration = await pv.integrations.connect(orgId, {
    provider: "rss",
    url: "https://blog.example/feed",
    id_accounts: [accountId],
    });

    Parameters

    Returns Promise<
        {
            _id: string;
            config: {
                auto_publish?: boolean;
                id_accounts?: string[];
                import_image?: boolean;
                last_checked?: string;
                publication_type?: string;
                seen_guids?: string[];
                template?: string;
                url?: string;
            };
            connected: boolean;
            creation_date: string;
            enabled: boolean;
            error_code?: null
            | number;
            external_identifier?: string;
            id_client: string;
            id_organization: string;
            last_used_date?: string;
            name: string;
            provider: "google_drive" | "rss";
        },
    >

  • Una integración.

    Parameters

    • idOrganization: string
    • idIntegration: string
    • options: RequestOptions = {}

    Returns Promise<
        {
            _id: string;
            config: {
                auto_publish?: boolean;
                id_accounts?: string[];
                import_image?: boolean;
                last_checked?: string;
                publication_type?: string;
                seen_guids?: string[];
                template?: string;
                url?: string;
            };
            connected: boolean;
            creation_date: string;
            enabled: boolean;
            error_code?: null
            | number;
            external_identifier?: string;
            id_client: string;
            id_organization: string;
            last_used_date?: string;
            name: string;
            provider: "google_drive" | "rss";
        },
    >

  • Las integraciones de la organización, encadenando páginas.

    Parameters

    Returns AsyncGenerator<
        {
            _id: string;
            config: {
                auto_publish?: boolean;
                id_accounts?: string[];
                import_image?: boolean;
                last_checked?: string;
                publication_type?: string;
                seen_guids?: string[];
                template?: string;
                url?: string;
            };
            connected: boolean;
            creation_date: string;
            enabled: boolean;
            error_code?: null
            | number;
            external_identifier?: string;
            id_client: string;
            id_organization: string;
            last_used_date?: string;
            name: string;
            provider: "google_drive" | "rss";
        },
    >

  • Las integraciones de la organización, de la más reciente a la más antigua.

    Sin limit no hay límite: vuelven todas. Es la única lista de esta API que se comporta así — las demás cortan en 10.

    Parameters

    Returns Promise<
        Paginated<
            {
                _id: string;
                config: {
                    auto_publish?: boolean;
                    id_accounts?: string[];
                    import_image?: boolean;
                    last_checked?: string;
                    publication_type?: string;
                    seen_guids?: string[];
                    template?: string;
                    url?: string;
                };
                connected: boolean;
                creation_date: string;
                enabled: boolean;
                error_code?: null
                | number;
                external_identifier?: string;
                id_client: string;
                id_organization: string;
                last_used_date?: string;
                name: string;
                provider: "google_drive" | "rss";
            },
        >,
    >

  • Lo que el navegador necesita para abrir el selector del proveedor. Sólo Google Drive: en cualquier otro devuelve el error 2201.

    Lleva un access_token VIVO y de vida corta. No lo guardes, no lo registres en un log y no lo mandes a ningún sitio que no sea el Picker; se pide justo antes de abrirlo.

    app_id es el NÚMERO del proyecto de Google Cloud, no su identificador de texto: con el scope drive.file el permiso sobre el fichero elegido se concede al proyecto que lo eligió, así que tiene que ser el mismo que el del cliente OAuth.

    Parameters

    • idOrganization: string
    • idIntegration: string
    • options: RequestOptions = {}

    Returns Promise<
        {
            access_token: string;
            app_id: string;
            developer_key: string;
            expires_in: string;
        },
    >

  • El catálogo de proveedores: cómo se conecta cada uno, qué aporta y qué campos lleva su formulario.

    Es la única fuente de verdad de esa información. No copies el formulario del RSS a tu código: config_fields lo describe, y cambia con el servidor.

    No lleva autenticación de organización: es una constante del despliegue.

    Parameters

    Returns Promise<
        {
            accepted_formats: string[];
            config_fields: {
                default?: unknown;
                name: string;
                options?: string[];
                required?: boolean;
                type: "boolean"
                | "text"
                | "url"
                | "accounts"
                | "textarea"
                | "select";
            }[];
            content_feed: boolean;
            file_import: boolean;
            provider: "google_drive"
            | "rss";
            requires_oauth: boolean;
        }[],
    >

  • Renueva las credenciales de una integración que ya existe —caducó el token, el usuario revocó el permiso— o revalida la configuración de un feed, sin cambiar de documento.

    Mismo cuerpo que connect, porque quien lo interpreta es el mismo código del proveedor. No vuelve a ocupar cupo y va por permiso de update, no de create.

    Parameters

    Returns Promise<
        {
            _id: string;
            config: {
                auto_publish?: boolean;
                id_accounts?: string[];
                import_image?: boolean;
                last_checked?: string;
                publication_type?: string;
                seen_guids?: string[];
                template?: string;
                url?: string;
            };
            connected: boolean;
            creation_date: string;
            enabled: boolean;
            error_code?: null
            | number;
            external_identifier?: string;
            id_client: string;
            id_organization: string;
            last_used_date?: string;
            name: string;
            provider: "google_drive" | "rss";
        },
    >

  • Borra la integración y revoca en el proveedor cuando éste sabe hacerlo.

    Lo que ya se importó se queda: los ficheros son de la biblioteca de la organización, no de la integración.

    Parameters

    • idOrganization: string
    • idIntegration: string
    • options: RequestOptions = {}

    Returns Promise<void>

  • Cambia el nombre, la configuración o el interruptor.

    enabled: false la deja conectada pero fuera de juego: no la barre el job y deja de contar cupo. Es lo que hay que usar para pausar un feed en vez de borrarlo.

    Parameters

    • idOrganization: string
    • idIntegration: string
    • body: {
          config?: {
              auto_publish?: boolean;
              id_accounts?: string[];
              import_image?: boolean;
              last_checked?: string;
              publication_type?: string;
              seen_guids?: string[];
              template?: string;
              url?: string;
          };
          enabled?: boolean;
          name?: string;
      }
    • options: RequestOptions = {}

    Returns Promise<
        {
            _id: string;
            config: {
                auto_publish?: boolean;
                id_accounts?: string[];
                import_image?: boolean;
                last_checked?: string;
                publication_type?: string;
                seen_guids?: string[];
                template?: string;
                url?: string;
            };
            connected: boolean;
            creation_date: string;
            enabled: boolean;
            error_code?: null
            | number;
            external_identifier?: string;
            id_client: string;
            id_organization: string;
            last_used_date?: string;
            name: string;
            provider: "google_drive" | "rss";
        },
    >