All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.sphere.internal.ChannelServiceImpl Maven / Gradle / Ivy

There is a newer version: 0.72.1
Show newest version
package io.sphere.internal;

import io.sphere.client.CommandRequest;
import io.sphere.client.ProjectEndpoints;
import io.sphere.client.model.QueryResult;
import io.sphere.client.model.VersionedId;
import io.sphere.client.shop.ChannelService;
import io.sphere.client.shop.model.Channel;
import io.sphere.client.shop.model.ChannelRoles;
import io.sphere.client.shop.model.ChannelUpdate;
import io.sphere.internal.command.ChannelCommands;
import io.sphere.internal.command.UpdateCommand;
import io.sphere.internal.request.RequestFactory;
import org.codehaus.jackson.type.TypeReference;

import java.util.Set;

public class ChannelServiceImpl extends ProjectScopedAPI implements ChannelService {
    public ChannelServiceImpl(RequestFactory requestFactory, ProjectEndpoints endpoints) {
        super(requestFactory, endpoints, new TypeReference() {}, new TypeReference>(){});
    }

    @Override
    public CommandRequest create(String key) {
        return createCommandRequest(new ChannelCommands.CreateChannel(key));
    }

    @Override
    public CommandRequest create(String key, Set roles) {
        return createCommandRequest(new ChannelCommands.CreateChannel(key, roles));
    }

    @Override
    public CommandRequest updateChannel(VersionedId versionedId, ChannelUpdate update) {
        return createCommandRequest(
                endpoints.channels.byId(versionedId.getId()),
                new UpdateCommand(versionedId.getVersion(), update));
    }

    private CommandRequest createCommandRequest(ChannelCommands.CreateChannel command) {
        return createCommandRequest(endpoints.channels.root(), command);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy