From c147ba1da1d4d5f181c4de796e414a72248447cc Mon Sep 17 00:00:00 2001 From: Tadeo Kondrak Date: Mon, 15 Feb 2021 14:34:14 -0700 Subject: Handle Rocket.Chat attachments (#1395) --- bridge/helper/helper.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'bridge/helper/helper.go') diff --git a/bridge/helper/helper.go b/bridge/helper/helper.go index cbb319ac..2d16dc93 100644 --- a/bridge/helper/helper.go +++ b/bridge/helper/helper.go @@ -51,6 +51,30 @@ func DownloadFileAuth(url string, auth string) (*[]byte, error) { return &data, nil } +// DownloadFileAuthRocket downloads the given URL using the specified Rocket user ID and authentication token. +func DownloadFileAuthRocket(url, token, userID string) (*[]byte, error) { + var buf bytes.Buffer + client := &http.Client{ + Timeout: time.Second * 5, + } + req, err := http.NewRequest("GET", url, nil) + + req.Header.Add("X-Auth-Token", token) + req.Header.Add("X-User-Id", userID) + + if err != nil { + return nil, err + } + resp, err := client.Do(req) + if err != nil { + return nil, err + } + defer resp.Body.Close() + _, err = io.Copy(&buf, resp.Body) + data := buf.Bytes() + return &data, err +} + // GetSubLines splits messages in newline-delimited lines. If maxLineLength is // specified as non-zero GetSubLines will also clip long lines to the maximum // length and insert a warning marker that the line was clipped. -- cgit v1.2.3