def command(self, save=True, auto=False): res = { 'api_methods': [], 'javascript_classes': [], 'css_files': [] } if self.args: # Short-circuit if we're serving templates... return self._success(_('Serving up API content'), result=res) session, config = self.session, self.session.config urlmap = UrlMap(session) for method in ('GET', 'POST', 'UPDATE', 'DELETE'): for cmd in urlmap._api_commands(method, strict=True): cmdinfo = { "url": cmd.SYNOPSIS[2], "method": method } if hasattr(cmd, 'HTTP_QUERY_VARS'): cmdinfo["query_vars"] = cmd.HTTP_QUERY_VARS if hasattr(cmd, 'HTTP_POST_VARS'): cmdinfo["post_vars"] = cmd.HTTP_POST_VARS if hasattr(cmd, 'HTTP_OPTIONAL_VARS'): cmdinfo["optional_vars"] = cmd.OPTIONAL_VARS res['api_methods'].append(cmdinfo) created_js = [] for cls, filename in sorted(list( config.plugins.get_js_classes().iteritems())): try: parts = cls.split('.')[:-1] for i in range(1, len(parts)): parent = '.'.join(parts[:i+1]) if parent not in created_js: res['javascript_classes'].append({ 'classname': parent, 'code': '' }) created_js.append(parent) with open(filename, 'rb') as fd: res['javascript_classes'].append({ 'classname': cls, 'code': fd.read().decode('utf-8') }) created_js.append(cls) except (OSError, IOError, UnicodeDecodeError): self._ignore_exception() for cls, filename in sorted(list( config.plugins.get_css_files().iteritems())): try: with open(filename, 'rb') as fd: res['css_files'].append({ 'classname': cls, 'css': fd.read().decode('utf-8') }) except (OSError, IOError, UnicodeDecodeError): self._ignore_exception() return self._success(_('Generated Javascript API'), result=res)
def command(self, save=True, auto=False): session, config = self.session, self.session.config urlmap = UrlMap(session) res = {"api_methods": [], "javascript_classes": [], "css_files": []} for method in ("GET", "POST", "UPDATE", "DELETE"): for cmd in urlmap._api_commands(method, strict=True): cmdinfo = {"url": cmd.SYNOPSIS[2], "method": method} if hasattr(cmd, "HTTP_QUERY_VARS"): cmdinfo["query_vars"] = cmd.HTTP_QUERY_VARS if hasattr(cmd, "HTTP_POST_VARS"): cmdinfo["post_vars"] = cmd.HTTP_POST_VARS if hasattr(cmd, "HTTP_OPTIONAL_VARS"): cmdinfo["optional_vars"] = cmd.OPTIONAL_VARS res["api_methods"].append(cmdinfo) for cls, filename in config.plugins.get_js_classes().iteritems(): try: with open(filename, "rb") as fd: res["javascript_classes"].append({"classname": cls, "code": fd.read().decode("utf-8")}) except (OSError, IOError, UnicodeDecodeError): self._ignore_exception() for cls, filename in config.plugins.get_css_files().iteritems(): try: with open(filename, "rb") as fd: res["css_files"].append({"classname": cls, "css": fd.read().decode("utf-8")}) except (OSError, IOError, UnicodeDecodeError): self._ignore_exception() return res
def command(self, save=True, auto=False): session, config = self.session, self.session.config urlmap = UrlMap(session) res = { 'api_methods': [], 'javascript_classes': [], 'css_files': [] } for method in ('GET', 'POST', 'UPDATE', 'DELETE'): for cmd in urlmap._api_commands(method, strict=True): cmdinfo = { "url": cmd.SYNOPSIS[2], "method": method } if hasattr(cmd, 'HTTP_QUERY_VARS'): cmdinfo["query_vars"] = cmd.HTTP_QUERY_VARS if hasattr(cmd, 'HTTP_POST_VARS'): cmdinfo["post_vars"] = cmd.HTTP_POST_VARS if hasattr(cmd, 'HTTP_OPTIONAL_VARS'): cmdinfo["optional_vars"] = cmd.OPTIONAL_VARS res['api_methods'].append(cmdinfo) for cls, filename in config.plugins.get_js_classes().iteritems(): try: with open(filename, 'rb') as fd: res['javascript_classes'].append({ 'classname': cls, 'code': fd.read().decode('utf-8') }) except (OSError, IOError, UnicodeDecodeError): self._ignore_exception() for cls, filename in config.plugins.get_css_files().iteritems(): try: with open(filename, 'rb') as fd: res['css_files'].append({ 'classname': cls, 'css': fd.read().decode('utf-8') }) except (OSError, IOError, UnicodeDecodeError): self._ignore_exception() return res
def command(self, save=True, auto=False): res = {"api_methods": [], "javascript_classes": [], "css_files": []} if self.args: # Short-circuit if we're serving templates... return self._success(_("Serving up API content"), result=res) session, config = self.session, self.session.config urlmap = UrlMap(session) for method in ("GET", "POST", "UPDATE", "DELETE"): for cmd in urlmap._api_commands(method, strict=True): cmdinfo = {"url": cmd.SYNOPSIS[2], "method": method} if hasattr(cmd, "HTTP_QUERY_VARS"): cmdinfo["query_vars"] = cmd.HTTP_QUERY_VARS if hasattr(cmd, "HTTP_POST_VARS"): cmdinfo["post_vars"] = cmd.HTTP_POST_VARS if hasattr(cmd, "HTTP_OPTIONAL_VARS"): cmdinfo["optional_vars"] = cmd.OPTIONAL_VARS res["api_methods"].append(cmdinfo) created_js = [] for cls, filename in sorted(list(config.plugins.get_js_classes().iteritems())): try: parts = cls.split(".")[:-1] for i in range(1, len(parts)): parent = ".".join(parts[: i + 1]) if parent not in created_js: res["javascript_classes"].append({"classname": parent, "code": ""}) created_js.append(parent) with open(filename, "rb") as fd: res["javascript_classes"].append({"classname": cls, "code": fd.read().decode("utf-8")}) created_js.append(cls) except (OSError, IOError, UnicodeDecodeError): self._ignore_exception() for cls, filename in sorted(list(config.plugins.get_css_files().iteritems())): try: with open(filename, "rb") as fd: res["css_files"].append({"classname": cls, "css": fd.read().decode("utf-8")}) except (OSError, IOError, UnicodeDecodeError): self._ignore_exception() return self._success(_("Generated Javascript API"), result=res)
def command(self, save=True, auto=False): session, config = self.session, self.session.config urlmap = UrlMap(session) res = {'api_methods': [], 'javascript_classes': [], 'css_files': []} for method in ('GET', 'POST', 'UPDATE', 'DELETE'): for cmd in urlmap._api_commands(method, strict=True): cmdinfo = {"url": cmd.SYNOPSIS[2], "method": method} if hasattr(cmd, 'HTTP_QUERY_VARS'): cmdinfo["query_vars"] = cmd.HTTP_QUERY_VARS if hasattr(cmd, 'HTTP_POST_VARS'): cmdinfo["post_vars"] = cmd.HTTP_POST_VARS if hasattr(cmd, 'HTTP_OPTIONAL_VARS'): cmdinfo["optional_vars"] = cmd.OPTIONAL_VARS res['api_methods'].append(cmdinfo) for cls, filename in config.plugins.get_js_classes().iteritems(): try: with open(filename, 'rb') as fd: res['javascript_classes'].append({ 'classname': cls, 'code': fd.read().decode('utf-8') }) except (OSError, IOError, UnicodeDecodeError): self._ignore_exception() for cls, filename in config.plugins.get_css_files().iteritems(): try: with open(filename, 'rb') as fd: res['css_files'].append({ 'classname': cls, 'css': fd.read().decode('utf-8') }) except (OSError, IOError, UnicodeDecodeError): self._ignore_exception() return res