package io.fathom.cloud.storage;
import io.fathom.cloud.storage.FileService;
import io.fathom.cloud.storage.StorageService;
import io.fathom.cloud.storage.api.os.resources.BucketResource;
import io.fathom.cloud.storage.api.os.resources.DevResource;
import io.fathom.cloud.storage.api.os.resources.ObjectResource;
import io.fathom.cloud.storage.api.os.resources.ProjectResource;
import io.fathom.cloud.storage.api.os.resources.WatchResource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.fathomdb.extensions.ExtensionModuleBase;
import com.fathomdb.extensions.HttpConfiguration;
public class StorageExtension extends ExtensionModuleBase {
private static final Logger log = LoggerFactory.getLogger(StorageExtension.class);
@Override
public void addHttpExtensions(HttpConfiguration http) {
// boolean ENABLE_S3 = false;
// if (ENABLE_S3) {
// http.bind(S3Resource.class);
// }
//
// if (ENABLE_S3) {
// http.filter("/*").through(AwsFilter.class);
// }
http.bind(ProjectResource.class);
http.bind(BucketResource.class);
http.bind(ObjectResource.class);
http.bind(WatchResource.class);
log.warn("Binding development mode resources");
http.bind(DevResource.class);
}
@Override
protected void configure() {
bind(StorageService.class).to(StorageServiceImpl.class);
bind(FileService.class).to(FileServiceImpl.class);
bind(FileServiceInternal.class).to(FileServiceImpl.class);
bind(StorageDerivedMetadata.class).to(StorageDerivedMetadataImpl.class);
}
}