Revert "Add mechanism for plugins to modify rest api calls"

This reverts commit 92daa33342.

Reason for revert: Chromium's Gerrit instance does not start with this change

Uncaught ReferenceError: GrDomHooksManager is not defined at new Plugin (gr-app.js:1455)

Change-Id: I5cfc9ffaa2a8b6f5969f0d7e50a1694e5f5d5476
This commit is contained in:
Ben Rohlfs
2019-04-09 19:25:22 +00:00
parent 92daa33342
commit fb74750e7a
7 changed files with 44 additions and 187 deletions

View File

@@ -38,6 +38,5 @@ limitations under the License.
<script src="gr-plugin-endpoints.js"></script>
<script src="gr-plugin-action-context.js"></script>
<script src="gr-plugin-rest-api.js"></script>
<script src="gr-rest-api-hooks.js"></script>
<script src="gr-public-js-api.js"></script>
</dom-module>

View File

@@ -319,10 +319,6 @@
return new GrSettingsApi(this);
};
Plugin.prototype.restApiHooks = function() {
return new GrRestApiHooks(this);
};
/**
* To make REST requests for plugin-provided endpoints, use
* @example
@@ -630,12 +626,6 @@
return _allPluginsPromise;
};
// TODO: Remove this. This is a hack to get the tests to pass.
// It would be much better to call GrRestApiHooks.pluginParams directly.
Gerrit._pluginParams = function(endpointName, initialParams) {
return GrRestApiHooks.pluginParams(endpointName, initialParams);
};
Gerrit._pluginLoadingTimeout = function() {
console.error(`Failed to load plugins: ${Object.keys(_pluginsPending)}`);
Gerrit._setPluginsPending([]);

View File

@@ -1,92 +0,0 @@
/**
* @license
* Copyright (C) 2019 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
(function() {
'use strict';
// Prevent redefinition.
if (window.GrRestApiHooks) { return; }
// Stores a map of endpointNames and api instances to add parameters to
// REST API calls.
const _apiInstances = {};
function GrRestApiHooks(plugin) {
this.plugin = plugin;
// Stores a map of endpointNames and functions to add parameters to REST API
// calls.
this._addParameterFunctions = {};
}
/**
* Registers an api hook for a particular api endpoint.
* This is called by a plugin.
*
* @param {string} endpointName the name of the endpoint.
* @param {Function} addParameterFunction the function that returns params
* for the plugin. Takes in current params.
*/
GrRestApiHooks.prototype.registerRestApiParams = function(endpointName,
addParameterFunction) {
if (this._addParameterFunctions[endpointName]) {
console.warn(`Rewriting rest api parameter function for
${this.plugin.getPluginName()}`);
}
this._addParameterFunctions[endpointName] = addParameterFunction;
if (!_apiInstances[endpointName]) {
_apiInstances[endpointName] = [];
}
_apiInstances[endpointName].push(this);
};
/**
* Returns params for a registered api hook for a particular api endpoint or
* null.
* This is called by the application, not the plugin.
* It will either return params or null if there are no params.
* @param {string} endpointName the name of the endpoint.
* @param {!Object} initialParams the params of the rest api call.
*/
GrRestApiHooks.prototype._getRestApiParams = function(endpointName,
initialParams) {
const addParameterFunction = this._addParameterFunctions[endpointName];
if (!addParameterFunction) return null;
return addParameterFunction(initialParams);
};
/**
* Gets the params for a particular mutation endpoint.
*
* This is called by the application and should not be called by plugins.
*
* @param {string} endpointName the name of the endpoint.
* @param {!Object} initialParams the params of the rest api call.
* @return new parameters to add to a REST API call.
*/
GrRestApiHooks.pluginParams = function(endpointName, initialParams) {
return (_apiInstances[endpointName] || []).reduce((accum, apiInstance) => {
const pluginParams = apiInstance._getRestApiParams(
endpointName, initialParams);
if (pluginParams) {
accum[apiInstance.plugin.getPluginName()] =
JSON.stringify(pluginParams);
}
return accum;
}, {});
};
window.GrRestApiHooks = GrRestApiHooks;
})(window);