Skip to content

Commit

Permalink
feat(stdlib/contrib): add readme to teams package
Browse files Browse the repository at this point in the history
  • Loading branch information
sranka committed Jun 2, 2020
1 parent 34aeea7 commit 0583b2a
Show file tree
Hide file tree
Showing 2 changed files with 469 additions and 400 deletions.
69 changes: 69 additions & 0 deletions stdlib/contrib/sranka/teams/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
# Teams Package

Use this Flux Package to send a message to a Microsoft Teams channel using an incoming webhook. See https://docs.microsoft.com/en-us/microsoftteams/platform/webhooks-and-connectors/how-to/connectors-using#setting-up-a-custom-incoming-webhook .

## teams.message

`message` sends a single message to Microsoft Teams via incoming web hook. Arguments:

| Name | Type | Description |
| ---- | ---- | ----------- |
| url | string | Incoming web hook URL. |
| title | string | Message card title. |
| text | string | Message card text. |
| summary | string | Message card summary, it can be an empty string to generate summary from text. |

All text fields can be formatted using basic [Markdown ](https://docs.microsoft.com/en-us/outlook/actionable-messages/message-card-reference#text-formatting).

Basic Example:

import "contrib/sranka/teams"

lastReported =
from(bucket: "example-bucket")
|> range(start: -1m)
|> filter(fn: (r) => r._measurement == "statuses")
|> last()
|> tableFind(fn: (key) => true)
|> getRecord(idx: 0)

teams.message(
url: "https://outlook.office.com/webhook/12345678-1234-...",
title: "Disk Usage"
text: "Great Scott!- Disk usage is: *${lastReported.status}*.",
summary: "Disk Usage is ${lastReported.status}"
)

## teams.endpoint

`endpoint` function creates a factory function that accepts a mapping function `mapFn` and creates a target function for pipeline `|>` operator that sends messages from table rows. The `mapFn` accepts a table row and returns an object with `title`, `text`, and `summary` as defined in the `teams.message` function arguments. Arguments:

| Name | Type | Description |
| ---- | ---- | ----------- |
| url | string | Incoming web hook URL. |

Basic Example:

import "contrib/sranka/teams"

url = "https://outlook.office.com/webhook/12345678-1234-..."

lastReported =
from(bucket: "example-bucket")
|> range(start: -1m)
|> filter(fn: (r) => r._measurement == "statuses")
|> last()
|> tableFind(fn: (key) => true)
|> teams.endpoint(url: url)(mapFn: (r) => ({
title: "Disk Usage"
text: "Great Scott!- Disk usage is: **${r.status}**.",
summary: "Disk Usage is ${r.status}"
})
)

## Contact

- Author: Pavel Zavora
- Email: [email protected]
- Github: [@sranka](https://github.com/sranka)
- Influx Slack: [@sranka](https://influxdata.com/slack)
Loading

0 comments on commit 0583b2a

Please sign in to comment.