リスト メソッドでは、クライアント側からいくつかのフィルターを渡します。現在、入ってくるパラメーターに基づいて実行される if/else ブロックの長いリストがあります。
これにアプローチするより良い方法があるかどうか疑問に思っていますか?
def list () {
println params
def list = []
if (params["Column1"] != null) {
list = Mymodel.createCriteria().listDistinct {
eq("somecolumn", params["Column1"]);
}
}
else if (params["Column2"] != null) {
list = Mymodel.createCriteria().list {
eq("someothercolumn", params["Column2"]);
}
}
else if (params["filter"] == "failed") {
list = MyModel.createCriteria().list {
eq("status", false);
}
}
return list as JSON
}
以下は、いくつかのリクエストに対して取得しているパラメーターです。
[Column1:somevalue, action:[GET:list], controller:somecontroller]
[Somecolumn:someothervalue, action:[GET:list], controller:somecontroller]
この問題が手に負えなくなる前に解決するために使用できるパターンはありますか