Skip to content

Commit a070aaf

Browse files
authored
add destinations, destinationSpecifications, and destinationImplementations resources to API (#49)
* add destinationsHandler * add destinationSpecificationsHandler * add destinationImplementationsHandler
1 parent 781b39b commit a070aaf

File tree

12 files changed

+888
-34
lines changed

12 files changed

+888
-34
lines changed

dataline-api/src/main/openapi/config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -872,7 +872,7 @@ components:
872872
required:
873873
- destinations
874874
properties:
875-
sources:
875+
destinations:
876876
type: array
877877
items:
878878
$ref: "#/components/schemas/DestinationImplementationRead"

dataline-config/src/main/resources/json/DestinationConnectionImplementation.json

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,22 @@
44
"title": "DestinationConnectionImplementation",
55
"description": "information required for connection to a destination.",
66
"type": "object",
7-
"required": ["destinationSpecificationId", "destinationImplementationId", "configuration"],
7+
"required": [
8+
"destinationSpecificationId",
9+
"workspaceId",
10+
"destinationImplementationId",
11+
"configuration"
12+
],
813
"additionalProperties": false,
914
"properties": {
1015
"destinationSpecificationId": {
1116
"type": "string",
1217
"format": "uuid"
1318
},
19+
"workspaceId": {
20+
"type": "string",
21+
"format": "uuid"
22+
},
1423
"destinationImplementationId": {
1524
"type": "string",
1625
"format": "uuid"

dataline-server/src/main/java/io/dataline/server/apis/ConfigurationApi.java

Lines changed: 53 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import io.dataline.api.model.*;
44
import io.dataline.config.persistence.ConfigPersistence;
55
import io.dataline.config.persistence.DefaultConfigPersistence;
6+
import io.dataline.server.handlers.*;
67
import io.dataline.server.handlers.SourceImplementationsHandler;
78
import io.dataline.server.handlers.SourceSpecificationsHandler;
89
import io.dataline.server.handlers.SourcesHandler;
@@ -17,16 +18,24 @@ public class ConfigurationApi implements io.dataline.api.V1Api {
1718
private final SourcesHandler sourcesHandler;
1819
private final SourceSpecificationsHandler sourceSpecificationsHandler;
1920
private final SourceImplementationsHandler sourceImplementationsHandler;
21+
private final DestinationsHandler destinationsHandler;
22+
private final DestinationSpecificationsHandler destinationSpecificationsHandler;
23+
private final DestinationImplementationsHandler destinationImplementationsHandler;
2024

2125
public ConfigurationApi() {
2226
// todo: configure with env variable.
2327
ConfigPersistence configPersistence = new DefaultConfigPersistence("../data/config/");
28+
final IntegrationSchemaValidation integrationSchemaValidation =
29+
new IntegrationSchemaValidation(configPersistence);
2430
workspacesHandler = new WorkspacesHandler(configPersistence);
2531
sourcesHandler = new SourcesHandler(configPersistence);
2632
sourceSpecificationsHandler = new SourceSpecificationsHandler(configPersistence);
2733
sourceImplementationsHandler =
28-
new SourceImplementationsHandler(
29-
configPersistence, new IntegrationSchemaValidation(configPersistence));
34+
new SourceImplementationsHandler(configPersistence, integrationSchemaValidation);
35+
destinationsHandler = new DestinationsHandler(configPersistence);
36+
destinationSpecificationsHandler = new DestinationSpecificationsHandler(configPersistence);
37+
destinationImplementationsHandler =
38+
new DestinationImplementationsHandler(configPersistence, integrationSchemaValidation);
3039
}
3140

3241
// WORKSPACE
@@ -67,16 +76,17 @@ public SourceSpecificationRead getSourceSpecification(
6776
}
6877

6978
// SOURCE IMPLEMENTATION
79+
7080
@Override
7181
public SourceImplementationRead createSourceImplementation(
7282
@Valid SourceImplementationCreate sourceImplementationCreate) {
7383
return sourceImplementationsHandler.createSourceImplementation(sourceImplementationCreate);
7484
}
7585

7686
@Override
77-
public SourceImplementationRead getSourceImplementation(
78-
@Valid SourceImplementationIdRequestBody sourceImplementationIdRequestBody) {
79-
return sourceImplementationsHandler.getSourceImplementation(sourceImplementationIdRequestBody);
87+
public SourceImplementationRead updateSourceImplementation(
88+
@Valid SourceImplementationUpdate sourceImplementationUpdate) {
89+
return sourceImplementationsHandler.updateSourceImplementation(sourceImplementationUpdate);
8090
}
8191

8292
@Override
@@ -87,15 +97,15 @@ public SourceImplementationReadList listSourceImplementationsForWorkspace(
8797
}
8898

8999
@Override
90-
public SourceImplementationTestConnectionRead testConnectionToSourceImplementation(
100+
public SourceImplementationRead getSourceImplementation(
91101
@Valid SourceImplementationIdRequestBody sourceImplementationIdRequestBody) {
92-
return null;
102+
return sourceImplementationsHandler.getSourceImplementation(sourceImplementationIdRequestBody);
93103
}
94104

95105
@Override
96-
public SourceImplementationRead updateSourceImplementation(
97-
@Valid SourceImplementationUpdate sourceImplementationUpdate) {
98-
return sourceImplementationsHandler.updateSourceImplementation(sourceImplementationUpdate);
106+
public SourceImplementationTestConnectionRead testConnectionToSourceImplementation(
107+
@Valid SourceImplementationIdRequestBody sourceImplementationIdRequestBody) {
108+
return null;
99109
}
100110

101111
@Override
@@ -104,38 +114,56 @@ public SourceImplementationDiscoverSchemaRead discoverSchemaForSourceImplementat
104114
return null;
105115
}
106116

117+
// DESTINATION
118+
107119
@Override
108-
public ConnectionRead createConnection(@Valid ConnectionCreate connectionCreate) {
109-
return null;
120+
public DestinationReadList listDestinations() {
121+
return destinationsHandler.listDestinations();
122+
}
123+
124+
@Override
125+
public DestinationRead getDestination(@Valid DestinationIdRequestBody destinationIdRequestBody) {
126+
return destinationsHandler.getDestination(destinationIdRequestBody);
127+
}
128+
129+
// DESTINATION SPECIFICATION
130+
131+
@Override
132+
public DestinationSpecificationRead getDestinationSpecification(
133+
@Valid DestinationIdRequestBody destinationIdRequestBody) {
134+
return destinationSpecificationsHandler.getDestinationSpecification(destinationIdRequestBody);
110135
}
111136

137+
// DESTINATION IMPLEMENTATION
112138
@Override
113139
public DestinationImplementationRead createDestinationImplementation(
114140
@Valid DestinationImplementationCreate destinationImplementationCreate) {
115-
return null;
141+
return destinationImplementationsHandler.createDestinationImplementation(
142+
destinationImplementationCreate);
116143
}
117144

118145
@Override
119-
public ConnectionRead getConnection(@Valid ConnectionIdRequestBody connectionIdRequestBody) {
120-
return null;
146+
public DestinationImplementationRead updateDestinationImplementation(
147+
@Valid DestinationImplementationUpdate destinationImplementationUpdate) {
148+
return destinationImplementationsHandler.updateDestinationImplementation(
149+
destinationImplementationUpdate);
121150
}
122151

123152
@Override
124-
public DestinationRead getDestination(@Valid DestinationIdRequestBody destinationIdRequestBody) {
125-
return null;
153+
public DestinationImplementationReadList listDestinationImplementationsForWorkspace(
154+
@Valid WorkspaceIdRequestBody workspaceIdRequestBody) {
155+
return destinationImplementationsHandler.listDestinationImplementationsForWorkspace(
156+
workspaceIdRequestBody);
126157
}
127158

128159
@Override
129160
public DestinationImplementationRead getDestinationImplementation(
130161
@Valid DestinationImplementationIdRequestBody destinationImplementationIdRequestBody) {
131-
return null;
162+
return destinationImplementationsHandler.getDestinationImplementation(
163+
destinationImplementationIdRequestBody);
132164
}
133165

134-
@Override
135-
public DestinationSpecificationRead getDestinationSpecification(
136-
@Valid DestinationIdRequestBody destinationIdRequestBody) {
137-
return null;
138-
}
166+
// CONNECTION
139167

140168
@Override
141169
public ConnectionReadList listConnectionsForWorkspace(
@@ -144,13 +172,12 @@ public ConnectionReadList listConnectionsForWorkspace(
144172
}
145173

146174
@Override
147-
public DestinationImplementationReadList listDestinationImplementationsForWorkspace(
148-
@Valid WorkspaceIdRequestBody workspaceIdRequestBody) {
175+
public ConnectionRead getConnection(@Valid ConnectionIdRequestBody connectionIdRequestBody) {
149176
return null;
150177
}
151178

152179
@Override
153-
public DestinationReadList listDestinations() {
180+
public ConnectionRead createConnection(@Valid ConnectionCreate connectionCreate) {
154181
return null;
155182
}
156183

@@ -163,10 +190,4 @@ public ConnectionSyncRead syncConnection(@Valid ConnectionIdRequestBody connecti
163190
public ConnectionRead updateConnection(@Valid ConnectionUpdate connectionUpdate) {
164191
return null;
165192
}
166-
167-
@Override
168-
public DestinationImplementationRead updateDestinationImplementation(
169-
@Valid DestinationImplementationUpdate destinationImplementationUpdate) {
170-
return null;
171-
}
172193
}

0 commit comments

Comments
 (0)