Synch front-end and back-end method paths for AC 39/739/1
authorLott, Christopher (cl778h) <cl778h@att.com>
Fri, 16 Aug 2019 19:05:26 +0000 (15:05 -0400)
committerLott, Christopher (cl778h) <cl778h@att.com>
Fri, 16 Aug 2019 19:06:02 +0000 (15:06 -0400)
Get/Put use the same method name.  The front-end was
calling method "catime", which never existed.

Change-Id: I72ee2fe14c2f91dffaead7cc7bd7b96fbd4b8db0
Signed-off-by: Lott, Christopher (cl778h) <cl778h@att.com>
docs/release-notes.rst
webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/controller/AcXappController.java
webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/controller/AcXappControllerTest.java
webapp-frontend/src/app/services/ac-xapp/ac-xapp.service.ts

index 07e420d..90e1b73 100644 (file)
@@ -23,7 +23,7 @@ Version 1.2.1, ? Aug 2019
 -------------------------
 * Add EPSDK-FW user management and Portal security
 
-Version 1.2.0, 15 Aug 2019
+Version 1.2.0, 16 Aug 2019
 --------------------------
 * Split URL properties into prefix/suffix parts
 * Add jacoco plugin to back-end for code coverage
@@ -39,6 +39,7 @@ Version 1.2.0, 15 Aug 2019
 * Extend E2 mock configuration for demo purposes
 * Add pattern for matching AC/admin application name
 * Add custom (plain but not white-label) error page
+* Synch A1 method paths in front-end and back-end
 
 Version 1.0.5, 5 July 2019
 --------------------------
index 570bd41..8868d2b 100644 (file)
@@ -59,9 +59,9 @@ public class AcXappController {
        private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
        // Publish paths in constants so tests are easy to write
-       public static final String CONTROLLER_PATH = DashboardConstants.ENDPOINT_PREFIX + "/xapp/ac";
+       public static final String CONTROLLER_PATH = DashboardConstants.ENDPOINT_PREFIX + "/xapp/admctrl";
        // Endpoints
-       public static final String ADMCTRL_METHOD = "/admctrl";
+       public static final String POLICY_METHOD = "policy";
        public static final String VERSION_METHOD = DashboardConstants.VERSION_METHOD;
 
        // A "control" is an element in the XApp descriptor
@@ -89,7 +89,7 @@ public class AcXappController {
         * GET policy is not supported at present by A1 Mediator! Always returns 501.
         */
        @ApiOperation(value = "Gets the admission control policy for AC xApp via the A1 Mediator")
-       @GetMapping(ADMCTRL_METHOD)
+       @GetMapping(POLICY_METHOD)
        @Secured({ DashboardConstants.ROLE_ADMIN, DashboardConstants.ROLE_STANDARD })
        public Object getAdmissionControlPolicy(HttpServletResponse response) {
                logger.debug("getAdmissionControlPolicy");
@@ -102,11 +102,11 @@ public class AcXappController {
         * fields are defined in the ACAdmissionIntervalControl Typescript interface.
         */
        @ApiOperation(value = "Sets the admission control policy for AC xApp via the A1 Mediator")
-       @PutMapping(ADMCTRL_METHOD)
+       @PutMapping(POLICY_METHOD)
        @Secured({ DashboardConstants.ROLE_ADMIN })
-       public void setAdmissionControlPolicy(@ApiParam(value = "Admission control policy") @RequestBody JsonNode acPolicy, //
+       public void putAdmissionControlPolicy(@ApiParam(value = "Admission control policy") @RequestBody JsonNode acPolicy, //
                        HttpServletResponse response) {
-               logger.debug("setAdmissionControlPolicy {}", acPolicy);
+               logger.debug("putAdmissionControlPolicy {}", acPolicy);
                a1MediatorApi.a1ControllerPutHandler(AC_CONTROL_NAME, acPolicy);
                response.setStatus(a1MediatorApi.getApiClient().getStatusCode().value());
        }
index 8f8292f..7de3bcd 100644 (file)
@@ -50,7 +50,7 @@ public class AcXappControllerTest extends AbstractControllerTest {
        @Test
        public void getTest() throws IOException {
                // Always returns 501; surprised that no exception is thrown.
-               URI uri = buildUri(null, AcXappController.CONTROLLER_PATH, AcXappController.ADMCTRL_METHOD);
+               URI uri = buildUri(null, AcXappController.CONTROLLER_PATH, AcXappController.POLICY_METHOD);
                logger.info("Invoking {}", uri);
                ResponseEntity<String> response = testRestTemplateStandardRole().exchange(uri, HttpMethod.GET, null,
                                String.class);
@@ -61,7 +61,7 @@ public class AcXappControllerTest extends AbstractControllerTest {
        public void putTest() throws IOException {
                ObjectMapper mapper = new ObjectMapper();
                JsonNode body = mapper.readTree("{ \"policy\" : true }");
-               URI uri = buildUri(null, AcXappController.CONTROLLER_PATH, AcXappController.ADMCTRL_METHOD);
+               URI uri = buildUri(null, AcXappController.CONTROLLER_PATH, AcXappController.POLICY_METHOD);
                HttpEntity<JsonNode> entity = new HttpEntity<>(body);
                logger.info("Invoking {}", uri);
                ResponseEntity<Void> voidResponse = testRestTemplateAdminRole().exchange(uri, HttpMethod.PUT, entity,
index 907c325..19e5fc9 100644 (file)
@@ -33,7 +33,8 @@ import { DashboardSuccessTransport } from '../../interfaces/dashboard.types';
 })
 export class ACXappService {
 
-  private basePath = 'api/xapp/ac';
+  private basePath = 'api/xapp/admctl';
+  private policyPath = 'policy';
 
   private buildPath(...args: any[]) {
     let result = this.basePath;
@@ -59,13 +60,22 @@ export class ACXappService {
     );
   }
 
+  /**
+   * Gets admission control parameters.
+   * @returns Observable that should yield an ACAdmissionIntervalControl
+   */
+  getPolicy(): Observable<ACAdmissionIntervalControl> {
+    const url = this.buildPath(this.policyPath);
+    return this.httpClient.get<ACAdmissionIntervalControl>(url);
+  }
+
   /**
    * Puts admission control parameters.
    * @param policy an instance of ACAdmissionIntervalControl
    * @returns Observable that should yield a response code, no data
    */
   putPolicy(policy: ACAdmissionIntervalControl): Observable<any> {
-    const url = this.buildPath('catime');
+    const url = this.buildPath(this.policyPath);
     return this.httpClient.put<ACAdmissionIntervalControlAck>(url, policy, { observe: 'response' });
   }