X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fonap%2Fmusic%2Fconductor%2Fconditionals%2FRestMusicConditionalAPI.java;fp=src%2Fmain%2Fjava%2Forg%2Fonap%2Fmusic%2Fconductor%2Fconditionals%2FRestMusicConditionalAPI.java;h=0000000000000000000000000000000000000000;hb=11ee6836d6f25a1becdea60a322a72fbffd4b8b6;hp=584a9e470b744397d0ccbe65bbd3f184c173a563;hpb=a00014e78f18134f998fb46a7dd543e6ea05a3bd;p=music.git diff --git a/src/main/java/org/onap/music/conductor/conditionals/RestMusicConditionalAPI.java b/src/main/java/org/onap/music/conductor/conditionals/RestMusicConditionalAPI.java deleted file mode 100644 index 584a9e47..00000000 --- a/src/main/java/org/onap/music/conductor/conditionals/RestMusicConditionalAPI.java +++ /dev/null @@ -1,205 +0,0 @@ -/* - * ============LICENSE_START========================================== - * org.onap.music - * =================================================================== - * Copyright (c) 2017 AT&T Intellectual Property - * =================================================================== - * Modifications Copyright (c) 2018 IBM - * =================================================================== - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * ============LICENSE_END============================================= - * ==================================================================== - */ - -package org.onap.music.conductor.conditionals; - -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.Map; - -import javax.ws.rs.Consumes; -import javax.ws.rs.HeaderParam; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.Response.ResponseBuilder; -import javax.ws.rs.core.Response.Status; - -import org.onap.music.datastore.MusicDataStoreHandle; -import org.onap.music.datastore.PreparedQueryObject; -import org.onap.music.eelf.logging.EELFLoggerDelegate; -import org.onap.music.eelf.logging.format.AppMessages; -import org.onap.music.eelf.logging.format.ErrorSeverity; -import org.onap.music.eelf.logging.format.ErrorTypes; -import org.onap.music.main.MusicUtil; -import org.onap.music.main.ResultType; -import org.onap.music.main.ReturnType; -import org.onap.music.response.jsonobjects.JsonResponse; -import org.onap.music.conductor.*; - -import com.datastax.driver.core.DataType; -import com.datastax.driver.core.TableMetadata; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiParam; - -@Path("/v2/conditional") -@Api(value = "Conditional Api", hidden = true) -public class RestMusicConditionalAPI { - private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(RestMusicConditionalAPI.class); - private static final String XMINORVERSION = "X-minorVersion"; - private static final String XPATCHVERSION = "X-patchVersion"; - private static final String NS = "ns"; - private static final String VERSION = "v2"; - - @POST - @Path("/insert/keyspaces/{keyspace}/tables/{tablename}") - @Consumes(MediaType.APPLICATION_JSON) - @Produces(MediaType.APPLICATION_JSON) - public Response insertConditional( - @ApiParam(value = "Major Version", required = true) - @PathParam("version") String version, - @ApiParam(value = "Minor Version", required = false) - @HeaderParam(XMINORVERSION) String minorVersion, - @ApiParam(value = "Patch Version", required = false) - @HeaderParam(XPATCHVERSION) String patchVersion, - @ApiParam(value = "AID", required = true) - @HeaderParam("aid") String aid, - @ApiParam(value = "Application namespace", required = true) - @HeaderParam(NS) String ns, - @ApiParam(value = "Authorization", required = true) - @HeaderParam("Authorization") String authorization, - @ApiParam(value = "Keyspace Name", required = true) - @PathParam("keyspace") String keyspace, - @ApiParam(value = "Table Name", required = true) - @PathParam("tablename") String tablename, - JsonConditional jsonObj) throws Exception { - ResponseBuilder response = - MusicUtil.buildVersionResponse(VERSION, minorVersion, patchVersion); - String primaryKey = jsonObj.getPrimaryKey(); - String primaryKeyValue = jsonObj.getPrimaryKeyValue(); - String casscadeColumnName = jsonObj.getCasscadeColumnName(); - Map tableValues = jsonObj.getTableValues(); - Map casscadeColumnData = jsonObj.getCasscadeColumnData(); - Map> conditions = jsonObj.getConditions(); - - if (primaryKey == null || primaryKeyValue == null || casscadeColumnName == null - || tableValues.isEmpty() || casscadeColumnData.isEmpty() || conditions.isEmpty()) { - logger.error(EELFLoggerDelegate.errorLogger, "", AppMessages.MISSINGINFO, ErrorSeverity.CRITICAL, - ErrorTypes.AUTHENTICATIONERROR); - return response.status(Status.UNAUTHORIZED).entity(new JsonResponse(ResultType.FAILURE) - .setError(String.valueOf("One or more input values missing")).toMap()).build(); - } - Map authMap = null; - Map valuesMap = new LinkedHashMap<>(); - for (Map.Entry entry : tableValues.entrySet()) { - valuesMap.put(entry.getKey(), entry.getValue()); - } - - Map status = new HashMap<>(); - status.put("exists", conditions.get("exists").get("status")); - status.put("nonexists", conditions.get("nonexists").get("status")); - ReturnType out = null; - - out = MusicConditional.conditionalInsert(keyspace, tablename, - casscadeColumnName, casscadeColumnData,primaryKeyValue, valuesMap, status); - return response.status(Status.OK).entity(new JsonResponse( - out.getResult()).setMessage(out.getMessage()).toMap()) - .build(); - - } - - @SuppressWarnings("unchecked") - @PUT - @Path("/update/keyspaces/{keyspace}/tables/{tablename}") - @Consumes(MediaType.APPLICATION_JSON) - @Produces(MediaType.APPLICATION_JSON) - public Response updateConditional( - @ApiParam(value = "Major Version", required = true) - @PathParam("version") String version, - @ApiParam(value = "Minor Version", required = false) - @HeaderParam(XMINORVERSION) String minorVersion, - @ApiParam(value = "Patch Version", required = false) - @HeaderParam(XPATCHVERSION) String patchVersion, - @ApiParam(value = "AID", required = true) - @HeaderParam("aid") String aid, - @ApiParam(value = "Application namespace", required = true) - @HeaderParam(NS) String ns, - @ApiParam(value = "Authorization", required = true) - @HeaderParam("Authorization") String authorization, - @ApiParam(value = "Major Version", required = true) - @PathParam("keyspace") String keyspace, - @ApiParam(value = "Major Version", required = true) - @PathParam("tablename") String tablename, - JsonConditional upObj) throws Exception { - ResponseBuilder response = MusicUtil.buildVersionResponse(VERSION, minorVersion, patchVersion); - - String primaryKey = upObj.getPrimaryKey(); - String primaryKeyValue = upObj.getPrimaryKeyValue(); - String casscadeColumnName = upObj.getCasscadeColumnName(); - Map casscadeColumnData = upObj.getCasscadeColumnData(); - Map tableValues = upObj.getTableValues(); - - if (primaryKey == null || primaryKeyValue == null || casscadeColumnName == null - || casscadeColumnData.isEmpty()) { - logger.error(EELFLoggerDelegate.errorLogger, "", AppMessages.MISSINGINFO, ErrorSeverity.CRITICAL, - ErrorTypes.AUTHENTICATIONERROR); - return response.status(Status.UNAUTHORIZED).entity(new JsonResponse(ResultType.FAILURE) - .setError(String.valueOf("One or more input values missing")).toMap()).build(); - - } - - Map casscadeColumnValueMap = - (Map) casscadeColumnData.get("value"); - TableMetadata tableInfo = null; - tableInfo = MusicDataStoreHandle.returnColumnMetadata(keyspace, tablename); - DataType primaryIdType = tableInfo.getPrimaryKey().get(0).getType(); - String primaryId = tableInfo.getPrimaryKey().get(0).getName(); - - PreparedQueryObject select = new PreparedQueryObject(); - select.appendQueryString("SELECT * FROM " + keyspace + "." - + tablename + " where " + primaryId + " = ?"); - select.addValue(MusicUtil.convertToActualDataType(primaryIdType, primaryKeyValue)); - - PreparedQueryObject upsert = - MusicConditional.extractQuery(tableValues, tableInfo, tablename, - keyspace, primaryKey, primaryKeyValue, null, null); - Map queryBank = new HashMap<>(); - queryBank.put(MusicUtil.SELECT, select); - queryBank.put(MusicUtil.UPSERT, upsert); - String planId = casscadeColumnData.get("key").toString(); - ReturnType result = MusicConditional.update(new UpdateDataObject().setQueryBank(queryBank) - .setKeyspace(keyspace) - .setTableName(tablename) - .setPrimaryKey(primaryKey) - .setPrimaryKeyValue(primaryKeyValue) - .setPlanId(planId) - .setCascadeColumnName(casscadeColumnName) - .setCascadeColumnValues(casscadeColumnValueMap)); - if (result.getResult() == ResultType.SUCCESS) { - return response.status(Status.OK) - .entity(new JsonResponse(result.getResult()) - .setMessage(result.getMessage()).toMap()).build(); - } - return response.status(Status.BAD_REQUEST) - .entity(new JsonResponse(result.getResult()) - .setMessage(result.getMessage()).toMap()).build(); - - } - -} \ No newline at end of file