Skip to content

Instantly share code, notes, and snippets.

@laser
laser / sad_curl.json
Last active August 29, 2015 14:00
An Unsuccessful POST to Contact Service pt. 2
{
"first_name":["can't be blank"],
"last_name":["can't be blank"]
}
@laser
laser / contact.rb
Created April 29, 2014 22:01
The Contact Model
class Contact < ActiveRecord::Base
validates :full_name, presence: true
validates :alias, presence: true
validates :importance_level, inclusion: {
in: [100, 200, 300]
}
validates :age, numericality: {
@laser
laser / api_paths.txt
Last active August 29, 2015 14:00
API Paths Table
| Verb | URI Pattern |
| -------| ------------------------------------------- |
| GET | http://example.com/api/v1/contacts.json |
| POST | http://example.com/api/v1/contacts.json |
| GET | http://example.com/api/v1/contacts/:id.json |
| PATCH | http://example.com/api/v1/contacts/:id.json |
| DELETE | http://example.com/api/v1/contacts/:id.json |
@laser
laser / success_curl.json
Last active August 29, 2015 14:00
A Successful POST to Contact Service pt. 2
[
{
"id":1,
"age":32,
"importance_level":100,
"alias":"hippipp",
"full_name":"S-H, Erin",
"url":"http://example.com/api/v1/contacts/1.json"
}
]
@laser
laser / barrister.js
Created April 30, 2014 17:50
Barrister.js Node Server
// server
var express = require('express')
, fs = require('fs')
, http = require('http')
, path = require('path')
, barrister = require('barrister')
, store = require("./store").store
, idl = JSON.parse(fs.readFileSync("./todo_manager.json").toString());
@laser
laser / rpc_auth.js
Created April 30, 2014 21:21
Barrister RPC Client w/Authentication Header
// Barrister Client Initialization
function initApp(callback) {
var client = Barrister.httpClient({
'endpoint': '/todos',
'interfaces': ['TodoManager']
});
client.loadContract(function() {
var proxy = client.proxy('TodoManager');
@laser
laser / output.sh
Created April 30, 2014 22:53
pip install barrister
[dev]$ pip install barrister
Downloading/unpacking barrister
Downloading barrister-0.1.6.tar.gz
Running setup.py (path:/private/var/folders/lb/v0d4zb6j6z39m7vfzc4vb47h0000gn/T/pip_build_erinswenson-healey/barrister/setup.py) egg_info for package barrister
Downloading/unpacking Markdown (from barrister)
Downloading Markdown-2.4.tar.gz (260kB): 260kB downloaded
Running setup.py (path:/private/var/folders/lb/v0d4zb6j6z39m7vfzc4vb47h0000gn/T/pip_build_erinswenson-healey/Markdown/setup.py) egg_info for package Markdown
Downloading/unpacking plex (from barrister)
@laser
laser / pip_output.log
Created April 30, 2014 22:54
pip install barrister
[dev]$ pip install barrister
Downloading/unpacking barrister
Downloading barrister-0.1.6.tar.gz
Running setup.py (path:/private/var/folders/lb/v0d4zb6j6z39m7vfzc4vb47h0000gn/T/pip_build_erinswenson-healey/barrister/setup.py) egg_info for package barrister
Downloading/unpacking Markdown (from barrister)
Downloading Markdown-2.4.tar.gz (260kB): 260kB downloaded
Running setup.py (path:/private/var/folders/lb/v0d4zb6j6z39m7vfzc4vb47h0000gn/T/pip_build_erinswenson-healey/Markdown/setup.py) egg_info for package Markdown
Downloading/unpacking plex (from barrister)
@laser
laser / python_server_errors.py
Last active August 29, 2015 14:00
Broadcasting RpcErrors through Barrister w/Python
#!/usr/bin/env python
import barrister
import sys
from bottle import run, post, request
from store import Store, RecordNotFound, UserDataInvalid, MaxTodosExceeded
from functools import wraps
def guard(*exceptions):
errors = {
@laser
laser / crap.py
Created May 2, 2014 20:13
CALL SUPER GODADMNIT
#!/usr/bin/env python
import barrister
from bottle import run, post, request
from store import Store, RecordNotFound, UserDataInvalid, MaxTodosExceeded
from functools import wraps
import sys
import code
class TodoManager(object):