Skip to content

Instantly share code, notes, and snippets.

View ThomasLocke's full-sized avatar

Thomas Løcke ThomasLocke

View GitHub Profile
@ThomasLocke
ThomasLocke / gist:6e62e38876b31815f69d
Created October 12, 2014 14:48
shelfmiddleware.checktoken.dart
library shelfmiddleware.checktoken;
import 'headers.dart';
import 'token.dart';
import 'package:shelf/shelf.dart' as shelf;
final shelf.Middleware checkToken = shelf.createMiddleware(requestHandler: _passOrForbid);
shelf.Response _passOrForbid(shelf.Request request) {
@ThomasLocke
ThomasLocke / gist:5f5335382c40d997fbce
Created October 12, 2014 14:11
shelfmiddleware.cors.dart
library shelfmiddleware.cors;
import 'headers.dart';
import 'package:shelf/shelf.dart' as shelf;
shelf.Middleware addCORSHeaders = shelf.createMiddleware(requestHandler: _options, responseHandler: _cors);
shelf.Response _options(shelf.Request request) => (request.method == 'OPTIONS') ?
new shelf.Response.ok(null, headers: CORSHeader) : null;
@ThomasLocke
ThomasLocke / gist:4d4a872406717d7da97e
Created October 12, 2014 13:54
shelfmiddleware.main()
import 'dart:io';
import '../lib/middleware.dart';
import '../lib/cors.dart';
import '../lib/routes.dart';
import 'package:args/args.dart';
import 'package:shelf/shelf.dart' as shelf;
import 'package:shelf/shelf_io.dart' as io;
@ThomasLocke
ThomasLocke / gist:d48a98137e1588b91442
Created October 12, 2014 13:47
shelfmiddleware - pubspec.yaml
name: shelfMiddleware
description: Testing how to do some simple stuff with Shelf Middleware
dependencies:
args: any
shelf: any
shelf_route: any
@ThomasLocke
ThomasLocke / gist:8d196d5bb4ae4a4b9568
Created September 29, 2014 15:59
shelftest.handler.test.dart output
<?xml version="1.0" encoding="UTF-8" ?>
<testsuite name="All tests" hostname="hostname" tests="12" failures="0" errors="0" skipped="0" time="0.042" timestamp="2014-09-29 17:58:10.534">
<testcase id="1" name="Testing unknown route GET /unknown -&gt; return 404 Not Found" time="0.019">
</testcase>
<testcase id="2" name="Testing unknown route PUT /user/1 -&gt; return 404 Not Found" time="0.001">
</testcase>
<testcase id="3" name="Testing unknown route POST /user/1/name -&gt; return 404 Not Found" time="0.0">
</testcase>
<testcase id="4" name="Testing route GET /user/42 -&gt; return 404 Not Found" time="0.004">
</testcase>
@ThomasLocke
ThomasLocke / gist:0dcfb5769dde6c9bea76
Created September 29, 2014 15:41
shelftest.handler_test.dart
import 'dart:async';
import 'dart:convert';
import 'dart:io' show HttpStatus;
import '../lib/routes.dart';
import 'package:junitconfiguration/junitconfiguration.dart';
import 'package:shelf/shelf.dart' as shelf;
import 'package:shelf_exception_response/exception.dart';
import 'package:shelf_path/shelf_path.dart';
@ThomasLocke
ThomasLocke / gist:0ac5dca046c00ce25f49
Created September 29, 2014 14:00
shelftest.handlers.dart
library shelftest.handlers;
import 'dart:async';
import 'dart:convert';
import 'dart:io' show HttpHeaders;
import 'database.dart';
import 'user.dart';
import 'package:shelf_exception_response/exception.dart';
@ThomasLocke
ThomasLocke / gist:c8c0e44eaac371051aff
Created September 28, 2014 16:09
shelftest.routes.dart
library shelftest.routes;
import 'handlers.dart' as handler;
import 'package:shelf_route/shelf_route.dart';
Router routes = new Router()
..get('/user/{userid}', handler.getUser)
..put('/user/{userid}/name', handler.setUserName);
@ThomasLocke
ThomasLocke / gist:d10a26d2fe953d5f8f01
Created September 27, 2014 15:36
shelftest.pubspec.yaml
name: shelfTest
description: Just testing Shelf
dependencies:
junitconfiguration: any
shelf: any
shelf_exception_response: any
shelf_route: any
@ThomasLocke
ThomasLocke / gist:ec0c23bca4b48718782f
Created September 27, 2014 15:29
shelftest.main()
import 'dart:io';
import '../lib/routes.dart';
import 'package:shelf/shelf.dart' as shelf;
import 'package:shelf/shelf_io.dart' as io;
import 'package:shelf_exception_response/exception_response.dart';
void main() {
final shelf.Handler handler = const shelf.Pipeline()