Page 1 of 3

Limit service return by date

Posted: Sun Jun 30, 2013 8:03 am
by Joe Bohen

Hi,

I have a Appery rest service which populates a list and I wish to limit the records returned from the service to only those that have been created in the last 30 days. I am already using criteria in a where clause in the service to limit the list using json. Can you give me an example of how to achieve this please

where clause json:
var D = localStorage.getItem('driver');
return '{ "driver" : "' + D + '"}';

Regards,
Joe


Limit service return by date

Posted: Sun Jun 30, 2013 11:50 am
by Illya Stepanov

Hi Joe - we will look for the solution.


Limit service return by date

Posted: Mon Jul 01, 2013 9:35 am
by Joe Bohen

Hi Illya, Any luck with this request.


Limit service return by date

Posted: Mon Jul 01, 2013 9:37 am
by Maryna Brodina

Hello! Not yet, working on it.


Limit service return by date

Posted: Mon Jul 01, 2013 10:02 am
by Joe Bohen

Thanks.


Limit service return by date

Posted: Mon Jul 01, 2013 10:20 am
by Maryna Brodina

To make request to server to sort records for the last 30 days you have to send request on server like this:
code{"createdAt":{"$gte":{"$date":"2013-06-01T17:55:54.129Z"}}}/code
to do that add the following JS code:
codevar d = new Date();
d.setDate(d.getDate() - 30 );
var dateStr = d.toISOString();
return '{"createdAt":{"$gte":{"$date":"' + dateStr + '"}}}'/code
or if you already have data in "where" then add it separated by comma:
codevar driver = localStorage.getItem('driver');
var d = new Date();
d.setDate(d.getDate() - 30 );
var dateStr = d.toISOString();
return '{ "driver" : "' + driver + '", "_createdAt":{"$gte":{"$date":"' + dateStr + '"}}}';/code


Limit service return by date

Posted: Mon Jul 01, 2013 10:56 am
by Joe Bohen

Thanks Marina that is exactly what I wanted.
Regards,
Joe


Limit service return by date

Posted: Sun Jul 21, 2013 12:14 am
by Tommy B

Marina, I did get your code to work as described above. Thanks.... Now, I want to sort records between two dates that are set from two date picker selections. I did the following code but doesnt seem to work.
codevar s = Appery ('startDate[type="text"]').val();
var e = Appery ('endDate[type="text"]').val();
var sString = s.toISOString();
var eString = e.ISOString();
return '{"_createdAt":{"gte":"&date":"' + sString + '","lte":"$date":"' + eString + '"}}'
/code


Limit service return by date

Posted: Sun Jul 21, 2013 1:54 am
by Igor

Hello,

Please try to replace "$gte" and "$lte" instead of "gte" and "lte".


Limit service return by date

Posted: Sun Jul 21, 2013 4:17 am
by Tommy B

Ok i added $gte and $lte and still does not work. I also have my date pickers set to yy/mm/dd. Here is the code as I have it now.

codevar s = Appery ('startDate').val();
var e = Appery ('endDate').val();
var sString = s.toISOString();
var eString = e.toISOString();
return '{"_createdAt":{"$gte":"&date":"' + sString + '", "$lte":"$date":"' + eString + '"}}'
/code