2017-02-23 02:48:08 +00:00
|
|
|
import 'generator.dart';
|
|
|
|
import 'package:code_builder/code_builder.dart';
|
|
|
|
import 'package:inflection/inflection.dart';
|
2017-08-08 01:45:37 +00:00
|
|
|
import '../make/maker.dart';
|
2017-02-23 02:48:08 +00:00
|
|
|
|
|
|
|
class MongoServiceGenerator extends ServiceGenerator {
|
|
|
|
const MongoServiceGenerator() : super('MongoDB');
|
|
|
|
|
2017-08-08 01:45:37 +00:00
|
|
|
@override
|
|
|
|
List<MakerDependency> get dependencies =>
|
|
|
|
const [const MakerDependency('angel_mongo', '^1.0.0')];
|
|
|
|
|
2017-04-26 13:21:25 +00:00
|
|
|
@override
|
|
|
|
bool get createsModel => false;
|
|
|
|
|
2017-02-23 02:48:08 +00:00
|
|
|
@override
|
2018-07-14 22:12:12 +00:00
|
|
|
void applyToConfigureServer(MethodBuilder configureServer, BlockBuilder block,
|
|
|
|
String name, String lower) {
|
|
|
|
configureServer.requiredParameters.add(new Parameter((b) => b
|
|
|
|
..name = 'db'
|
|
|
|
..type = refer('Db')));
|
2017-02-23 02:48:08 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
@override
|
|
|
|
void applyToLibrary(LibraryBuilder library, String name, String lower) {
|
2018-07-14 22:12:12 +00:00
|
|
|
library.directives.addAll([
|
|
|
|
new Directive.import('package:angel_mongo/angel_mongo.dart'),
|
|
|
|
new Directive.import('package:mongo_dart/mongo_dart.dart'),
|
2017-10-20 01:06:15 +00:00
|
|
|
]);
|
2017-02-23 02:48:08 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
@override
|
2018-07-14 22:12:12 +00:00
|
|
|
Expression createInstance(
|
2017-02-23 02:48:08 +00:00
|
|
|
MethodBuilder methodBuilder, String name, String lower) {
|
2018-07-14 22:12:12 +00:00
|
|
|
return refer('MongoService').newInstance([
|
|
|
|
refer('db').property('collection').call([literal(pluralize(lower))])
|
2017-02-23 02:48:08 +00:00
|
|
|
]);
|
|
|
|
}
|
|
|
|
}
|