Skip to content

Instantly share code, notes, and snippets.

@mootrichard
mootrichard / index.d.ts
Created October 8, 2019 20:30
Enums into Types
// Type definitions for square-connect 2.20190814
// Project: https://docs.connect.squareup.com/
// Definitions by: Dmitri Dimitrioglo <https://github.com/ddimitrioglo>
// Richard Moot <https://github.com/mootrichard>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.4
export type CountryEnum =
'ZZ' |
'AD' |
@mootrichard
mootrichard / App.jsx
Created October 24, 2018 21:30
Parent component for Square React Payment Form
import React, { Component } from 'react';
import './App.css';
import PaymentForm from './components/PaymentForm';
class App extends Component {
constructor(props){
super(props)
this.state = {
loaded: false
}
@mootrichard
mootrichard / process.py
Last active July 22, 2018 12:17 — forked from jorgesancha/python_code_test_carto.md
Python code test - CARTO
#!/usr/local/bin/python3
line_count = 1
tip_amount_sum = 0
def process_line(lines):
global line_count
global tip_amount_sum
line_count += 1
tip_amount_sum += float(line.split(",")[15])
@mootrichard
mootrichard / handler.js
Last active August 10, 2018 21:57
Our final Serverless function for creating checkouts
const SquareConnect = require('square-connect');
const crypto = require('crypto');
const querystring = require('querystring');
module.exports.checkout = (event, context, callback) => {
(SquareConnect.ApiClient.instance).authentications["oauth2"].accessToken = process.env.ACCESS_TOKEN;
const formData = querystring.parse(event.body);
const locationId = process.env.LOCATION_ID;
const checkoutRequest = {
idempotency_key: crypto.randomBytes(48).toString('base64'),
@mootrichard
mootrichard / serverless.yml
Created April 13, 2018 00:03
Our Serverless YML
service: serverless-checkout # NOTE: update this with your service name
provider:
name: aws
runtime: nodejs8.10
stage: prod
memorySize: 256
package:
include:
@mootrichard
mootrichard / handler.js
Created April 13, 2018 00:01
Our Initial Version of the Serverless function
'use strict';
const SquareConnect = require('square-connect');
module.exports.checkout = (event, context, callback) => {
let response = "Success! Our function is running!";
callback(null, response);
};
@mootrichard
mootrichard / index.html
Last active April 17, 2018 22:52
Our Index Page for the Swag Shop
<!DOCTYPE html>
<html>
<head>
<title>Square Swag Shop</title>
<meta name="description" content="A Simple eCommerce Store">
<link id="favicon" rel="icon" href="/favicon.ico" type="image/x-icon">
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name='viewport' content='width=device-width, initial-scale=1'>
@mootrichard
mootrichard / product.html
Last active April 17, 2018 21:33
A product element in our Swag Shop
<!-- start product -->
<div class='product'>
<div class='imageContainer'>
<img class='productImage' src="/0.jpeg" />
<!-- insert product image url here -->
<div class='imageOverlay'>
<button>View Details</button>
</div>
</div>
<div class='modal clearfix'>
@mootrichard
mootrichard / square_callback.js
Last active March 11, 2018 23:47
Callback for Square OAuth
router.get("/callback", (req, res) => {
const tokenURL = "https://connect.squareup.com/oauth2/token";
const redirectURI = "https://square-oauth-example.glitch.me/auth/callback";
if (req.query.state === req.auth.state) {
axios
.post(tokenURL, {
client_id: CLIENT_ID,
client_secret: SECRET,
code: req.query.code,
@mootrichard
mootrichard / square_authorize.js
Last active March 11, 2018 23:32
Square Authorization Route
const CLIENT_ID = process.env.APPLICATION_ID;
const SECRET = process.env.SECRET;
function getState() {
return (crypto.randomBytes(32)).toString('base64');
}
router.get("/authorize", (req, res) => {
if(req.auth.isLoggedIn) {
res.redirect("/authorized");