FINERACT-2169: Apply dto for external event config api;
This commit is contained in:
committed by
Adam Saghy
parent
9fe993342b
commit
84c101ab14
+9
-29
@@ -23,28 +23,20 @@ import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.media.Content;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import io.swagger.v3.oas.annotations.parameters.RequestBody;
|
||||
import io.swagger.v3.oas.annotations.responses.ApiResponse;
|
||||
import io.swagger.v3.oas.annotations.responses.ApiResponses;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import jakarta.ws.rs.Consumes;
|
||||
import jakarta.ws.rs.GET;
|
||||
import jakarta.ws.rs.PUT;
|
||||
import jakarta.ws.rs.Path;
|
||||
import jakarta.ws.rs.Produces;
|
||||
import jakarta.ws.rs.core.Context;
|
||||
import jakarta.ws.rs.core.MediaType;
|
||||
import jakarta.ws.rs.core.UriInfo;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.fineract.commands.domain.CommandWrapper;
|
||||
import org.apache.fineract.commands.service.CommandWrapperBuilder;
|
||||
import org.apache.fineract.commands.service.PortfolioCommandSourceWritePlatformService;
|
||||
import org.apache.fineract.infrastructure.core.api.ApiRequestParameterHelper;
|
||||
import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
|
||||
import org.apache.fineract.infrastructure.core.serialization.ApiRequestJsonSerializationSettings;
|
||||
import org.apache.fineract.infrastructure.core.serialization.DefaultToApiJsonSerializer;
|
||||
import org.apache.fineract.infrastructure.event.external.command.ExternalEventConfigurationCommand;
|
||||
import org.apache.fineract.infrastructure.event.external.data.ExternalEventConfigurationData;
|
||||
import org.apache.fineract.infrastructure.event.external.service.ExternalEventConfigurationReadPlatformService;
|
||||
import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
|
||||
@@ -56,12 +48,9 @@ import org.springframework.stereotype.Component;
|
||||
@Tag(name = "External event configuration", description = "External event configuration enables user to enable/disable event posting to downstream message channel")
|
||||
public class ExternalEventConfigurationApiResource {
|
||||
|
||||
private static final Set<String> RESPONSE_DATA_PARAMETERS = new HashSet<>(Arrays.asList("type", "enabled"));
|
||||
|
||||
private static final String RESOURCE_NAME_FOR_PERMISSIONS = "EXTERNAL_EVENT_CONFIGURATION";
|
||||
|
||||
private final PlatformSecurityContext context;
|
||||
private final ApiRequestParameterHelper apiRequestParameterHelper;
|
||||
private final PortfolioCommandSourceWritePlatformService commandWritePlatformService;
|
||||
private final DefaultToApiJsonSerializer<ExternalEventConfigurationData> jsonSerializer;
|
||||
private final ExternalEventConfigurationReadPlatformService readPlatformService;
|
||||
@@ -70,30 +59,21 @@ public class ExternalEventConfigurationApiResource {
|
||||
@Consumes({ MediaType.APPLICATION_JSON })
|
||||
@Produces({ MediaType.APPLICATION_JSON })
|
||||
@Operation(summary = "List all external event configurations", description = "")
|
||||
@ApiResponses({
|
||||
@ApiResponse(responseCode = "200", description = "List of all external event configurations", content = @Content(schema = @Schema(implementation = ExternalEventConfigurationApiResourceSwagger.GetExternalEventConfigurationsResponse.class))) })
|
||||
public String retrieveExternalEventConfiguration(@Context final UriInfo uriInfo) {
|
||||
public ExternalEventConfigurationData retrieveExternalEventConfiguration() {
|
||||
context.authenticatedUser().validateHasReadPermission(RESOURCE_NAME_FOR_PERMISSIONS);
|
||||
final ExternalEventConfigurationData configurationData = readPlatformService.findAllExternalEventConfigurations();
|
||||
final ApiRequestJsonSerializationSettings settings = apiRequestParameterHelper.process(uriInfo.getQueryParameters());
|
||||
return jsonSerializer.serialize(settings, configurationData, RESPONSE_DATA_PARAMETERS);
|
||||
return readPlatformService.findAllExternalEventConfigurations();
|
||||
}
|
||||
|
||||
@PUT
|
||||
@Consumes({ MediaType.APPLICATION_JSON })
|
||||
@Produces({ MediaType.APPLICATION_JSON })
|
||||
@Operation(summary = "Enable/Disable external events posting", description = "")
|
||||
@RequestBody(required = true, content = @Content(schema = @Schema(implementation = ExternalEventConfigurationApiResourceSwagger.PutExternalEventConfigurationsRequest.class)))
|
||||
@ApiResponses({
|
||||
@ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = CommandProcessingResult.class))) })
|
||||
public String updateExternalEventConfigurationsDetails(@Parameter(hidden = true) final String apiRequestBodyAsJson) {
|
||||
@RequestBody(required = true, content = @Content(schema = @Schema(implementation = ExternalEventConfigurationCommand.class)))
|
||||
public CommandProcessingResult updateExternalEventConfigurationsDetails(
|
||||
@Parameter(hidden = true) ExternalEventConfigurationCommand command) {
|
||||
context.authenticatedUser().validateHasUpdatePermission(RESOURCE_NAME_FOR_PERMISSIONS);
|
||||
final CommandWrapper commandRequest = new CommandWrapperBuilder() //
|
||||
.updateExternalEventConfigurations() //
|
||||
.withJson(apiRequestBodyAsJson) //
|
||||
.build();
|
||||
final CommandProcessingResult result = this.commandWritePlatformService.logCommandSource(commandRequest);
|
||||
return this.jsonSerializer.serialize(result);
|
||||
|
||||
final CommandWrapper commandRequest = new CommandWrapperBuilder().updateExternalEventConfigurations()
|
||||
.withJson(jsonSerializer.serialize(command)).build();
|
||||
return commandWritePlatformService.logCommandSource(commandRequest);
|
||||
}
|
||||
}
|
||||
|
||||
-48
@@ -1,48 +0,0 @@
|
||||
/**
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you 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.
|
||||
*/
|
||||
package org.apache.fineract.infrastructure.event.external.api;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import org.apache.fineract.infrastructure.event.external.data.ExternalEventConfigurationItemData;
|
||||
|
||||
final class ExternalEventConfigurationApiResourceSwagger {
|
||||
|
||||
private ExternalEventConfigurationApiResourceSwagger() {}
|
||||
|
||||
@Schema(description = "GetExternalEventConfigurationsResponse")
|
||||
public static final class GetExternalEventConfigurationsResponse {
|
||||
|
||||
private GetExternalEventConfigurationsResponse() {}
|
||||
|
||||
public List<ExternalEventConfigurationItemData> externalEventConfiguration;
|
||||
}
|
||||
|
||||
@Schema(description = "PutExternalEventConfigurationsRequest")
|
||||
public static final class PutExternalEventConfigurationsRequest {
|
||||
|
||||
private PutExternalEventConfigurationsRequest() {}
|
||||
|
||||
@Schema(example = "\"CentersCreateBusinessEvent\":true,\n" + "\"ClientActivateBusinessEvent\":true")
|
||||
public Map<String, Boolean> externalEventConfigurations;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
+6
-6
@@ -18,13 +18,13 @@
|
||||
*/
|
||||
package org.apache.fineract.infrastructure.event.external.command;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Map;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
public class ExternalEventConfigurationCommand {
|
||||
public record ExternalEventConfigurationCommand(Map<String, Boolean> externalEventConfigurations) implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private final Map<String, Boolean> externalEventConfigurations;
|
||||
}
|
||||
|
||||
+1
-1
@@ -44,7 +44,7 @@ public class ExternalEventConfigurationWritePlatformServiceImpl implements Exter
|
||||
@Override
|
||||
public CommandProcessingResult updateConfigurations(final JsonCommand command) {
|
||||
final ExternalEventConfigurationCommand configurationCommand = fromApiJsonDeserializer.commandFromApiJson(command.json());
|
||||
final Map<String, Boolean> commandConfigurations = configurationCommand.getExternalEventConfigurations();
|
||||
final Map<String, Boolean> commandConfigurations = configurationCommand.externalEventConfigurations();
|
||||
final Map<String, Object> changes = new HashMap<>();
|
||||
final Map<String, Boolean> changedConfigurations = new HashMap<>();
|
||||
final List<ExternalEventConfiguration> modifiedConfigurations = new ArrayList<>();
|
||||
|
||||
Reference in New Issue
Block a user