Package nz.org.winters.appspot.acrareporter.server

Source Code of nz.org.winters.appspot.acrareporter.server.DailyCountsGetters

package nz.org.winters.appspot.acrareporter.server;

import java.text.DateFormat;
import java.text.ParseException;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;

import nz.org.winters.appspot.acrareporter.store.DailyCounts;

import com.googlecode.objectify.ObjectifyService;

public class DailyCountsGetters
{
  public static DailyCounts getToday(Long owner)
  {
    return getDate(owner, null);

  }

  public static DailyCounts getDate(Long owner, Date datein)
  {
    datein = removeTimeFromDate(datein);

    DailyCounts counts = ObjectifyService.ofy().load().type(DailyCounts.class).filter("Owner", owner).filter("date", datein).first().now();
    if (counts == null)
    {
      counts = new DailyCounts();
      counts.Owner = owner;
      counts.date = datein;
    }
    return counts;
  }

  public static DailyCounts getToday(String package_name)
  {
    return getDate(package_name, null);

  }

  // want to remove any time zone informaiton, just get day month year utc.
  public static Date removeTimeFromDate(Date datein)
  {
    if (datein == null)
    {
      datein = new Date();
    }
    DateFormat dfm = DateFormat.getDateInstance(DateFormat.SHORT);
    String df = dfm.format(datein);
    Date newdate;
    try
    {
      newdate = dfm.parse(df);
    } catch (ParseException e)
    {

      newdate = datein;
    }
    return newdate;
  }

  public static DailyCounts getDate(String package_name, Date datein)
  {

    datein = removeTimeFromDate(datein);

    DailyCounts counts = ObjectifyService.ofy().load().type(DailyCounts.class).filter("PACKAGE_NAME", package_name).filter("date", datein).first().now();
    if (counts == null)
    {
      counts = new DailyCounts();
      counts.PACKAGE_NAME = package_name;
      counts.date = datein;
    }
    return counts;
  }

  public static List<DailyCounts> getAllUsersDaysBack(int daysBack)
  {
    Calendar yesterday = GregorianCalendar.getInstance();
    yesterday.set(Calendar.HOUR, 0);
    yesterday.set(Calendar.MINUTE, 0);
    yesterday.set(Calendar.SECOND, 0);
    yesterday.set(Calendar.MILLISECOND, 0);

    yesterday.add(Calendar.DAY_OF_MONTH, -daysBack);
    Date yd = removeTimeFromDate(yesterday.getTime());
    return ObjectifyService.ofy().load().type(DailyCounts.class).filter("PACKAGE_NAME", null).filter("date >=", yd).list();
  }

  public static List<DailyCounts> getUserDaysBack(Long owner, int daysBack)
  {
    Calendar yesterday = GregorianCalendar.getInstance();
    yesterday.set(Calendar.HOUR, 0);
    yesterday.set(Calendar.MINUTE, 0);
    yesterday.set(Calendar.SECOND, 0);
    yesterday.set(Calendar.MILLISECOND, 0);

    yesterday.add(Calendar.DAY_OF_MONTH, -daysBack);
    Date yd = removeTimeFromDate(yesterday.getTime());
    return ObjectifyService.ofy().load().type(DailyCounts.class).filter("Owner",owner).filter("PACKAGE_NAME",null).filter("date >=", yd).list();
  }

  public static List<DailyCounts> getAllUsersYesterday()
  {
    return getAllUsersDaysBack(1);
  }

  public static List<DailyCounts> getAllUserPackagesYesterday(Long owner)
  {
    return getAllUserPackagesDaysBack(owner, 1);
  }

  public static List<DailyCounts> getAllUserPackagesDaysBack(Long owner, int daysBack)
  {
    Calendar yesterday = GregorianCalendar.getInstance();
    yesterday.set(Calendar.HOUR, 0);
    yesterday.set(Calendar.MINUTE, 0);
    yesterday.set(Calendar.SECOND, 0);
    yesterday.set(Calendar.MILLISECOND, 0);

    yesterday.add(Calendar.DAY_OF_MONTH, -daysBack);
    Date yd = removeTimeFromDate(yesterday.getTime());
   
   
    List<String> packageNames = ServerOnlyUtils.getPackageNames(owner);
   
    return ObjectifyService.ofy().load().type(DailyCounts.class).filter("PACKAGE_NAME IN", packageNames).filter("date >=", yd).list();
  }

  public static List<DailyCounts> getPackageDaysBack(String packageName, int daysBack)
  {
    Calendar yesterday = GregorianCalendar.getInstance();
    yesterday.set(Calendar.HOUR, 0);
    yesterday.set(Calendar.MINUTE, 0);
    yesterday.set(Calendar.SECOND, 0);
    yesterday.set(Calendar.MILLISECOND, 0);

    yesterday.add(Calendar.DAY_OF_MONTH, -daysBack);
    Date yd = removeTimeFromDate(yesterday.getTime());
   
    return ObjectifyService.ofy().load().type(DailyCounts.class).filter("PACKAGE_NAME", packageName).filter("date >=", yd).list();
 
 
}
TOP

Related Classes of nz.org.winters.appspot.acrareporter.server.DailyCountsGetters

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.