package com.github.dreamhead.moco.rest;
import com.github.dreamhead.moco.HttpsCertificate;
import com.github.dreamhead.moco.MocoConfig;
import com.github.dreamhead.moco.MocoMonitor;
import com.github.dreamhead.moco.RestServer;
import com.github.dreamhead.moco.RestSetting;
import com.github.dreamhead.moco.internal.ActualHttpServer;
import com.github.dreamhead.moco.internal.InternalApis;
import com.google.common.base.Optional;
import static com.github.dreamhead.moco.rest.RestIds.checkResourceName;
import static com.github.dreamhead.moco.util.Iterables.asIterable;
import static com.github.dreamhead.moco.util.URLs.resourceRoot;
import static com.google.common.base.Preconditions.checkNotNull;
public class ActualRestServer extends ActualHttpServer implements RestServer {
public ActualRestServer(final Optional<Integer> port,
final Optional<HttpsCertificate> certificate,
final MocoMonitor monitor,
final MocoConfig... configs) {
super(port, certificate, monitor, configs);
}
@Override
public void resource(final String name, final RestSetting setting, final RestSetting... settings) {
checkResourceName(name);
RestHandler handler = new RestHandler(name, asIterable(
checkNotNull(setting, "Rest setting should not be null"),
checkNotNull(settings, "Rest settings should not be null")));
this.request(InternalApis.context(resourceRoot(name))).response(handler);
}
}