Skip to content

Commit 18dd6dc

Browse files
committing fixes for initial commit of rest service
1 parent 2f72df6 commit 18dd6dc

6 files changed

Lines changed: 24 additions & 23 deletions

File tree

src/main/java/uk/co/aquaq/kdb/connection/KdbConnectionWrapper.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,6 @@ private String getCredentials() {
4343
return (username != null ? username : "") + ':' + (password != null ? password : "");
4444
}
4545

46-
47-
4846
public void executeAsyncQuery(String query) throws IOException {
4947
c connectionToKdb=open();
5048
try {
@@ -59,7 +57,7 @@ public void executeAsyncQuery(String query) throws IOException {
5957
public Object executeDeferredSyncFunction(KdbRequest kdbRequest) throws c.KException , IOException{
6058
c connectionToKdb=open();
6159
try {
62-
connectionToKdb.ks(kdbRequest.getFunctionTemplate(),
60+
connectionToKdb.ks(kdbRequest.getGatewayFunction(),
6361
new Object[]{kdbRequest.getFunctionName().toCharArray(),
6462
kdbRequest.getArguments().toCharArray()},
6563
kdbRequest.getCredentialDictionary());

src/main/java/uk/co/aquaq/kdb/controller/KdbController.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
@RestController
1717
public class KdbController {
18+
1819
@Autowired
1920
KdbService kdbService;
2021
@Value("${freeform.query.mode.enabled}")
@@ -24,15 +25,16 @@ public class KdbController {
2425
@RequestMapping(value = "/executeFunction", method = RequestMethod.POST)
2526
public Object executeFunction(@RequestBody FunctionRequest functionRequest, @RequestHeader("Authorization") String authString) {
2627
BasicCredentials authDetails =new BasicCredentials(authString);
28+
2729
return kdbService.executeFunction(functionRequest, authDetails);
2830
}
2931

3032
@CrossOrigin
3133
@RequestMapping(value = "/executeQuery", method = RequestMethod.POST)
3234
public List<Map<String, String>> executeQuery(@RequestBody QueryRequest queryRequest){
3335
if (freeFormQueryEnabled) {
34-
return kdbService.executeQuery(queryRequest);
3536

37+
return kdbService.executeQuery(queryRequest);
3638
} else {
3739
throw new InvalidRequestException("Invalid Request Free form queries not enabled.");
3840
}

src/main/java/uk/co/aquaq/kdb/request/KdbRequest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@ public class KdbRequest {
88

99
private String functionName;
1010
private String arguments;
11-
private String functionTemplate;
11+
private String gatewayFunction;
1212
private c.Dict credentialDictionary;
1313
}

src/main/java/uk/co/aquaq/kdb/request/KdbRequestBuilder.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,19 @@
1111
public class KdbRequestBuilder {
1212

1313
private KdbRequestBuilder (){}
14+
private static String gatewayFunction;
1415

15-
private static String functionTemplate;
16-
17-
@Value("${function}")
18-
public void setFunctionTemplate(String functionTemplate) {
19-
this.functionTemplate = functionTemplate;
16+
@Value("${gateway.function}")
17+
public void setGatewayFunction(String gatewayFunctionProp) {
18+
gatewayFunction = gatewayFunctionProp;
2019
}
2120

2221
public static KdbRequest buildKdbRequest(FunctionRequest functionRequest, BasicCredentials basicCredentials){
2322
KdbRequest kdbRequest = new KdbRequest();
2423
kdbRequest.setArguments(buildArgString(functionRequest.getArguments()));
2524
kdbRequest.setFunctionName(functionRequest.getFunction_name());
2625
kdbRequest.setCredentialDictionary(new c.Dict(new String[]{"user"},new String[]{basicCredentials.getUsername()}));
27-
kdbRequest.setFunctionTemplate(functionTemplate);
26+
kdbRequest.setGatewayFunction(gatewayFunction);
2827

2928
return kdbRequest;
3029
}

src/main/java/uk/co/aquaq/kdb/service/KdbService.java

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,38 +12,39 @@
1212
import uk.co.aquaq.kdb.request.KdbRequest;
1313
import uk.co.aquaq.kdb.request.KdbRequestBuilder;
1414
import uk.co.aquaq.kdb.security.BasicCredentials;
15-
1615
import java.util.ArrayList;
1716
import java.util.List;
1817
import java.util.Map;
1918

2019

2120
@Service
2221
public class KdbService {
22+
2323
@Autowired
2424
private KdbConnectionWrapper kdbConnector;
2525
private static final Logger logger = LoggerFactory.getLogger(KdbConnectionWrapper.class);
2626

2727
public Object executeFunction(FunctionRequest functionRequest, BasicCredentials credentialValues){
2828
KdbRequest kdbRequest= KdbRequestBuilder.buildKdbRequest(functionRequest,credentialValues);
29-
List<Map<String,String>> results = null;
3029
try {
3130
Object functionResult= kdbConnector.executeDeferredSyncFunction(kdbRequest);
32-
if(functionResult instanceof c.Flip){
33-
c.Flip flip= (c.Flip)kdbConnector.executeDeferredSyncFunction(kdbRequest);
34-
FlipConverter flipConverter = new FlipConverter();
35-
results= flipConverter.convertFlipToRecordList(flip);
36-
return results;
37-
}
38-
else{
39-
return functionResult;
40-
}
31+
return formatFunctionResult(functionResult);
4132
} catch (Exception exception) {
4233
logger.warn( exception.getMessage());
4334
}
4435
return null;
4536
}
4637

38+
private Object formatFunctionResult(Object functionResult) {
39+
if(functionResult instanceof c.Flip){
40+
c.Flip flip= (c.Flip)functionResult;
41+
FlipConverter flipConverter = new FlipConverter();
42+
functionResult= flipConverter.convertFlipToRecordList(flip);
43+
}
44+
45+
return functionResult;
46+
}
47+
4748
public List<Map<String, String>> executeQuery(QueryRequest queryRequest){
4849
if (queryRequest.getType().equals("sync") && queryRequest.getResponse().equals("true")) {
4950
return syncRead(queryRequest.getQuery());

src/main/resources/application.properties

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,10 @@ kdb.host=localhost
1414
kdb.port=6007
1515
kdb.username=admin
1616
kdb.password=admin
17-
function={@[value;`.aqrest.exec;{[x;y] value x}] . (x;y)}
17+
gateway.function={[request;properties] @[value;`.aqrest.exec;{[x;y] value x}] . (request;properties)}
1818

1919
server.port=8080
2020
freeform.query.mode.enabled=false
2121
basic.authentication.user=user
2222
basic.authentication.password=pass
23+

0 commit comments

Comments
 (0)