Skip to content

Instantly share code, notes, and snippets.

View loloDawit's full-sized avatar
💭
I may be slow to respond.

Dawit loloDawit

💭
I may be slow to respond.
  • Nordstrom
  • Seattle
View GitHub Profile
@loloDawit
loloDawit / serverless.yml
Created November 19, 2021 02:27
Serverless config
service: newrelicservice
frameworkVersion: '2'
useDotenv: true
plugins:
- serverless-offline
- serverless-dotenv-plugin
- serverless-newrelic-lambda-layers
@loloDawit
loloDawit / handler.js
Created November 19, 2021 02:25
Handler
/* eslint-disable no-undef */
"use strict";
const {unDeleteDashboard} = require("./newrelic/dashboard");
const {response} = require("./slack/format");
const {recoverModal} = require("./slack/payloads");
/**
* Bolt App Initialization
*/
const {App, ExpressReceiver} = require("@slack/bolt");
@loloDawit
loloDawit / payloads.js
Created November 19, 2021 02:23
Slack payloads
module.exports = {
recoverModal: () => {
return {
view: JSON.stringify({
title: {
type: "plain_text",
text: "Recover Dashboard"
},
submit: {
type: "plain_text",
@loloDawit
loloDawit / format.js
Created November 19, 2021 02:22
Slack Format
module.exports = {
response: (color, msg, extra) => {
return {
attachments: [
{
fallback: "Fallback triggered",
color: `${color}`,
blocks: [
{
type: "section",
@loloDawit
loloDawit / util.js
Created November 19, 2021 02:13
Util function
"use strict";
const AWS = require("aws-sdk");
const moment = require("moment");
const ErrorResponse = require("../common/error");
const s3 = new AWS.S3();
const {fetchAllDashboards, fetchDashboardDetails} = require("../newrelic/dashboard");
require("dotenv").config();
/**
* getErrorMessage
@loloDawit
loloDawit / dashboard.js
Created November 19, 2021 02:09
Dashboards
"use strict";
const axios = require("axios");
const config = require("../common/config");
const ErrorResponse = require("../common/error");
const {account, getDashboardInfo, unDelete} = require("./queries");
const MyAccount = require("../common/constant");
let myAccount = MyAccount();
@loloDawit
loloDawit / error.js
Created November 19, 2021 01:59
error.js
"use strict";
class ErrorResponse extends Error {
constructor(message, statusCode) {
super(message);
this.statusCode = statusCode;
}
}
module.exports = ErrorResponse;
/* eslint-disable no-undef */
"use strict";
require("dotenv").config();
module.exports = () => {
const Account = {
// make sure to properly set your acccount and account id
accountName: process.env.NODE_ENV === "dev" ? "DEV-ACCOUNT" : "PROD-ACCOUNT",
accountID: process.env.NODE_ENV === "dev" ? 11111111 : 1000000
};
return Account;
@loloDawit
loloDawit / config.js
Created November 19, 2021 01:56
src/common/config.js
/* eslint-disable no-undef */
"use strict";
module.exports = (options) => {
var config = {
method: "post",
url: `${process.env.URL}`,
headers: {
"Content-Type": "application/json",
"API-Key": `${process.env.NODE_ENV === "dev" ? process.env.API_KEY : process.env.API_KEY_PROD}`
@loloDawit
loloDawit / queries.js
Created November 19, 2021 01:45
queries.js
"use strict";
/**
* account Uses tagName to get account specific info
* @param {*} tagName
* @returns JSON with error or success
*/
const account = (tagName) => {
return JSON.stringify({
query: `{
actor {