def fillOdenkiUserByTwitterUser(): try: odenki_user = OdenkiUser.loadFromSession() assert isinstance(odenki_user, OdenkiUser) return except EntityNotFound: twitter_user = TwitterUser.loadFromSession() assert isinstance(twitter_user, TwitterUser) odenki_user = OdenkiUser.getByOdenkiId(twitter_user.odenkiId) assert isinstance(odenki_user, OdenkiUser) odenki_user.saveToSession()
def fillTwitterUser(): """fillTwitterUser() loads TwitterUser into the session if OdenkiUser is already in the session and fill TwitterUser.odenkiId if it does not exist. It also loads OdenkiUser into the session if TwitterUser is already in it and TwitterUser.odenkiId exists. """ odenki_user = OdenkiUser.loadFromSession() assert isinstance(odenki_user, OdenkiUser) try: twitter_user = TwitterUser.loadFromSession() except EntityNotFound: twitter_user = TwitterUser.getByOdenkiId(odenki_user.odenkiId) assert isinstance(twitter_user, TwitterUser) if twitter_user.odenkiId is None: twitter_user.odenkiId = odenki_user.odenkiId twitter_user.put() # put TwitterUser if odenkiId is updated twitter_user.saveToSession()
def GET(self, jrequest, jresponse): assert isinstance(jrequest, JsonRpcRequest) assert isinstance(jresponse, JsonRpcResponse) jresponse.setId() jresponse.setRedirectTarget("/api/Twitter") debug(jrequest.request) implicit_flow = ImplicitFlow() implicit_flow.setAccessToken(jrequest.request) implicit_flow.saveToSession() try: twitter_user = TwitterUser.loadFromSession(self) if twitter_user.twitterId != implicit_flow.twitterId: raise MixedAuthentication({"twitter_user.twitterId": twitter_user.twitterId, "implicit_flow.twitterId": implicit_flow.twitterId}) except EntityNotFound: try: twitter_user = TwitterUser.getByTwitterId(implicit_flow.twitterId) except EntityNotFound: twitter_user = TwitterUser() twitter_user.twitterId = implicit_flow.twitterId assert isinstance(twitter_user, TwitterUser) assert twitter_user.twitterId == implicit_flow.twitterId twitter_user.screenName = implicit_flow.screenName twitter_user.accessToken = implicit_flow.accessToken if twitter_user.odenkiId is None: try: odenki_user = OdenkiUser.loadFromSession() assert isinstance(odenki_user, OdenkiUser) twitter_user.odenkiId = odenki_user.odenkiId except EntityNotFound: odenki_user = OdenkiUser.getNew() assert isinstance(odenki_user, OdenkiUser) twitter_user.odenkiId = odenki_user.odenkiId else: try: odenki_user = OdenkiUser.loadFromSession() if twitter_user.odenkiId != odenki_user.odenkiId: raise MixedAuthentication({"twitter_user.odenkiId": twitter_user.odenkiId, "odenki_user.odenkiId": odenki_user.odenkiId}) except EntityNotFound: odenki_user = OdenkiUser.getByOdenkiId(twitter_user.odenkiId) odenki_user.saveToSession() assert twitter_user.odenkiId == odenki_user.odenkiId twitter_user.put() twitter_user.saveToSession()
def GET(self, jrequest, jresponse): assert isinstance(jrequest, JsonRpcRequest) assert isinstance(jresponse, JsonRpcResponse) jresponse.setId() try: twitter_user = TwitterUser.loadFromSession() assert isinstance(twitter_user, TwitterUser) jresponse.setResultValue("twitterId", twitter_user.twitterId) jresponse.setResultValue("screenName", twitter_user.screenName) jresponse.setResultValue("odenkiId", twitter_user.odenkiId) except EntityNotFound: pass implicit_flow = ImplicitFlow() callback_url = self._makeCallbackUrl(jrequest.request.url) jresponse.setResultValue("callback_url", callback_url) auth_url = implicit_flow.getAuthUrl(TWITTER_CONSUMER_KEY, callback_url) jresponse.setResultValue("auth_url", auth_url)