// GENERATED CODE - DO NOT MODIFY BY HAND // ************************************************************************** // Generator: PostgresServiceGenerator // ************************************************************************** import 'dart:async'; import 'package:angel_framework/angel_framework.dart'; import 'package:postgres/postgres.dart'; import 'fruit.dart'; import 'fruit.orm.g.dart'; class FruitService extends Service { final PostgreSQLConnection connection; final bool allowRemoveAll; final bool allowQuery; FruitService(this.connection, {this.allowRemoveAll: false, this.allowQuery: false}); FruitQuery buildQuery(Map params) { var query = new FruitQuery(); if (params['query'] is Map) { query.where.id.equals(params['query']['id']); query.where.treeId.equals(params['query']['tree_id']); query.where.commonName.equals(params['query']['common_name']); query.where.createdAt.equals(params['query']['created_at'] is String ? DateTime.parse(params['query']['created_at']) : params['query']['created_at'] != null ? params['query']['created_at'] is String ? DateTime.parse(params['query']['created_at']) : params['query']['created_at'] : new DateTime.now()); query.where.updatedAt.equals(params['query']['updated_at'] is String ? DateTime.parse(params['query']['updated_at']) : params['query']['updated_at'] != null ? params['query']['updated_at'] is String ? DateTime.parse(params['query']['updated_at']) : params['query']['updated_at'] : new DateTime.now()); } return query; } int toId(id) { if (id is int) { return id; } else { if (id == 'null' || id == null) { return null; } else { return int.parse(id.toString()); } } } Fruit applyData(data) { if (data is Fruit || data == null) { return data; } if (data is Map) { var query = new Fruit(); if (data.containsKey('tree_id')) { query.treeId = data['tree_id']; } if (data.containsKey('common_name')) { query.commonName = data['common_name']; } if (data.containsKey('created_at')) { query.createdAt = data['created_at'] is String ? DateTime.parse(data['created_at']) : data['created_at'] != null ? data['created_at'] is String ? DateTime.parse(data['created_at']) : data['created_at'] : new DateTime.now(); } if (data.containsKey('updated_at')) { query.updatedAt = data['updated_at'] is String ? DateTime.parse(data['updated_at']) : data['updated_at'] != null ? data['updated_at'] is String ? DateTime.parse(data['updated_at']) : data['updated_at'] : new DateTime.now(); } return query; } else throw new AngelHttpException.badRequest(message: 'Invalid data.'); } Future> index([Map params]) { return buildQuery(params).get(connection).toList(); } Future create(data, [Map params]) { return FruitQuery.insertFruit(connection, applyData(data)); } Future read(id, [Map params]) { var query = buildQuery(params); query.where.id.equals(toId(id)); return query.get(connection).first.catchError((_) { new AngelHttpException.notFound( message: 'No record found for ID ' + id.toString()); }); } Future remove(id, [Map params]) { var query = buildQuery(params); query.where.id.equals(toId(id)); return query.delete(connection).first.catchError((_) { new AngelHttpException.notFound( message: 'No record found for ID ' + id.toString()); }); } Future update(id, data, [Map params]) { return FruitQuery.updateFruit(connection, applyData(data)); } Future modify(id, data, [Map params]) async { var query = await read(toId(id), params); if (data is Fruit) { query = data; } if (data is Map) { if (data.containsKey('tree_id')) { query.treeId = data['tree_id']; } if (data.containsKey('common_name')) { query.commonName = data['common_name']; } if (data.containsKey('created_at')) { query.createdAt = data['created_at'] is String ? DateTime.parse(data['created_at']) : data['created_at'] != null ? data['created_at'] is String ? DateTime.parse(data['created_at']) : data['created_at'] : new DateTime.now(); } if (data.containsKey('updated_at')) { query.updatedAt = data['updated_at'] is String ? DateTime.parse(data['updated_at']) : data['updated_at'] != null ? data['updated_at'] is String ? DateTime.parse(data['updated_at']) : data['updated_at'] : new DateTime.now(); } } return await FruitQuery.updateFruit(connection, query); } }