def response_success(self, record_key, **kwargs): key_settings = self.settings.keys[record_key] if key_settings.success_redirect: return self.response_redirect(key_settings.success_redirect, **kwargs) body = self.get_success_template(record_key).render(**kwargs) return skygear.Response(body, content_type='text/html')
def response_url_redirect(url, **kwargs): parsed_url = urlparse(url) query_list = parse_qsl(parsed_url.query) for key, value in kwargs.items(): query_list.append((key, value)) new_url = ParseResult(parsed_url.scheme, parsed_url.netloc, parsed_url.path, parsed_url.params, urlencode(query_list), parsed_url.fragment) return skygear.Response(status=302, headers=[('Location', new_url.geturl())])
def response_params_error(template_provider, settings, **kwargs): kwargs['error'] = 'Invalid URL' # filter some kwargs since some are not capable to be embedded in url # for redirection filtered_kwargs = { 'error': kwargs['error'], } if settings.error_redirect: return response_url_redirect(settings.error_redirect, **filtered_kwargs) body = template_provider.\ get_template('reset_password_error').\ render(**kwargs) return skygear.Response(body, status=400, content_type='text/html')
def __call__(self, request): # extract useful http headers ips = request.headers.get('x-forwarded-for') # parse body bytes = request.get_data() json_str = bytes.decode('utf-8') parsed = json.loads(json_str) events = parsed['events'] event_tracking_request = EventTrackingRequest( http_header_ips=ips, json_events=events, ) logger.debug('event_tracking_request: %s', event_tracking_request) self._writer.process_request(event_tracking_request) return skygear.Response(status=200)
def response_success(template_provider, settings, **kwargs): # filter some kwargs since some are not capable to be embedded in url # for redirection filtered_kwargs = { 'code': kwargs['code'], 'user_id': kwargs['user_id'], 'expire_at': kwargs['expire_at'], } if settings.success_redirect: return response_url_redirect(settings.success_redirect, **filtered_kwargs) body = template_provider.\ get_template('reset_password_success').\ render(**kwargs) return skygear.Response(body, content_type='text/html')
def response_error(self, record_key=None, **kwargs): error_redirect = None if record_key: key_settings = self.settings.keys[record_key] error_redirect = key_settings.error_redirect # fallback to verify user error redirect if key setting is empty if not error_redirect: error_redirect = self.settings.error_redirect # get_error_template handles whether record_key is or is not empty template = self.get_error_template(record_key) if error_redirect: return self.response_redirect(error_redirect, **kwargs) body = template.render(**kwargs) return skygear.Response(body, status=400, content_type='text/html')
def response_form(template_provider, **kwargs): body = template_provider.\ get_template('reset_password_form').\ render(**kwargs) return skygear.Response(body, content_type='text/html')