Edits history of script submission #5810 for ' Send app report (slack)'

  • bun
    One script reply has been approved by the moderators
    Ap­pro­ved
    import { WebClient } from "@slack/web-api";
    import * as wmill from "windmill-client";
    import { S3Object } from "windmill-client";
    
    type Slack = {
      token: string;
    };
    
    /**
     * Send app report
     * Upload an app report (PDF or PNG) from Windmill object storage to a Slack channel.
     */
    export async function main(
      slack: Slack,
      channel: string,
      screenshot: S3Object,
      app_path: string,
      kind: "pdf" | "png",
    ) {
      const bytes = await wmill.loadS3File(screenshot);
      if (!bytes) {
        throw new Error("Could not load the file from object storage");
      }
    
      const fullAppPath =
        Bun.env["WM_BASE_URL"] +
        "/apps/get/" +
        app_path +
        "?workspace=" +
        Bun.env["WM_WORKSPACE"];
    
      const client = new WebClient(slack.token);
      return await client.filesUploadV2({
        channel_id: channel,
        file: Buffer.from(bytes),
        filename: "report." + kind,
        initial_comment: "App report of " + " <" + fullAppPath + "|" + app_path + ">",
      });
    }
    

    Submitted by hugo989 5 days ago

  • bun
    type Slack = {
      token: string;
    };
    type Base64 = string
    export async function main(
      slack: Slack,
      channel: string,
      screenshot: Base64,
      app_path: string,
      kind: 'pdf' | 'png',
    ) {
      const formData = new FormData();
      formData.append("token", slack.token);
      formData.append("file", new Blob([Buffer.from(screenshot, "base64")], {
        type: kind === "pdf" ? "application/pdf" : "image/png"
      }), "report." + kind);
      formData.append("channels", channel);
      const fullAppPath = Bun.env["WM_BASE_URL"] + '/apps/get/' + app_path + '?workspace=' + Bun.env["WM_WORKSPACE"]
      formData.append("initial_comment", "App report of " + " <" + fullAppPath + "|" + app_path + ">");
      return await (
        await fetch("https://slack.com/api/files.upload", {
          method: "POST",
          body: formData,
        })
      ).json();
    }
    

    Submitted by hugo697 633 days ago

  • bun
    type Slack = {
      token: string;
    };
    type Base64 = string
    export async function main(
      slack: Slack,
      channel: string,
      screenshot: Base64,
      app_path: string,
      kind: 'pdf' | 'png',
    ) {
      const formData = new FormData();
      formData.append("token", slack.token);
      formData.append("file", new Blob([Buffer.from(screenshot, "base64")], {
        type: kind === "pdf" ? "application/pdf" : "image/png"
      }), "report." + kind);
      formData.append("channels", channel);
      const fullAppPath = Bun.env["WM_BASE_URL"] + '/apps/get/' + app_path + '?workspace=' + Bun.env["WM_WORKSPACE"]
      formData.append("initial_comment", "App report of " + " <" + fullAppPath + "|" + app_path + ">");
      return await (
        await fetch("https://slack.com/api/files.upload", {
          method: "POST",
          body: formData,
        })
      ).json();
    }
    

    Submitted by hugo697 825 days ago

  • bun
    type Slack = {
      token: string;
    };
    export async function main(
      slack: Slack,
      channel: string,
      pdf: string,
      app_path: string
    ) {
      const formData = new FormData();
      formData.append("token", slack.token);
      formData.append("file", new Blob([Buffer.from(pdf, "base64")]), "report.pdf");
      formData.append("channels", channel);
      formData.append("initial_comment", "App report of " + app_path);
      return await (
        await fetch("https://slack.com/api/files.upload", {
          method: "POST",
          body: formData,
        })
      ).json();
    }
    

    Submitted by hugo697 825 days ago

  • bun
    type Slack = {
      token: string;
    };
    type Base64 = string
    export async function main(
      slack: Slack,
      channel: string,
      screenshot: Base64,
      app_path: string,
      kind: 'pdf' | 'png',
    ) {
      const formData = new FormData();
      formData.append("token", slack.token);
      formData.append("file", new Blob([Buffer.from(screenshot, "base64")], {
        type: kind === "pdf" ? "application/pdf" : "image/png"
      }), "report." + kind);
      formData.append("channels", channel);
      const fullAppPath = Bun.env["WM_BASE_URL"] + '/apps/get/' + app_path + '?workspace=' + Bun.env["WM_WORKSPACE"]
      formData.append("initial_comment", "App report of " + " <" + fullAppPath + "|" + app_path + ">");
      return await (
        await fetch("https://slack.com/api/files.upload", {
          method: "POST",
          body: formData,
        })
      ).json();
    }
    

    Submitted by hugo697 917 days ago

  • bun
    type Slack = {
      token: string;
    };
    export async function main(
      slack: Slack,
      channel: string,
      pdf: string,
      app_path: string
    ) {
      const formData = new FormData();
      formData.append("token", slack.token);
      formData.append("file", new Blob([Buffer.from(pdf, "base64")]), "report.pdf");
      formData.append("channels", channel);
      formData.append("initial_comment", "App report of " + app_path);
      return await (
        await fetch("https://slack.com/api/files.upload", {
          method: "POST",
          body: formData,
        })
      ).json();
    }
    

    Submitted by hugo697 922 days ago