Skip to content

Instantly share code, notes, and snippets.

View DeadAlready's full-sized avatar

Karl Düüna DeadAlready

View GitHub Profile
@DeadAlready
DeadAlready / transactions.sql
Created January 26, 2018 15:42
A setup for transactions
CREATE TABLE transactions
(
id INT(11) PRIMARY KEY NOT NULL AUTO_INCREMENT,
accountId INT(11) NOT NULL,
amount DECIMAL(10,2) NOT NULL
);
INSERT INTO transactions (accountId, amount) VALUES (1, 10);
@DeadAlready
DeadAlready / mysql-wrapper-param.js
Last active January 26, 2018 15:15
A new parameter
function query(input) {
const _defaults = {
params: []
};
const {sql, params, autorollback} = Object.assign(_defaults, input);
return new Promise((resolve, reject) => {
connection.query(sql, params, (err, resp) => {
if(err && autorollback) {
return resolve(rollback(err));
@DeadAlready
DeadAlready / query-function.js
Last active January 26, 2018 15:12
Torch everything
function query(input) {
const _defaults = {
params: []
};
const {sql, params} = Object.assign(_defaults, input);
return new Promise((resolve, reject) => {
connection.query(sql, params, (err, resp) => {
if(err) {
// Torch the connection
@DeadAlready
DeadAlready / query.js
Last active January 26, 2018 15:12
An example of a transaction
'use strict';
const {query} = require('./mysql-wrapper');
const sql = `
START TRANSACTION;
# Calculate balance
SELECT @balance := SUM(amount) FROM transactions WHERE accountId = 1 FOR UPDATE;
# Compare balance with the amount we want to withdraw
@DeadAlready
DeadAlready / mysql-wrapper.js
Last active January 26, 2018 15:40
A basic wrapper for mysql connection
'use strict';
module.exports.query = query;
/* --------------------- */
const mysql = require('mysql');
const connection = mysql.createConnection({
host : process.env.HOSTNAME,
var toString = {}.toString;
module.exports = Array.isArray || function (arr) {
return toString.call(arr) == '[object Array]';
};
module.exports = require('util').inherits
@DeadAlready
DeadAlready / npm-shrinkwrap.json
Last active May 12, 2016 15:00
Shrinkwrap order example
{
"name": "test",
"version": "1.0.0",
"dependencies": {
"accepts": {
"version": "1.3.3",
"from": "accepts@>=1.3.1 <1.4.0",
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz"
},
"axios": {
@DeadAlready
DeadAlready / mask-functions.js
Last active May 12, 2016 14:29
Mask functions
function maskVersion(version) {
let newVersion = {};
[
'_id',
'name',
'version',
'scripts',
'engines',
'dist',
'main',
@DeadAlready
DeadAlready / app.js
Last active May 12, 2016 14:24
NPM registry piper
'use strict';
const express = require('express');
const request = require('request');
const morgan = require('morgan');
let app = express();
app.use(morgan('short'));