From 8c858779ffadd5a8bfa22c219bd573681f1b7d29 Mon Sep 17 00:00:00 2001 From: Felipe Figueroa Date: Tue, 4 Nov 2014 18:23:46 -0300 Subject: [PATCH 1/2] adds limit parameter, request is json adds offset adds offset adds offset --- js/maps_lib.js | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/js/maps_lib.js b/js/maps_lib.js index 81345f3d..34a4f4fe 100644 --- a/js/maps_lib.js +++ b/js/maps_lib.js @@ -216,23 +216,42 @@ var MapsLib = { MapsLib.searchRadiusCircle = new google.maps.Circle(circleOptions); }, - query: function(selectColumns, whereClause, groupBy, orderBy, callback) { + query: function(selectColumns, whereClause, groupBy, orderBy, offset, limit, callback) { var queryStr = []; queryStr.push("SELECT " + selectColumns); queryStr.push(" FROM " + MapsLib.fusionTableId); // where, group and order clauses are optional - if (whereClause != "" && whereClause != null) + if (whereClause != "" && whereClause != null) { queryStr.push(" WHERE " + whereClause); + } - if (groupBy != "" && groupBy != null) + if (groupBy != "" && groupBy != null) { queryStr.push(" GROUP BY " + groupBy); + } - if (orderBy != "" && orderBy != null) + if (orderBy != "" && orderBy != null) { queryStr.push(" ORDER BY " + orderBy); + } + + if (offset !== "" && offset !== null) { + queryStr.push(" OFFSET " + offset); + } + + if (limit !== "" && limit !== null) { + queryStr.push(" LIMIT " + limit); + } + + var sql = encodeURIComponent(queryStr.join(" ")); - $.ajax({url: "https://www.googleapis.com/fusiontables/v1/query?sql="+sql+"&callback="+callback+"&key="+MapsLib.googleApiKey, dataType: "jsonp"}); + $.ajax({ + url: "https://www.googleapis.com/fusiontables/v1/query?sql="+sql+"&key="+MapsLib.googleApiKey, + dataType: "json" + }).done(function (response) { + if (callback) callback(response); + }); + }, handleError: function(json) { @@ -249,7 +268,9 @@ var MapsLib = { getCount: function(whereClause) { var selectColumns = "Count()"; - MapsLib.query(selectColumns, whereClause, "", "", "MapsLib.displaySearchCount"); + MapsLib.query(selectColumns, whereClause, "", "", "", "", function(response) { + MapsLib.displaySearchCount(response); + }); }, displaySearchCount: function(json) { From e9d3c4f7a0045efa35436e954e91918c5f9db62e Mon Sep 17 00:00:00 2001 From: Felipe Figueroa Date: Wed, 5 Nov 2014 10:37:54 -0300 Subject: [PATCH 2/2] query method receives an object --- js/maps_lib.js | 38 +++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/js/maps_lib.js b/js/maps_lib.js index 34a4f4fe..32e36fba 100644 --- a/js/maps_lib.js +++ b/js/maps_lib.js @@ -216,30 +216,31 @@ var MapsLib = { MapsLib.searchRadiusCircle = new google.maps.Circle(circleOptions); }, - query: function(selectColumns, whereClause, groupBy, orderBy, offset, limit, callback) { + query: function(query_opts, callback) { + var queryStr = []; - queryStr.push("SELECT " + selectColumns); + queryStr.push("SELECT " + query_opts.select); queryStr.push(" FROM " + MapsLib.fusionTableId); // where, group and order clauses are optional - if (whereClause != "" && whereClause != null) { - queryStr.push(" WHERE " + whereClause); + if (query_opts.where && query_opts.where != "") { + queryStr.push(" WHERE " + query_opts.where); } - - if (groupBy != "" && groupBy != null) { - queryStr.push(" GROUP BY " + groupBy); + + if (query_opts.groupBy && query_opts.roupBy != "") { + queryStr.push(" GROUP BY " + query_opts.groupBy); } - - if (orderBy != "" && orderBy != null) { - queryStr.push(" ORDER BY " + orderBy); + + if (query_opts.orderBy && query_opts.orderBy != "" ) { + queryStr.push(" ORDER BY " + query_opts.orderBy); } - - if (offset !== "" && offset !== null) { - queryStr.push(" OFFSET " + offset); + + if (query_opts.offset && query_opts.offset !== "") { + queryStr.push(" OFFSET " + query_opts.offset); } - - if (limit !== "" && limit !== null) { - queryStr.push(" LIMIT " + limit); + + if (query_opts.limit && query_opts.limit !== "") { + queryStr.push(" LIMIT " + query_opts.limit); } @@ -268,7 +269,10 @@ var MapsLib = { getCount: function(whereClause) { var selectColumns = "Count()"; - MapsLib.query(selectColumns, whereClause, "", "", "", "", function(response) { + MapsLib.query({ + select: selectColumns, + where: whereClause + }, function(response) { MapsLib.displaySearchCount(response); }); },