redstone_rethinkdb 0.0.185
redstone_rethinkdb: ^0.0.185 copied to clipboard
MVC Plugin for Redstone
Redstone RethinkDb Plugin #
Basic #
Setup 1 #
Use rethinkPlugin instead of getMapperPlugin to get a Connection injected to your routes.
import 'package:redstone/server.dart' as app;
import 'package:rethinkdb_driver/rethinkdb_driver.dart';
import 'package:redstone_rethinkdb/redstone_rethinkdb.dart';
final Rethinkdb r = new Rethinkdb();
main () {
RethinkDbManager manager = new RethinkDbManager("someHost", "someDatabase");
app.addPlugin(rethinkPlugin(manager));
...
}
Useage 1 #
By convention in Rethinkdb the connection is named and in Redstone is named dbConn, therefore you should specify "dbConn" inside @app.Attr and set the name of the variable to conn.
@app.Route ('/someRoute')
someRoute (@app.Attr("dbConn") Connection conn) async {
var result = await r
.table ('someTable')
//build your query as you like
.run(conn);
...
}
Setup 2 #
You can also use the normal getMapperPlugin, but you will instead get injected a RethinkConnection.
import 'package:redstone/server.dart' as app;
import 'package:redstone_mapper/plugin.dart';
import 'package:rethinkdb_driver/rethinkdb_driver.dart';
import 'package:redstone_rethinkdb/redstone_rethinkdb.dart';
final Rethinkdb r = new Rethinkdb();
main () {
RethinkDbManager manager = new RethinkDbManager("someHost", "someDatabase");
app.addPlugin(getMapperPlugin(manager));
...
}
Useage 2 #
You can tap into the dbConn attribute without naming it in Attr (be sure to name the variable ``dbConn) but you have to access the ConnectionthroughdbConn.conn`.
@app.Route ('/someRoute')
someRoute (@app.Attr() RethinkConnection dbConn) async {
var result = await r
.table ('someTable')
//build your query as you like
.run(dbConn.conn);
...
}
RethinkServices #
Use RethinkServices<T> to better structure your code and avoid error when repetively specifying the same table. It also
includes some helper methods for basic CRUD operations.