Index: dealer-service/trunk/grails-app/services/com/lemans/dealer/DealerService.groovy =================================================================== diff -u -r9794 -r10084 --- dealer-service/trunk/grails-app/services/com/lemans/dealer/DealerService.groovy (.../DealerService.groovy) (revision 9794) +++ dealer-service/trunk/grails-app/services/com/lemans/dealer/DealerService.groovy (.../DealerService.groovy) (revision 10084) @@ -252,6 +252,7 @@ } if (criteria.defaultDomainId) { clauses << 'defaultDomainId = :defaultDomainId' } if (criteria.q) { clauses << qClause(criteria) } + if (criteria.dealer) { clauses << dealerClause(criteria) } clauses } @@ -294,6 +295,22 @@ containingQ = "%$q%".toString() } } + + private String dealerClause(criteria) { + expandDealer(criteria) + String clause = '''( + dealerCode LIKE :beginningWithDealer + OR dealerName LIKE :containingDealer''' + clause += '\n)' + clause + } + + private expandDealer(criteria) { + criteria.with { + beginningWithDealer = "$dealer%".toString() + containingDealer = "%$dealer%".toString() + } + } private Map transformDatesToLocalDates(Map data) { data.results = new DateTransformer().transformDatesToLocalDates(LOCAL_DATE_PROPERTIES, data.results) Index: dealer-service/trunk/grails-app/controllers/com/lemans/api/dealer/ApiDealerController.groovy =================================================================== diff -u -r8323 -r10084 --- dealer-service/trunk/grails-app/controllers/com/lemans/api/dealer/ApiDealerController.groovy (.../ApiDealerController.groovy) (revision 8323) +++ dealer-service/trunk/grails-app/controllers/com/lemans/api/dealer/ApiDealerController.groovy (.../ApiDealerController.groovy) (revision 10084) @@ -22,7 +22,7 @@ // FIXME: this blows up when called without a pageSize param - force pagination (quietly ?) - kkrebs def index() { - List filterFields = ['regionId', 'salesmanId', 'dealerStatus', 'classification', 'defaultDomainId'] + List filterFields = ['regionId', 'salesmanId', 'dealerStatus', 'classification', 'defaultDomainId', 'dealer'] Map criteria = common() + pagination() + filters(filterFields) Map data = dealerService.dealerSearch(criteria) renderApi { renderPaginated(data) }