@@ -150,7 +150,7 @@ class PluginInstanceController(implicit val swagger: Swagger) extends JsonServle
150150 if (! ConfigurationService .fulfillRequirementByDeserializing(instanceName, requirementID, targetType,
151151 value, chatOverflow.pluginInstanceRegistry, chatOverflow.typeRegistry)) {
152152
153- ResultMessage (success = false , " Unable to set requirement." )
153+ ResultMessage (success = false , " Unable to set the requirement." )
154154 } else {
155155 chatOverflow.save()
156156 ResultMessage (success = true )
@@ -161,6 +161,40 @@ class PluginInstanceController(implicit val swagger: Swagger) extends JsonServle
161161 }
162162 }
163163
164+ delete(" /:instanceName/requirements/:requirementID" , operation(deleteRequirement)) {
165+ authKeyRequired {
166+ val instanceName = params(" instanceName" )
167+ val requirementID = params(" requirementID" )
168+
169+ if (! chatOverflow.isLoaded) {
170+ ResultMessage (success = false , " Framework not loaded." )
171+
172+ } else {
173+ val pluginInstance = chatOverflow.pluginInstanceRegistry.getPluginInstance(instanceName)
174+
175+ if (pluginInstance.isEmpty) {
176+ ResultMessage (success = false , " Plugin instance not found." )
177+
178+ } else if (pluginInstance.get.isRunning) {
179+ ResultMessage (success = false , " Plugin is running." )
180+
181+ } else if (! pluginInstance.get.getRequirements.getRequirementById(requirementID).isPresent) {
182+ ResultMessage (success = false , " Requirement not found." )
183+ } else {
184+
185+ if (! pluginInstance.get.getRequirements.unsetRequirementById(requirementID)) {
186+
187+ ResultMessage (success = false , " Unable to remove the requirement. Already removed." )
188+ } else {
189+ chatOverflow.save()
190+ ResultMessage (success = true )
191+ }
192+ }
193+ }
194+
195+ }
196+ }
197+
164198 get(" /:instanceName/log" , operation(getLog)) {
165199 authKeyRequired {
166200 val instanceName = params(" instanceName" )
0 commit comments