Edits history of script submission #189 for ' Send direct message (slack)'

  • deno
    One script reply has been approved by the moderators
    Ap­pro­ved
    import { WebClient } from "https://deno.land/x/[email protected]/mod.ts";
    import { isEmail } from "https://deno.land/x/[email protected]/mod.ts";
    
    type Slack = {
      token: string;
    };
    export async function main(user_email: string, text: string, slack: Slack) {
      throwOnInvalidEmail(user_email);
    
      const client = new WebClient(slack.token);
      const userData = await getUserData(client, user_email);
      console.log(userData);
      const result = await sendDirectMessage(text, client, userData);
    
      return result;
    }
    
    interface UserData {
      id: string;
      email: string;
      real_name: string;
    }
    
    async function getUserData(
      client: WebClient,
      email: string,
    ): Promise<UserData> {
      try {
        const response = await client.users.lookupByEmail({ email: email });
    
        const { id, real_name } = response.user;
        return { id, email, real_name };
      } catch (err) {
        return handleApiResponse(email, err);
      }
    }
    
    async function sendDirectMessage(
      text: string,
      client: WebClient,
      userData: UserData,
    ) {
      const { ok, ts, channel } = await client.chat.postMessage({
        channel: userData.id,
        text,
      });
      return { ok, ts, channel, email: userData.email };
    }
    
    function throwOnInvalidEmail(email: string) {
      if (!isEmail(email)) {
        throw new Error("Expected user email");
      }
    }
    
    function handleApiResponse(email: string, error: Error) {
      return Promise.reject({ email, err_msg: error.message });
    }
    

    Submitted by hugo697 352 days ago

  • deno
    import { WebClient } from "https://deno.land/x/[email protected]/mod.ts";
    import { isEmail } from "https://deno.land/x/[email protected]/mod.ts";
    
    type Slack = {
      token: string;
    };
    export async function main(user_email: string, text: string, slack: Slack) {
      throwOnInvalidEmail(user_email);
    
      const client = new WebClient(slack.token);
      const userData = await getUserData(client, user_email);
      console.log(userData);
      const result = await sendDirectMessage(text, client, userData);
    
      return result;
    }
    
    interface UserData {
      id: string;
      email: string;
      real_name: string;
    }
    
    async function getUserData(
      client: WebClient,
      email: string,
    ): Promise<UserData> {
      try {
        const response = await client.users.lookupByEmail({ email: email });
    
        const { id, real_name } = response.user;
        return { id, email, real_name };
      } catch (err) {
        return handleApiResponse(email, err);
      }
    }
    
    async function sendDirectMessage(
      text: string,
      client: WebClient,
      userData: UserData,
    ) {
      const { ok, ts, channel } = await client.chat.postMessage({
        channel: userData.id,
        text,
      });
      return { ok, ts, channel, email: userData.email };
    }
    
    function throwOnInvalidEmail(email: string) {
      if (!isEmail(email)) {
        throw new Error("Expected user email");
      }
    }
    
    function handleApiResponse(email: string, error: Error) {
      return Promise.reject({ email, err_msg: error.message });
    }
    

    Submitted by hugo697 366 days ago

  • deno
    import { WebClient } from "https://deno.land/x/[email protected]/mod.ts";
    import { isEmail } from "https://deno.land/x/[email protected]/mod.ts";
    
    type Slack = {
      token: string;
    };
    export async function main(user_email: string, text: string, slack: Slack) {
      throwOnInvalidEmail(user_email);
    
      const client = new WebClient(slack.token);
      const userData = await getUserData(client, user_email);
      console.log(userData);
      const result = await sendDirectMessage(text, client, userData);
    
      return result;
    }
    
    interface UserData {
      id: string;
      email: string;
      real_name: string;
    }
    
    async function getUserData(
      client: WebClient,
      email: string,
    ): Promise<UserData> {
      try {
        const response = await client.users.lookupByEmail({ email: email });
    
        const { id, real_name } = response.user;
        return { id, email, real_name };
      } catch (err) {
        return handleApiResponse(email, err);
      }
    }
    
    async function sendDirectMessage(
      text: string,
      client: WebClient,
      userData: UserData,
    ) {
      const { ok, ts, channel } = await client.chat.postMessage({
        channel: userData.id,
        text,
      });
      return { ok, ts, channel, email: userData.email };
    }
    
    function throwOnInvalidEmail(email: string) {
      if (!isEmail(email)) {
        throw new Error("Expected user email");
      }
    }
    
    function handleApiResponse(email: string, error: Error) {
      return Promise.reject({ email, err_msg: error.message });
    }
    

    Submitted by admin 999 days ago

  • deno
    import { WebClient } from "https://deno.land/x/[email protected]/mod.ts";
    import { isEmail } from "https://deno.land/x/[email protected]/mod.ts";
    
    type Slack = {
      token: string;
    };
    export async function main(
      user_email: string,
      text: string,
      slack: Slack,
    ) {
      throwOnInvalidEmail(user_email);
    
      const client = new WebClient(slack.token);
      const userData = await getUserData(client, user_email);
      console.log(userData);
      const result = await sendDirectMessage(text, client, userData);
    
      return result;
    }
    
    interface UserData {
      id: string;
      email: string;
      real_name: string;
    }
    
    async function getUserData(client: WebClient, email: string): Promise<UserData> {
      try {
        const response = await client.users.lookupByEmail({ email: email });
    
        const { id, real_name } = response.user;
        return { id, email, real_name };
      } catch (err) {
        return handleApiResponse(email, err);
      }
    }
    
    async function sendDirectMessage(text: string, client: WebClient, userData: UserData) {
      const { ok, ts, channel } = await client.chat.postMessage({
        channel: userData.id,
        text,
      });
      return { ok, ts, channel, email: userData.email };
    }
    
    function throwOnInvalidEmail(email: string) {
      if (!isEmail(email)) {
        throw new Error('Expected user email');
      }
    }
    
    function handleApiResponse(email: string, error: Error) {
      return Promise.reject({ email, err_msg: error.message });
    }

    Submitted by admin 1002 days ago

  • deno
    import { Resource } from "https://deno.land/x/[email protected]/mod.ts";
    import { WebClient } from "https://deno.land/x/[email protected]/mod.ts";
    import { isEmail } from "https://deno.land/x/[email protected]/mod.ts";
    
    export async function main(
      user_email: string,
      text: string,
      slack: Resource<"slack">,
    ) {
      throwOnInvalidEmail(user_email);
    
      const client = new WebClient(slack.token);
      const userData = await getUserData(client, user_email);
      console.log(userData);
      const result = await sendDirectMessage(text, client, userData);
    
      return result;
    }
    
    interface UserData {
      id: string;
      email: string;
      real_name: string;
    }
    
    async function getUserData(client: WebClient, email: string): Promise<UserData> {
      try {
        const response = await client.users.lookupByEmail({ email: email });
    
        const { id, real_name } = response.user;
        return { id, email, real_name };
      } catch (err) {
        return handleApiResponse(email, err);
      }
    }
    
    async function sendDirectMessage(text: string, client: WebClient, userData: UserData) {
      const { ok, ts, channel } = await client.chat.postMessage({
        channel: userData.id,
        text,
      });
      return { ok, ts, channel, email: userData.email };
    }
    
    function throwOnInvalidEmail(email: string) {
      if (!isEmail(email)) {
        throw new Error('Expected user email');
      }
    }
    
    function handleApiResponse(email: string, error: Error) {
      return Promise.reject({ email, err_msg: error.message });
    }

    Submitted by adam186 1130 days ago

  • deno
    import { Resource } from "https://deno.land/x/[email protected]/mod.ts";
    import { WebClient } from "https://deno.land/x/[email protected]/mod.ts";
    import { isEmail } from "https://deno.land/x/[email protected]/mod.ts";
    
    export async function main(
      user_email: string,
      text: string,
      slack: Resource<"slack">,
    ) {
      throwOnInvalidEmail(user_email);
    
      const client = new WebClient(slack.token);
      const userData = await getUserData(client, user_email);
      console.log(userData);
      const result = await sendDirectMessage(text, client, userData);
    
      return result;
    }
    
    interface UserData {
      id: string;
      email: string;
      real_name: string;
    }
    
    async function getUserData(client: WebClient, email: string): Promise<UserData> {
      try {
        const response = await client.users.lookupByEmail({ email: email });
    
        const { id, real_name } = response.user;
        return { id, email, real_name };
      } catch (err) {
        return handleApiResponse(email, err);
      }
    }
    
    async function sendDirectMessage(text: string, client: WebClient, userData: UserData) {
      const { ok, ts, channel } = await client.chat.postMessage({
        channel: userData.id,
        text,
      });
      return { ok, ts, channel, email: userData.email };
    }
    
    function throwOnInvalidEmail(email: string) {
      if (!isEmail(email)) {
        throw new Error('Expected user email');
      }
    }
    
    function handleApiResponse(email: string, error: Error) {
      return Promise.reject({ email, err_msg: error.message });
    }

    Submitted by adam186 1165 days ago

  • deno
    import { Resource } from "https://deno.land/x/[email protected]/mod.ts";
    import { WebClient } from "https://deno.land/x/[email protected]/mod.ts";
    import { isEmail } from "https://deno.land/x/[email protected]/mod.ts";
    
    export async function main(
      user_email: string,
      text: string,
      slack: Resource<"slack">,
    ) {
      throwOnInvalidEmail(user_email);
    
      const client = new WebClient(slack.token);
      const userData = await getUserData(client, user_email);
      console.log(userData);
      const result = await sendDirectMessage(text, client, userData);
    
      return result;
    }
    
    interface UserData {
      id: string;
      email: string;
      real_name: string;
    }
    
    async function getUserData(client: WebClient, email: string): Promise<UserData> {
      try {
        const response = await client.users.lookupByEmail({ email: email });
    
        const { id, real_name } = response.user;
        return { id, email, real_name };
      } catch (err) {
        return handleApiResponse(email, err);
      }
    }
    
    async function sendDirectMessage(text: string, client: WebClient, userData: UserData) {
      const { ok, ts, channel } = await client.chat.postMessage({
        channel: userData.id,
        text,
      });
      return { ok, ts, channel, email: userData.email };
    }
    
    function throwOnInvalidEmail(email: string) {
      if (!isEmail(email)) {
        throw new Error('Expected user email');
      }
    }
    
    function handleApiResponse(email: string, error: Error) {
      return Promise.reject({ email, err_msg: error.message });
    }

    Submitted by mrl5 1269 days ago