def update_map_data(): users = User.objects(access_token__exists=True) for user in users: new_data = m.update_storyline(user.user_id) tries = 0 while new_data.get("error", None) != None and tries < MAX_TRIES: print(new_data.get("error")) if new_data["error"] == "Rate limited": time.sleep(60) new_data = m.update_storyline(user.user_id) elif new_data["error"] == "Invalid access token": params = { "grant_type": "refresh_token", "refresh_token": user.refresh_token, "client_id": app.config["MOVES_PUBLIC"], "client_secret": app.config["MOVES_PRIVATE"] } new_token = moves.moves_auth("access_token", params) if new_token.status_code == requests.codes.ok: user.access_token = new_token.json()["access_token"] user.refresh_token = new_token.json()["refresh_token"] new_data = m.update_storyline(user.user_id) tries+= 1 if new_data.get("error", None) != None: if new_data["error"] == "Invalid access token": user.update(unset__access_token).update(unset__refresh_token) elif new_data != user.days and new_data != None: user.days = new_data user.last_updated = datetime.datetime.now() user.save()
def get_auth_token(): code = request.args.get("code") params = { "grant_type": "authorization_code", "code": code, "client_id": app.config["MOVES_PUBLIC"], "client_secret": app.config["MOVES_PRIVATE"], } auth_token_request = moves.moves_auth("access_token", params) try: user_id = auth_token_request.json()["user_id"] access_token = auth_token_request.json()["access_token"] refresh_token = auth_token_request.json()["refresh_token"] store_access_tokens(user_id, access_token, refresh_token) session["moves_access_token"] = access_token session["user_id"] = auth_token_request.json()["user_id"] return redirect(url_for("display_survey")) except KeyError: return "Something wrong happened"