jaguar_mongo 1.2.5 copy "jaguar_mongo: ^1.2.5" to clipboard
jaguar_mongo: ^1.2.5 copied to clipboard

outdatedDart 1 only

Mongo interceptor for jaguar

example/main.dart

library jaguar_mongo.example;

import 'dart:io';
import 'dart:async';
import 'dart:convert';
import 'package:http/http.dart';
import 'package:jaguar_client/jaguar_client.dart';
import 'package:jaguar/jaguar.dart';
import 'package:jaguar_reflect/jaguar_reflect.dart';
import 'package:mongo_dart/mongo_dart.dart';

import 'package:jaguar_mongo/jaguar_mongo.dart';

final client = new Client();

/// Mongo interceptor
MongoDb mongoDb(Context ctx) => new MongoDb('mongodb://localhost:27017/test');

@Api(path: '/api/todo')
@WrapOne(mongoDb) // Wrap the mongo interceptor around a route
class TodoApi {
  @Get()
  Future<String> fetchAll(Context ctx) async {
    // Get the Db instance from the interceptor
    final Db db = ctx.getInterceptorResult(MongoDb);
    // Use Db to fetch Todo items
    final res = await (await db.collection('todo').find()).toList();
    return await JSON.encode(res);
  }

  @Post()
  Future<String> add(Context ctx) async {
    final Map body = await ctx.req.bodyAsJsonMap();
    final Db db = ctx.getInterceptorResult(MongoDb);
    await db.collection('todo').insert(body);
    // Use Db to fetch Todo items
    final res = await (await db.collection('todo').find()).toList();
    return await JSON.encode(res);
  }
}

Future server() async {
  final server = new Jaguar();
  server.addApi(reflect(new TodoApi()));
  await server.serve();
}

Future doClient() async {
  final url = 'http://localhost:8080/api/todo';
  final jClient = new JsonClient(client);

  final res = (await jClient.get(url)).deserialize();
  print(res);
  print((await jClient.post(url, body: {'text': 'Laundry', 'time': 'Today'}))
      .deserialize());
  print((await jClient.get(url)).deserialize());
}

main(List<String> args) async {
  await Future.wait([server(), doClient()]);
  exit(0);
}
0
likes
0
pub points
0%
popularity

Publisher

unverified uploader

Mongo interceptor for jaguar

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

connection_pool, jaguar, mongo_dart

More

Packages that depend on jaguar_mongo