Skip to content
This repository was archived by the owner on Aug 18, 2020. It is now read-only.

Commit d063350

Browse files
committed
Require framework being loaded before something can be posted or deleted.
1 parent e1419a6 commit d063350

File tree

4 files changed

+64
-42
lines changed

4 files changed

+64
-42
lines changed

src/main/scala/org/codeoverflow/chatoverflow/ui/web/rest/config/ConfigController.scala

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,12 @@ class ConfigController(implicit val swagger: Swagger) extends JsonServlet with C
1616
}
1717

1818
post("/save", operation(postSave)) {
19-
chatOverflow.save()
20-
true
19+
if (!chatOverflow.isLoaded) {
20+
false
21+
} else {
22+
chatOverflow.save()
23+
true
24+
}
2125
}
2226

2327
get("/login", operation(getLogin)) {

src/main/scala/org/codeoverflow/chatoverflow/ui/web/rest/config/ConfigControllerDefinition.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ trait ConfigControllerDefinition extends SwaggerSupport {
1313

1414
val postSave: OperationBuilder =
1515
(apiOperation[Boolean]("postSave")
16-
summary "Triggers the saving process of the framework manually."
16+
summary "Triggers the saving process of the framework manually (if loaded previously)."
1717
description "Triggers saving of credentials and configuration. Should not be needed manually.")
1818

1919
val getLogin: OperationBuilder =

src/main/scala/org/codeoverflow/chatoverflow/ui/web/rest/connector/ConnectorController.scala

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -28,28 +28,33 @@ class ConnectorController(implicit val swagger: Swagger) extends JsonServlet wit
2828
post("/", operation(postConnector)) {
2929
parsedAs[ConnectorRef] {
3030
case ConnectorRef(sourceIdentifier, uniqueTypeString) =>
31-
val connector = ConnectorRegistry.getConnector(sourceIdentifier, uniqueTypeString)
31+
if (!chatOverflow.isLoaded) {
32+
ResultMessage(success = false, "Framework not loaded.")
3233

33-
if (connector.isDefined) {
34-
ResultMessage(success = false, "Connector already defined.")
3534
} else {
36-
val connectorClass = chatOverflow.typeRegistry.getConnectorType(uniqueTypeString)
37-
38-
if (connectorClass.isEmpty) {
39-
ResultMessage(success = false, "Connector type not found.")
40-
41-
} else if (!ConnectorRegistry.addConnector(sourceIdentifier, uniqueTypeString)) {
42-
ResultMessage(success = false, "Unable to add connector.")
35+
val connector = ConnectorRegistry.getConnector(sourceIdentifier, uniqueTypeString)
4336

37+
if (connector.isDefined) {
38+
ResultMessage(success = false, "Connector already defined.")
4439
} else {
40+
val connectorClass = chatOverflow.typeRegistry.getConnectorType(uniqueTypeString)
4541

46-
val credentials = new Credentials(sourceIdentifier)
47-
if (!ConnectorRegistry.setConnectorCredentials(sourceIdentifier, uniqueTypeString, credentials)) {
48-
ResultMessage(success = false, "Unable to create credentials.")
42+
if (connectorClass.isEmpty) {
43+
ResultMessage(success = false, "Connector type not found.")
44+
45+
} else if (!ConnectorRegistry.addConnector(sourceIdentifier, uniqueTypeString)) {
46+
ResultMessage(success = false, "Unable to add connector.")
4947

5048
} else {
51-
chatOverflow.save()
52-
ResultMessage(success = true)
49+
50+
val credentials = new Credentials(sourceIdentifier)
51+
if (!ConnectorRegistry.setConnectorCredentials(sourceIdentifier, uniqueTypeString, credentials)) {
52+
ResultMessage(success = false, "Unable to create credentials.")
53+
54+
} else {
55+
chatOverflow.save()
56+
ResultMessage(success = true)
57+
}
5358
}
5459
}
5560
}
@@ -62,7 +67,10 @@ class ConnectorController(implicit val swagger: Swagger) extends JsonServlet wit
6267

6368
val connector = ConnectorRegistry.getConnector(sourceIdentifier, qualifiedConnectorType)
6469

65-
if (connector.isEmpty) {
70+
if (!chatOverflow.isLoaded) {
71+
ResultMessage(success = false, "Framework not loaded.")
72+
73+
} else if (connector.isEmpty) {
6674
ResultMessage(success = false, "Connector does not exist.")
6775

6876
} else if (connector.get.isRunning) {
@@ -78,8 +86,6 @@ class ConnectorController(implicit val swagger: Swagger) extends JsonServlet wit
7886
}
7987
}
8088

81-
// TODO: Get one encrypted entry, post, delete
82-
8389
get("/:sourceIdentifier/:qualifiedConnectorType/credentials", operation(getCredentials)) {
8490
if (!chatOverflow.isLoaded) {
8591
CredentialsDetails(found = false)

src/main/scala/org/codeoverflow/chatoverflow/ui/web/rest/plugin/PluginInstanceController.scala

Lines changed: 33 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -50,21 +50,27 @@ class PluginInstanceController(implicit val swagger: Swagger) extends JsonServle
5050
post("/", operation(postInstance)) {
5151
parsedAs[PluginInstanceRef] {
5252
case PluginInstanceRef(instanceName, pluginName, pluginAuthor) =>
53-
// Check existence of key first
54-
if (chatOverflow.pluginInstanceRegistry.pluginInstanceExists(instanceName)) {
55-
ResultMessage(success = false, "Plugin instance already exists.")
56-
57-
} else if (!chatOverflow.pluginFramework.pluginExists(pluginName, pluginAuthor)) {
58-
ResultMessage(success = false, "Plugin type does not exist.")
53+
if (!chatOverflow.isLoaded) {
54+
ResultMessage(success = false, "Framework not loaded.")
5955

6056
} else {
61-
val pluginType = chatOverflow.pluginFramework.getPlugin(pluginName, pluginAuthor)
6257

63-
if (!chatOverflow.pluginInstanceRegistry.addPluginInstance(instanceName, pluginType.get)) {
64-
ResultMessage(success = false, "Unable to create new plugin instance.")
58+
// Check existence of key first
59+
if (chatOverflow.pluginInstanceRegistry.pluginInstanceExists(instanceName)) {
60+
ResultMessage(success = false, "Plugin instance already exists.")
61+
62+
} else if (!chatOverflow.pluginFramework.pluginExists(pluginName, pluginAuthor)) {
63+
ResultMessage(success = false, "Plugin type does not exist.")
64+
6565
} else {
66-
chatOverflow.save()
67-
ResultMessage(success = true)
66+
val pluginType = chatOverflow.pluginFramework.getPlugin(pluginName, pluginAuthor)
67+
68+
if (!chatOverflow.pluginInstanceRegistry.addPluginInstance(instanceName, pluginType.get)) {
69+
ResultMessage(success = false, "Unable to create new plugin instance.")
70+
} else {
71+
chatOverflow.save()
72+
ResultMessage(success = true)
73+
}
6874
}
6975
}
7076
}
@@ -73,20 +79,26 @@ class PluginInstanceController(implicit val swagger: Swagger) extends JsonServle
7379
delete("/:instanceName", operation(deleteInstance)) {
7480
val instanceName = params("instanceName")
7581

76-
val pluginInstance = chatOverflow.pluginInstanceRegistry.getPluginInstance(instanceName)
82+
if (!chatOverflow.isLoaded) {
83+
ResultMessage(success = false, "Framework not loaded.")
7784

78-
if (pluginInstance.isEmpty) {
79-
ResultMessage(success = false, "Plugin instance not found.")
85+
} else {
8086

81-
} else if (pluginInstance.get.isRunning) {
82-
ResultMessage(success = false, "Plugin instance is running.")
87+
val pluginInstance = chatOverflow.pluginInstanceRegistry.getPluginInstance(instanceName)
8388

84-
} else if (!chatOverflow.pluginInstanceRegistry.removePluginInstance(instanceName)) {
85-
ResultMessage(success = false, "Unable to remove plugin instance.")
89+
if (pluginInstance.isEmpty) {
90+
ResultMessage(success = false, "Plugin instance not found.")
8691

87-
} else {
88-
chatOverflow.save()
89-
ResultMessage(success = true)
92+
} else if (pluginInstance.get.isRunning) {
93+
ResultMessage(success = false, "Plugin instance is running.")
94+
95+
} else if (!chatOverflow.pluginInstanceRegistry.removePluginInstance(instanceName)) {
96+
ResultMessage(success = false, "Unable to remove plugin instance.")
97+
98+
} else {
99+
chatOverflow.save()
100+
ResultMessage(success = true)
101+
}
90102
}
91103
}
92104

0 commit comments

Comments
 (0)