docs-v2/content/flux/v0/stdlib/contrib/sranka/webexteams/endpoint.md

2.8 KiB

title description menu weight flux/v0/tags
webexteams.endpoint() function `webexteams.endpoint()` returns a function that sends a message that includes data from input rows to a Webex room.
flux_v0_ref
name parent identifier
webexteams.endpoint contrib/sranka/webexteams contrib/sranka/webexteams/endpoint
301
notification endpoints
transformations

webexteams.endpoint() returns a function that sends a message that includes data from input rows to a Webex room.

Usage

webexteams.endpoint is a factory function that outputs another function. The output function requires a mapFn parameter.

mapFn

A function that builds the object used to generate the POST request. Requires an r parameter.

mapFn accepts a table row (r) and returns an object that must include the following fields:

  • roomId
  • text
  • markdown

For more information, see webexteams.message parameters.

Function type signature
(
    token: string,
    ?url: string,
) => (
    mapFn: (r: A) => {B with text: E, roomId: D, markdown: C},
) => (<-tables: stream[A]) => stream[{A with _sent: string}]

{{% caption %}} For more information, see Function type signatures. {{% /caption %}}

Parameters

url

Base URL of Webex API endpoint (without a trailing slash). Default is https://webexapis.com.

token

({{< req >}}) Webex API access token.

Examples

Send the last reported status to Webex Teams

import "contrib/sranka/webexteams"
import "influxdata/influxdb/secrets"

token = secrets.get(key: "WEBEX_API_KEY")

from(bucket: "example-bucket")
    |> range(start: -1m)
    |> filter(fn: (r) => r._measurement == "statuses")
    |> last()
    |> tableFind(fn: (key) => true)
    |> webexteams.endpoint(token: token)(
        mapFn: (r) =>
            ({
                roomId:
                    "Y2lzY29zcGFyazovL3VzL1JPT00vYmJjZWIxYWQtNDNmMS0zYjU4LTkxNDctZjE0YmIwYzRkMTU0",
                text: "",
                markdown: "Disk usage is **${r.status}**.",
            }),
    )()