From 4da5b4df4493afc3603fb5e5972380e34ae7fa09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A1=BE=E4=BD=B3=E5=A5=87?= Date: Wed, 24 Feb 2016 18:51:41 +0800 Subject: [PATCH] init init --- FireFoxRestClientImporter.js | 75 ++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 FireFoxRestClientImporter.js diff --git a/FireFoxRestClientImporter.js b/FireFoxRestClientImporter.js new file mode 100644 index 0000000..517ba57 --- /dev/null +++ b/FireFoxRestClientImporter.js @@ -0,0 +1,75 @@ +(function() { + // Extensions are implemented as JavaScript classes + var FireFoxRestClientImporter = function() { + + this.importString = function(context, string) { + var error, error1, inputTree; + try { + inputTree = JSON.parse(string); + } catch (error1) { + error = error1; + throw new Error("Invalid RestClient file (not a valid JSON)"); + } + if (!inputTree) { + throw new Error("Invalid RestClient file (missing root data)"); + } + this.importAllRequests(context, inputTree); + return true; + }; + // implement the importString(context, stringToImport) method to generate code + this.importRequest = function(context, stringToImport) { + + var requestName = stringToImport["name"]; + var requestMethod = stringToImport["method"]; + var requestURL = stringToImport["url"]; + console.log(requestName); + // Create the request with name, HTTP method, and URL + var request = context.createRequest(requestName, requestMethod, requestURL); + // Set the body as raw text + request.body = stringToImport.body; + // Success + return request; + }; + this.importAllRequests = function(context, inputTree) { + var keyArray = [], + projectArray = [], + i, len, pawGroup, results; + if (!inputTree) { + throw new Error("Input RestClient file doesn't have any request to import"); + } + for (var key in inputTree) { + keyArray.push(key); + } + projectArray = this.buildProjectMap(keyArray, inputTree); + console.log(projectArray.length); + pawGroup = context.createRequestGroup("eaglewise"); + results = []; + for (i = 0, len = keyArray.length; i < len; i++) { + pawRequest = this.importRequest(context, projectArray[i]); + pawGroup.appendChild(pawRequest); + } + results.push(pawGroup); + return results; + }; + this.buildProjectMap = function(keyArray, inputTree) { + var i, len, projectArray = []; + for (i = 0, len = keyArray.length; i < len; i++) { + var request = {}; + var inputRequest = inputTree[keyArray[i]]; + request["name"] = keyArray[i]; + request["method"] = inputRequest.method; + request["url"] = inputRequest.url; + request["body"] = inputRequest.body; + request["headers"] = inputRequest.headers; + projectArray.push(request); + } + return projectArray; + }; + }; + + // set the Extension Identifier (must be same as the directory name) + FireFoxRestClientImporter.identifier = "com.droid.PawExtensions.FireFoxRestClientImporter"; + // give a display name to your Importer + FireFoxRestClientImporter.title = "FireFox RestClient Importer"; + registerImporter(FireFoxRestClientImporter); +}).call(this); \ No newline at end of file