def get(self): from services.github import GithubClient date = self.request.get('date') if date: date = tools.fromISODate(date).date() else: date = (datetime.today() - timedelta(days=1)).date() users = User.SyncActive('github') res = {} td_put = [] for user in users: gh_client = GithubClient(user) logging.debug("Running SyncGithub cron for %s on %s..." % (user, date)) if gh_client._can_run(): commits = gh_client.get_contributions_on_day(date) if commits is not None: td = TrackingDay.Create(user, date) td.set_properties({'commits': commits}) td_put.append(td) res = td.json() else: logging.debug("Github updater can't run") if td_put: ndb.put_multi(td_put) self.json_out(res, debug=True)
def get(self): from services.github import GithubClient last_date = self.request.get('date') if last_date: last_date = tools.fromISODate(last_date) else: last_date = (datetime.today() - timedelta(days=1)) users = User.SyncActive('github') res = {} td_put = [] for user in users: gh_client = GithubClient(user) if gh_client._can_run(): date_range = [(last_date - timedelta(days=x)).date() for x in range(self.GH_COMMIT_OVERLAP)] logging.debug("Running SyncGithub cron for %s on %s..." % (user, date_range)) commits_dict = gh_client.get_contributions_on_date_range( date_range) if commits_dict is not None: for date, n_commits in commits_dict.items(): td = TrackingDay.Create(user, date) td.set_properties({'commits': n_commits}) td_put.append(td) else: logging.debug("Github updater can't run") if td_put: ndb.put_multi(td_put) self.json_out(res)
def update(self, d): ''' Update a single TrackingDay() object with properties defined via JSON key(str) -> value(str) ''' date = None _date = self.request.get('date') if _date: date = tools.fromISODate(_date) data_json = tools.getJson(self.request.get('data')) # JSON td = TrackingDay.Create(self.user, date) # Get or create if data_json: td.set_properties(data_json) td.put() self.success = True self.set_response({'tracking_day': td.json() if td else None})
def get(self): from services.gfit import FitClient users = User.SyncActive('gfit') res = {} date = (datetime.today() - timedelta(days=1)).date() for user in users: fit_enabled = bool(user.get_integration_prop('gfit_activities')) logging.debug("Running SyncFromGoogleFit cron for %s on %s..." % (user, date)) if fit_enabled: fit_client = FitClient(user) if fit_client: var_durations = fit_client.aggregate_activity_durations( date) logging.debug(var_durations) if var_durations: td = TrackingDay.Create(user, date) td.set_properties(var_durations) td.put() else: logging.debug("Fit not authorized") self.json_out(res, debug=True)