def do_business(self): super(PasswordlessDetailCheck, self).do_business() if not self.errors: app = self.result self.result = None fetch_cmd = UrlFetchCommand(self.detail_url, {'ticket': self.ticket, 'app_id': app.app_id, 'token': app.token}, 'POST').execute() self.errors.update(fetch_cmd.errors) if not self.errors: dct = json.loads(fetch_cmd.result.content) cmd_parallel = CommandParallel(GetMainUserByEmail(dct['email']), GetPasswordlessUser(dct['id'])) cmd_parallel.execute() main_user, passwordless_user = cmd_parallel[0].result, cmd_parallel[1].result if passwordless_user: main_user = MainUserSearch(passwordless_user).execute().result elif main_user: passwordless_user_key = PasswordlessUser(external_id=dct['id']).put() self._to_commit = ExternalToMainUser(origin=passwordless_user_key, destination=main_user.key) else: main_user = MainUser(name=dct['email'], email=dct['email']) passwordless_user = PasswordlessUser(external_id=dct['id']) ndb.put_multi([main_user, passwordless_user]) self._to_commit = ExternalToMainUser(origin=passwordless_user.key, destination=main_user.key) self.result = main_user
def tasks(cursor=None): cmd = UserSearch(cursor) user = cmd() if user: user = user[0] email = SingleEmailUserSearch(user)().email MainUser(name=email, email=email, key=to_node_key(user), creation=user.creation).put() path = to_path(tasks, cmd.cursor.urlsafe()) taskqueue.add(url=path) else: send_mail_to_admins(settings.SENDER_EMAIL, 'Migration End', 'Migration end')
def do_business(self): super(Login, self).do_business() # if no conflict if self.result: if self.external_user is None and self.main_user_from_external is None: self.external_user = self.external_user_class( external_id=self.external_id) self.main_user_from_external = MainUser(name=self.user_name, email=self.email) external_user_key, main_user_key = ndb.put_multi( [self.external_user, self.main_user_from_external]) self._arc = ExternalToMainUser(origin=external_user_key, destination=main_user_key) log_main_user_in(self.main_user_from_external, self.response, self.user_cookie) else: if self.external_user is None: self.external_user = self.external_user_class( external_id=self.external_id) self.external_user.put() self.pending_link = PendingExternalToMainUser( external_user=self.external_user.key, main_user=self.main_user_from_email.key)