import React from "react" import PropTypes from "prop-types" import Im from "immutable" export default class Operations extends React.Component { static propTypes = { specSelectors: PropTypes.object.isRequired, specActions: PropTypes.object.isRequired, oas3Actions: PropTypes.object.isRequired, getComponent: PropTypes.func.isRequired, oas3Selectors: PropTypes.func.isRequired, layoutSelectors: PropTypes.object.isRequired, layoutActions: PropTypes.object.isRequired, authActions: PropTypes.object.isRequired, authSelectors: PropTypes.object.isRequired, getConfigs: PropTypes.func.isRequired, fn: PropTypes.func.isRequired } render() { let { specSelectors, } = this.props const taggedOps = specSelectors.taggedOperations() if(taggedOps.size === 0) { return

No operations defined in spec!

} return (
{ taggedOps.map(this.renderOperationTag).toArray() } { taggedOps.size < 1 ?

No operations defined in spec!

: null }
) } renderOperationTag = (tagObj, tag) => { const { specSelectors, getComponent, oas3Selectors, layoutSelectors, layoutActions, getConfigs, } = this.props const validOperationMethods = specSelectors.validOperationMethods() const OperationContainer = getComponent("OperationContainer", true) const OperationTag = getComponent("OperationTag") const operations = tagObj.get("operations") return (
{ operations.map(op => { const path = op.get("path") const method = op.get("method") const specPath = Im.List(["paths", path, method]) if (validOperationMethods.indexOf(method) === -1) { return null } return ( ) }).toArray() }
) } } Operations.propTypes = { layoutActions: PropTypes.object.isRequired, specSelectors: PropTypes.object.isRequired, specActions: PropTypes.object.isRequired, layoutSelectors: PropTypes.object.isRequired, getComponent: PropTypes.func.isRequired, fn: PropTypes.object.isRequired }