Skip to content

Instantly share code, notes, and snippets.

@olegpolyakov
olegpolyakov / slack-api.js
Created April 7, 2020 10:14
Slack API Router
const router = require('express').Router();
const { WebClient } = require('@slack/client');
const {
SLACK_CLIENT_ID,
SLACK_CLIENT_SECRET,
SLACK_AUTHORIZE_URL
} = require('@codedojo/core/config');
const { logger } = require('@codedojo/core/services');
const { User } = require('@codedojo/core/models');
const crypto = require('crypto');
const request = require('request');
const jwt = require('jsonwebtoken');
const ZOOM_API_URL = 'https://api.zoom.us/v2/';
function getToken(key, secret) {
return jwt.sign({
iss: key,
exp: Math.floor(Date.now() / 1000) + 60
const request = require('request');
module.exports = {
verify(response) {
return new Promise((resolve, reject) => {
request({
uri: 'https://www.google.com/recaptcha/api/siteverify',
method: 'POST',
form: {
secret: '6Lf22BgTAAAAACnRULGoRP6Di_PU3vLjWTubsiTT',
@olegpolyakov
olegpolyakov / mailgun.js
Created February 3, 2020 19:29
MailGun
const request = require('request');
module.exports = (MAILGUN_API_KEY, MAILGUN_API_URL) => ({
send({ from, to, subject, text, html, template, variables }) {
return new Promise((resolve, reject) => {
request.post(`${MAILGUN_API_URL}/messages`, {
auth: {
user: 'api',
pass: MAILGUN_API_KEY
},
@olegpolyakov
olegpolyakov / slack.js
Last active February 3, 2020 19:58
Slack Service
'use strict';
const request = require('request');
module.exports = {
inviteToTeam({ user, channels, token }) {
const body = {
email: user.email,
first_name: user.firstname,
last_name: user.lastname,
@olegpolyakov
olegpolyakov / server.js
Created January 14, 2020 17:48
HTTP Express Server with SSL
const fs = require('fs');
const https = require('https');
const ssl = {
key: fs.readFileSync(__dirname + '/ssl/certificate.pem'),
cert: fs.readFileSync(__dirname + '/ssl/certificate.crt')
};
https.createServer(ssl, server).listen(server.get('port'), () => {
console.log('Express server listening on port ' + server.get('port'));
@olegpolyakov
olegpolyakov / GuestRoute.jsx
Created January 6, 2020 14:54
React Auth Routes
import React from 'react';
import { Route, Redirect } from 'react-router-dom';
export default function GuestRoute({ user, component: Component, ...props }) {
return (
<Route {...props} render={props =>
user ?
<Redirect to="/" />
:
<Component {...props} />
export default class TextField {
static DEFAULT_VALUES = {
element: undefined,
type: 'text',
placeholder: '',
required: false,
onChange: Function.prototype,
onInput: Function.prototype
}
@olegpolyakov
olegpolyakov / test-runner.js
Created October 2, 2019 12:50
Test runner
const testRunner = {
tests: [],
test(description, fn) {
this.tests.push({
description,
fn
});
},
@olegpolyakov
olegpolyakov / ajax-cache.js
Created September 15, 2019 08:08
AJAX Cache
const form = document.querySelector('form');
const input = form.querySelector('input[type="search]"');
const cache = {};
form.addEventListener('submit', event => {
event.preventDefault();
const query = input.value;