platform/test/models/car.orm.g.dart

224 lines
7.1 KiB
Dart
Raw Normal View History

2017-06-17 16:45:31 +00:00
// GENERATED CODE - DO NOT MODIFY BY HAND
// **************************************************************************
2017-06-18 04:19:05 +00:00
// Generator: PostgresORMGenerator
2017-06-17 16:45:31 +00:00
// Target: class _Car
// **************************************************************************
2017-06-24 21:21:32 +00:00
import 'dart:async';
import 'package:angel_orm/angel_orm.dart';
import 'package:postgres/postgres.dart';
import 'car.dart';
class CarQuery {
final List<String> _and = [];
final List<String> _or = [];
final List<String> _not = [];
final CarQueryWhere where = new CarQueryWhere();
void and(CarQuery other) {
2017-07-09 16:53:35 +00:00
var compiled = other.where.toWhereClause(keyword: false);
2017-06-24 21:21:32 +00:00
if (compiled != null) {
_and.add(compiled);
}
}
void or(CarQuery other) {
2017-07-09 16:53:35 +00:00
var compiled = other.where.toWhereClause(keyword: false);
2017-06-24 21:21:32 +00:00
if (compiled != null) {
_or.add(compiled);
}
}
void not(CarQuery other) {
2017-07-09 16:53:35 +00:00
var compiled = other.where.toWhereClause(keyword: false);
2017-06-24 21:21:32 +00:00
if (compiled != null) {
_not.add(compiled);
}
}
2017-06-30 22:39:17 +00:00
String toSql() {
var buf = new StringBuffer('SELECT * FROM "cars"');
var whereClause = where.toWhereClause();
if (whereClause != null) {
buf.write(' ' + whereClause);
}
2017-07-09 16:53:35 +00:00
if (_and.isNotEmpty) {
buf.write(' AND (' + _and.join(',') + ')');
}
if (_or.isNotEmpty) {
buf.write(' OR (' + _or.join(',') + ')');
}
if (_not.isNotEmpty) {
buf.write(' NOT (' + _not.join(',') + ')');
}
2017-06-30 22:39:17 +00:00
buf.write(';');
return buf.toString();
}
2017-06-24 21:21:32 +00:00
static Car parseRow(List row) {
return new Car.fromJson({
'id': row[0].toString(),
'make': row[1],
'description': row[2],
2017-07-09 16:53:35 +00:00
'family_friendly': row[3],
'recalled_at': row[4],
'created_at': row[5],
'updated_at': row[6]
2017-06-24 21:21:32 +00:00
});
}
Stream<Car> get(PostgreSQLConnection connection) {
StreamController<Car> ctrl = new StreamController<Car>();
connection.query(toSql()).then((rows) {
rows.map(parseRow).forEach(ctrl.add);
ctrl.close();
}).catchError(ctrl.addError);
return ctrl.stream;
}
static Future<Car> getOne(int id, PostgreSQLConnection connection) {
2017-06-30 22:39:17 +00:00
return connection.query('SELECT * FROM "cars" WHERE "id" = @id;',
2017-06-24 21:21:32 +00:00
substitutionValues: {'id': id}).then((rows) => parseRow(rows.first));
}
2017-07-09 16:53:35 +00:00
Stream<Car> update(PostgreSQLConnection connection,
{String make,
String description,
bool familyFriendly,
DateTime recalledAt,
DateTime createdAt,
2017-07-09 16:53:35 +00:00
DateTime updatedAt}) {
var buf = new StringBuffer(
'UPDATE "cars" SET ("make", "description", "family_friendly", "recalled_at", "created_at", "updated_at") = (@make, @description, @familyFriendly, @recalledAt, @createdAt, @updatedAt) ');
var whereClause = where.toWhereClause();
if (whereClause == null) {
buf.write('WHERE "id" = @id');
} else {
buf.write(whereClause);
}
var __ormNow__ = new DateTime.now();
2017-07-09 16:53:35 +00:00
var ctrl = new StreamController<Car>();
connection.query(
buf.toString() +
' RETURNING ("id", "make", "description", "family_friendly", "recalled_at", "created_at", "updated_at");',
substitutionValues: {
'make': make,
'description': description,
'familyFriendly': familyFriendly,
'recalledAt': recalledAt,
'createdAt': createdAt != null ? createdAt : __ormNow__,
2017-07-09 16:53:35 +00:00
'updatedAt': updatedAt != null ? updatedAt : __ormNow__
}).then((rows) {
rows.map(parseRow).forEach(ctrl.add);
ctrl.close();
}).catchError(ctrl.addError);
return ctrl.stream;
}
Stream<Car> delete(PostgreSQLConnection connection) {
var query = 'DELETE FROM "cars" RETURNING ("id", "make", "description", "family_friendly", "recalled_at", "created_at", "updated_at");';
StreamController<Car> ctrl = new StreamController<Car>();
connection.execute(query).then((rows) {
print('Rows: $rows');
rows.map(parseRow).forEach(ctrl.add);
ctrl.close();
}).catchError(ctrl.addError);
return ctrl.stream;
}
2017-06-24 21:21:32 +00:00
2017-07-09 16:53:35 +00:00
static Future<Car> deleteOne(int id, PostgreSQLConnection connection) async {
var __ormBeforeDelete__ = await CarQuery.getOne(id, connection);
2017-07-09 16:53:35 +00:00
var result = await connection.execute('DELETE FROM "cars" WHERE id = @id;',
substitutionValues: {'id': id});
if (result != 1) {
new StateError('DELETE query deleted ' +
result +
' row(s), instead of exactly 1 row.');
}
return __ormBeforeDelete__;
}
2017-06-24 21:21:32 +00:00
static Future<Car> insert(PostgreSQLConnection connection,
{String make,
2017-06-24 21:21:32 +00:00
String description,
bool familyFriendly,
DateTime recalledAt,
DateTime createdAt,
DateTime updatedAt}) async {
2017-06-30 22:39:17 +00:00
var __ormNow__ = new DateTime.now();
2017-07-09 16:53:35 +00:00
var nRows = await connection.execute(
'INSERT INTO "cars" ("make", "description", "family_friendly", "recalled_at", "created_at", "updated_at") VALUES (@make, @description, @familyFriendly, @recalledAt, @createdAt, @updatedAt);',
2017-06-24 21:21:32 +00:00
substitutionValues: {
'make': make,
'description': description,
'familyFriendly': familyFriendly,
'recalledAt': recalledAt,
2017-06-30 22:39:17 +00:00
'createdAt': createdAt != null ? createdAt : __ormNow__,
'updatedAt': updatedAt != null ? updatedAt : __ormNow__
2017-06-24 21:21:32 +00:00
});
2017-07-09 16:53:35 +00:00
if (nRows < 1) {
throw new StateError('Insertion into "cars" table failed.');
}
var currVal = await connection.query(
'SELECT * FROM "cars" WHERE id = currval(pg_get_serial_sequence(\'cars\', \'id\'));');
return parseRow(currVal[0]);
2017-06-24 21:21:32 +00:00
}
static Stream<Car> getAll(PostgreSQLConnection connection) =>
new CarQuery().get(connection);
}
class CarQueryWhere {
2017-07-09 16:53:35 +00:00
final NumericSqlExpressionBuilder<int> id =
new NumericSqlExpressionBuilder<int>();
2017-06-24 21:21:32 +00:00
final StringSqlExpressionBuilder make = new StringSqlExpressionBuilder();
final StringSqlExpressionBuilder description =
new StringSqlExpressionBuilder();
final BooleanSqlExpressionBuilder familyFriendly =
new BooleanSqlExpressionBuilder();
final DateTimeSqlExpressionBuilder recalledAt =
new DateTimeSqlExpressionBuilder('recalled_at');
final DateTimeSqlExpressionBuilder createdAt =
new DateTimeSqlExpressionBuilder('created_at');
final DateTimeSqlExpressionBuilder updatedAt =
new DateTimeSqlExpressionBuilder('updated_at');
2017-07-09 16:53:35 +00:00
String toWhereClause({bool keyword}) {
2017-06-24 21:21:32 +00:00
final List<String> expressions = [];
if (id.hasValue) {
2017-06-30 22:39:17 +00:00
expressions.add('"id" ' + id.compile());
2017-06-24 21:21:32 +00:00
}
if (make.hasValue) {
2017-06-30 22:39:17 +00:00
expressions.add('"make" ' + make.compile());
2017-06-24 21:21:32 +00:00
}
if (description.hasValue) {
2017-06-30 22:39:17 +00:00
expressions.add('"description" ' + description.compile());
2017-06-24 21:21:32 +00:00
}
if (familyFriendly.hasValue) {
2017-06-30 22:39:17 +00:00
expressions.add('"family_friendly" ' + familyFriendly.compile());
2017-06-24 21:21:32 +00:00
}
if (recalledAt.hasValue) {
expressions.add(recalledAt.compile());
}
if (createdAt.hasValue) {
expressions.add(createdAt.compile());
}
if (updatedAt.hasValue) {
expressions.add(updatedAt.compile());
}
2017-07-09 16:53:35 +00:00
return expressions.isEmpty
? null
: ((keyword != false ? 'WHERE ' : '') + expressions.join(' AND '));
2017-06-24 21:21:32 +00:00
}
}