@atomist/rugs
Version:
Helper functions for Rugs
57 lines (56 loc) • 2.97 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Handlers_1 = require("@atomist/rug/operations/Handlers");
var RugMessages_1 = require("@atomist/slack-messages/RugMessages");
exports.renderError = RugMessages_1.renderError;
exports.renderSuccess = RugMessages_1.renderSuccess;
var deprecated_decorator_1 = require("deprecated-decorator");
var mustache = require("mustache");
/*
* Copyright © 2017 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.
*/
// NOTE: plan is that this file can act as a facade for selecting
// rendering style for the message based on some context
// (MappedParameter, PE etc)
var listIssues = "{\n \"attachments\": [\n {{#issues}}\n {\n \"fallback\": \"#{{number}}: {{{safeTitle}}}\",\n {{#closed}}\n \"footer_icon\": \"http://images.atomist.com/rug/issue-closed.png\",\n \"color\": \"#bd2c00\",\n {{/closed}}\n {{^closed}}\n \"footer_icon\": \"http://images.atomist.com/rug/issue-open.png\",\n \"color\": \"#6cc644\",\n {{/closed}}\n {{#assignee}}\n \"author_link\": \"{{{assignee.html_url}}}\",\n \"author_name\": \"@{{{assignee.login}}}\",\n \"author_icon\": \"{{{assignee.avatar_url}}}\",\n {{/assignee}}\n \"mrkdwn_in\": [\"text\"],\n \"text\": \"<{{{issueUrl}}}|#{{number}}: {{{safeTitle}}}>\",\n \"footer\": \"<{{{url}}}|{{{repo}}}>\",\n \"ts\": \"{{ts}}\"\n }{{^last}}, {{/last}}\n {{/issues}}\n ]\n}";
/**
* Render GitHub issues for slack.
*/
var renderIssues = deprecated_decorator_1.default({
alternative: "@atomist/slack-messages",
version: "1.0.0-m.5",
}, function oldRenderIssues(issuesList, chatSystem) {
var last = "last";
try {
issuesList[issuesList.length - 1][last] = true; // horrible mustache hack
var msg = mustache.render(listIssues, {
assignee: function () {
return this.assignee !== undefined;
},
closed: function () {
return this.state === "closed";
},
safeTitle: function () {
return JSON.stringify(this.title);
},
issues: issuesList,
});
return new Handlers_1.ResponseMessage(msg, Handlers_1.MessageMimeTypes.SLACK_JSON);
}
catch (ex) {
return new Handlers_1.ResponseMessage("Error rendering issues " + ex);
}
});
exports.renderIssues = renderIssues;