package io.cattle.platform.servicediscovery.api.action; import io.cattle.platform.api.action.ActionHandler; import io.cattle.platform.core.constants.ServiceConstants; import io.cattle.platform.core.model.Stack; import io.cattle.platform.object.ObjectManager; import io.cattle.platform.object.util.DataAccessor; import io.cattle.platform.util.type.CollectionUtils; import io.github.ibuildthecloud.gdapi.request.ApiRequest; import java.util.HashMap; import java.util.Map; import javax.inject.Inject; import javax.inject.Named; @Named public class AddOutputsActionHandler implements ActionHandler { @Inject ObjectManager objectManager; @Override public String getName() { return ServiceConstants.TYPE_STACK + "." + ServiceConstants.ACTION_ADD_OUTPUTS; } @Override public Object perform(String name, Object obj, ApiRequest request) { if (!(obj instanceof Stack)) { return null; } Stack env = (Stack)obj; Map<String, Object> updates = new HashMap<>(DataAccessor.fieldMap(env, ServiceConstants.FIELD_OUTPUTS)); updates.putAll(CollectionUtils.<String, Object>toMap(CollectionUtils.toMap(request.getRequestObject()).get(ServiceConstants.FIELD_OUTPUTS))); objectManager.setFields(obj, ServiceConstants.FIELD_OUTPUTS, updates); return objectManager.reload(env); } }