package com.theorchard.javaowsassetbulkscript.logic;

import java.io.File;
import java.io.IOException;
import java.util.List;

import com.jcraft.jsch.SftpException;

public class AWSWrapper {
		
	private String region;

	private AmazonS3Connector as3Connector;

	public AWSWrapper(String publicKey, String privateKey, String token, String bucket, String region) {
		as3Connector = new AmazonS3Connector(bucket, publicKey, privateKey, token);
		
		this.region = region;
	}

	public AWSWrapper(String publicKey, String privateKey, String bucket, String region) {
		as3Connector = new AmazonS3Connector(bucket, publicKey, privateKey);

		this.region = region;
	}
	
	public void connect() {
		if (as3Connector != null) {
			try {
				as3Connector.establishConnection(region);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
	
	public void close() throws IOException {
		if (as3Connector != null) {
			as3Connector.closeConnection();
		}
	}
	
	public void mkdir(String dir) throws SftpException {
		
	}
	
	public void uploadToDir(File local, String remoteDir, String targetFileName) throws SftpException, IOException {
		as3Connector.uploadFile(targetFileName, local, remoteDir);
	}

	public boolean fileExists(String path, String fileName) {
		return as3Connector.exists(fileName, path);
	}

	public Long getFileSize(String path, String fileName) {
		return as3Connector.getFileSize(path, fileName);
	}

	public List<String> listFiles(String path, String regex) {
		List<String> files = as3Connector.listFiles(path, regex);
		return files;
	}

	public void download(String path, String fileName, File outFile) {
		as3Connector.download(path, fileName, outFile);
	}
}
