"use strict";
/*
 * Copyright © 2019 Atomist, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.slackTs = exports.slackFooter = exports.slackSupportLink = exports.slackErrorMessage = exports.slackWarningMessage = exports.slackInfoMessage = exports.slackQuestionMessage = exports.slackSuccessMessage = void 0;
const configuration_1 = require("@atomist/automation-client/lib/configuration");
const string_1 = require("@atomist/automation-client/lib/internal/util/string");
const slack_messages_1 = require("@atomist/slack-messages");
const base64 = require("../base64");
function slackSuccessMessage(title, text, options = {}) {
    const msg = {
        attachments: [Object.assign({ author_icon: `https://images.atomist.com/rug/check-circle.gif?gif=${string_1.guid()}`, author_name: title, text, fallback: text, color: "#37A745", mrkdwn_in: ["text"], footer: slackFooter(), ts: slackTs() }, options)],
    };
    return msg;
}
exports.slackSuccessMessage = slackSuccessMessage;
function slackQuestionMessage(title, text, options = {}) {
    const msg = {
        attachments: [Object.assign({ author_icon: `https://images.atomist.com/rug/question.png`, author_name: title, text, fallback: text, color: "#B5B5B5", mrkdwn_in: ["text"], footer: slackFooter(), ts: slackTs() }, options)],
    };
    return msg;
}
exports.slackQuestionMessage = slackQuestionMessage;
function slackInfoMessage(title, text, options = {}) {
    const msg = {
        attachments: [Object.assign({ author_icon: `https://images.atomist.com/rug/info.png`, author_name: title, text, fallback: text, color: "#B5B5B5", mrkdwn_in: ["text"], footer: slackFooter(), ts: slackTs() }, options)],
    };
    return msg;
}
exports.slackInfoMessage = slackInfoMessage;
function slackWarningMessage(title, text, ctx, options = {}) {
    const msg = {
        attachments: [Object.assign({ author_icon: `https://images.atomist.com/rug/warning-yellow.png`, author_name: title, text, fallback: text, color: "#D7B958", mrkdwn_in: ["text"], footer: slackSupportLink(ctx), ts: slackTs() }, options)],
    };
    return msg;
}
exports.slackWarningMessage = slackWarningMessage;
function slackErrorMessage(title, text, ctx, options = {}) {
    const msg = {
        attachments: [Object.assign({ author_icon: "https://images.atomist.com/rug/error-circle.png", author_name: title, text, fallback: text, color: "#BC3D33", mrkdwn_in: ["text"], footer: slackSupportLink(ctx), ts: slackTs() }, options)],
    };
    return msg;
}
exports.slackErrorMessage = slackErrorMessage;
function slackSupportLink(ctx) {
    const supportUrl = `https://atomist.typeform.com/to/yvnyOj?message_id=${base64.encode(ctx.invocationId)}`;
    return `${slackFooter()} \u00B7 ${slack_messages_1.url(supportUrl, "Support")}`;
}
exports.slackSupportLink = slackSupportLink;
function slackFooter() {
    return `${configuration_1.configurationValue("name")}`;
}
exports.slackFooter = slackFooter;
function slackTs() {
    return Math.floor(Date.now() / 1000);
}
exports.slackTs = slackTs;
//# sourceMappingURL=messages.js.map