Get data job result

    - extended openapi
    - added not-implemented http error for result endpoint
    - added testware
    - added stub implementation
    - fixed writeDataJob bug in stub

Issue-ID: CPS-2296
Signed-off-by: leventecsanyi <levente.csanyi@est.tech>
Change-Id: I9398cb73b635bec360df886372690187ff54e0d4
diff --git a/dmi-service/openapi/openapi-datajob.yml b/dmi-service/openapi/openapi-datajob.yml
index 68ee3ec..aa93623 100644
--- a/dmi-service/openapi/openapi-datajob.yml
+++ b/dmi-service/openapi/openapi-datajob.yml
@@ -74,6 +74,20 @@
       responses:
         "501":
           $ref: '#/components/responses/NotImplemented'
+  /v1/dataJob/{requestId}/dataProducerJob/{dataProducerJobId}/result:
+    get:
+      description: Retrieve the result of a data job.
+      operationId: getDataJobResult
+      parameters:
+        - $ref: '#/components/parameters/requestIdInPath'
+        - $ref: '#/components/parameters/dataProducerJobIdInPath'
+        - $ref: '#/components/parameters/dataProducerIdInQuery'
+        - $ref: '#/components/parameters/destinationInQuery'
+      tags:
+        - dmi-datajob
+      responses:
+        "501":
+          $ref: '#/components/responses/NotImplemented'
 
 components:
   parameters:
@@ -101,6 +115,14 @@
       schema:
         type: string
         example: some-data-producer-identifier
+    destinationInQuery:
+      name: destination
+      in: query
+      description: The destination of the results (Kafka topic name or s3 bucket name)
+      required: true
+      schema:
+        type: string
+        example: some-destination
   schemas:
     ErrorMessage:
       type: object
diff --git a/dmi-service/src/main/java/org/onap/cps/ncmp/dmi/datajobs/rest/controller/DmiDatajobsRestController.java b/dmi-service/src/main/java/org/onap/cps/ncmp/dmi/datajobs/rest/controller/DmiDatajobsRestController.java
index 8cf9f1f..928ec6b 100644
--- a/dmi-service/src/main/java/org/onap/cps/ncmp/dmi/datajobs/rest/controller/DmiDatajobsRestController.java
+++ b/dmi-service/src/main/java/org/onap/cps/ncmp/dmi/datajobs/rest/controller/DmiDatajobsRestController.java
@@ -34,13 +34,13 @@
     /**
      * This method is not implemented for ONAP DMI plugin.
      *
-     * @param requestId Identifier for the overall Datajob (required)
-     * @param subjobReadRequest Operation body (optional)
-     * @return (@ code ResponseEntity) response entity
+     * @param requestId                Identifier for the overall Datajob (required)
+     * @param subjobReadRequest        Operation body (optional)
+     * @return (@ code ResponseEntity) Response entity
      */
     @Override
     public ResponseEntity<Void> readDataJob(final String requestId,
-                                              final SubjobReadRequest subjobReadRequest) {
+                                            final SubjobReadRequest subjobReadRequest) {
 
         return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
     }
@@ -48,23 +48,23 @@
     /**
      * This method is not implemented for ONAP DMI plugin.
      *
-     * @param requestId Identifier for the overall Datajob (required)
-     * @param subjobWriteRequest Operation body (optional)
-     * @return (@ code ResponseEntity) response entity
+     * @param requestId                Identifier for the overall Datajob (required)
+     * @param subjobWriteRequest       Operation body (optional)
+     * @return (@ code ResponseEntity) Response entity
      */
     @Override
     public ResponseEntity<Void> writeDataJob(final String requestId,
-                                                               final SubjobWriteRequest subjobWriteRequest) {
+                                             final SubjobWriteRequest subjobWriteRequest) {
         return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
     }
 
     /**
      * This method is not implemented for ONAP DMI plugin.
      *
-     * @param requestId Identifier for the overall Datajob (required)
-     * @param dataProducerJobId Identifier for the data producer job (required)
-     * @param dataProducerId Identifier for the data producer as a query parameter (required)
-     * @return ResponseEntity(Void) response entity indicating the method is not implemented
+     * @param requestId             Identifier for the overall Datajob (required)
+     * @param dataProducerJobId     Identifier for the data producer job (required)
+     * @param dataProducerId        Identifier for the data producer as a query parameter (required)
+     * @return ResponseEntity       Response entity indicating the method is not implemented
      */
     @Override
     public ResponseEntity<Void> getDataJobStatus(final String requestId,
@@ -72,4 +72,21 @@
                                                  final String dataProducerId) {
         return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
     }
+
+    /**
+     * This method is not implemented for ONAP DMI plugin.
+     *
+     * @param requestId             Identifier for the overall Datajob (required)
+     * @param dataProducerJobId     Identifier for the data producer job (required)
+     * @param dataProducerId        Identifier for the data producer as a query parameter (required)
+     * @param destination           The destination of the results, Kafka topic name or s3 bucket name (required)
+     * @return ResponseEntity       Response entity indicating the method is not implemented
+     */
+    @Override
+    public ResponseEntity<Void> getDataJobResult(final String requestId,
+                                                 final String dataProducerJobId,
+                                                 final String dataProducerId,
+                                                 final String destination) {
+        return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+    }
 }
diff --git a/dmi-service/src/test/groovy/org/onap/cps/ncmp/dmi/datajobs/rest/controller/DmiDatajobsRestControllerSpec.groovy b/dmi-service/src/test/groovy/org/onap/cps/ncmp/dmi/datajobs/rest/controller/DmiDatajobsRestControllerSpec.groovy
index 69d2ebd..6c05f6f 100644
--- a/dmi-service/src/test/groovy/org/onap/cps/ncmp/dmi/datajobs/rest/controller/DmiDatajobsRestControllerSpec.groovy
+++ b/dmi-service/src/test/groovy/org/onap/cps/ncmp/dmi/datajobs/rest/controller/DmiDatajobsRestControllerSpec.groovy
@@ -79,4 +79,16 @@
         then: 'response value is Not Implemented'
             response.status == HttpStatus.NOT_IMPLEMENTED.value()
     }
+
+    def 'get result request should return 501 HTTP Status' () {
+        given: 'URL to get the result of a data job'
+            def getStatus = "${basePathV1}/dataJob/some-identifier/dataProducerJob/some-producer-job-identifier/result?dataProducerId=some-data-producer-identifier&destination=some-destination"
+        when: 'the request is performed'
+            def response = mvc.perform(
+                    get(getStatus)
+                            .contentType('application/json')
+            ).andReturn().response
+        then: 'response value is Not Implemented'
+            response.status == HttpStatus.NOT_IMPLEMENTED.value()
+    }
 }