def get_user_data(self, auth_code): token = requests.post( f'https://{self.client_url}/oauth/token', data={ 'grant_type': 'authorization_code', 'client_id': self.client_id, 'client_secret': self.client_secret, 'code': auth_code, 'redirect_uri': self.callback_uri, }) if not token.ok: raise falcon.HTTPTemporaryRedirect('/auth/login') return token.json()
def on_post(self, req, response, cmd="[None]"): cmd = cmd.lower() if cmd == "gen_image": return self.on_get(req, response, cmd=cmd) if cmd == "generate_link": scale = req.get_param("scale", default=1.0) scale = parse_image_scale(scale) image_type = req.get_param("type", default="png").lower() verify_image_type(image_type) auto_redirect = req.get_param_as_bool("redirect") code = req.get_param("code") if code is None: code = req.bounded_stream.read(32768) try: generate_image("svg", 1.0, code) except ImageGenerationFailed: raise falcon.HTTPInternalServerError( title="Invalid WaveDrom code", description= "The WaveDrom code you submitted cannot be parsed by the WaveDrom generator" ) compressed_code = compress_text( (code.decode() if isinstance(code, bytes) else code).strip()) url = "{hosturl}/rest/gen_image?{options}".format( hosturl=derive_host_url(req), options=urlencode({ "type": image_type, "scale": scale, "c": compressed_code })) if auto_redirect: raise falcon.HTTPTemporaryRedirect(url) response.content_type = falcon.MEDIA_TEXT response.body = url else: raise falcon.HTTPNotFound( title="invalid command", description="post command {} does not exist".format(cmd))
def on_get(self, req, resp, pid, dsid): """ Dump datastream content. """ try: info = self._get_ds_dissemination(req, pid, dsid) if info is None: logger.debug('No location or stream for %s on %s.', dsid, pid) return except ObjectDoesNotExistError: logger.info(('Did not get datastream dissemination for %s as the ' 'object %s did not exist.'), dsid, pid) _send_object_404(pid, resp) except DatastreamDoesNotExistError as e: resp.content_type = 'text/plain' logger.info(('Datastream content not retrieved: %s not found on %s' ' as of %s.'), e.dsid, e.pid, e.time) resp.body = 'Datastream {} not found on {} as of {}.'.format( e.dsid, e.pid, e.time) raise falcon.HTTPNotFound() from e try: resp.content_type = info['mime'] except KeyError: pass if 'location' in info: logger.info('Redirecting %s on %s to %s.', dsid, pid, info['location']) raise falcon.HTTPTemporaryRedirect(info['location']) else: try: resp.stream = info['stream'] resp.stream_len = getsize(info['stream'].name) except KeyError: pass logger.info('Retrieved datastream content for %s on %s.', dsid, pid)
def on_delete(self, req, resp): raise falcon.HTTPTemporaryRedirect('/tmp/redirect')
def on_delete(self, req, resp): raise falcon.HTTPTemporaryRedirect('/tmp/redirect', headers={'foo': 'bar'})
def _default_failed(req, resp, error, message, **kwargs): raise falcon.HTTPTemporaryRedirect('/')
def on_post(self, req, response): raise falcon.HTTPTemporaryRedirect(self.path)
def on_get(self, req: falcon.Request, resp: falcon.Response): raise falcon.HTTPTemporaryRedirect('/index.html')