// Path: src/java/rocks/teammolise/myunimol/webapp/configuration/ConfigurationManager.java
// public class ConfigurationManager implements ConfigurationManagerInterface{  
// 	private File file;
// 	
// 	public ConfigurationManager(String pFilename) {
// 		this.file = new File(pFilename);
// 	}
//     
//     public Properties loadProperties() throws IOException {
//         
//         Properties properties = new Properties();
// 
//         /**
//          * Carico il file config.properties in un File con il suo absolute path **TO FIX**
//          */
// 
//         FileInputStream input = new FileInputStream(file);
//         
//         properties.load(input);
//         
//         input.close();
//         
//         return properties;
//     }
//    
//     @Override
//     public String getWebAppURL() throws IOException {
//  
//       String URL = loadProperties().getProperty("URL");
//         
//       return URL;  
//     }
// 
//     @Override
//     public String getWebServicesRoot() throws IOException {
//        
//       String root = loadProperties().getProperty("root");
//              
//       return root;       
//     }
// 
//     @Override
//     public String getToken() throws IOException {
//              
//         String token = loadProperties().getProperty("token");
//               
//         return token;        
//     }
//     
//     @Override
//     public boolean isAllowed(String pUsername) throws IOException {
//     	String betatest = loadProperties().getProperty("betatest");
//     	
//     	if (!betatest.equals("true"))
//     		return true;
//     	
//     	String allowedsStringList = loadProperties().getProperty("allowed");
//     	String[] alloweds = allowedsStringList.split(";");
//     	for (String allowed : alloweds) {
//     		if (pUsername.equals(allowed))
//     			return true;
//     	}
//     	
//     	return false;
//     }
//     
//     public boolean checkAdminPassword(String pPassword) {
//     	try {
//     		String adminPassword = loadProperties().getProperty("admin");
//     		return pPassword.equals(adminPassword);
//     	} catch (IOException e) {
//     		return false;
//     	}
//     }
// 
// 	@Override
// 	public void allowUser(String pUsername) throws IOException {
// 		Properties properties = loadProperties();
// 		
// 		properties.put("allowed", properties.get("allowed") + ";" + pUsername);
// 		
// 		FileOutputStream stream = new FileOutputStream(this.file);
// 		
// 		properties.store(stream, "");
// 		
// 		stream.close();
// 	}
// 
// 	@Override
// 	public String showConfig() {
// 		try {
// 			return new String(Files.readAllBytes(this.file.toPath()), StandardCharsets.UTF_8);
// 		} catch (IOException e) {
// 			return "???";
// 		}
// 	}
// 
// 	@Override
// 	public String getMongoDbUri() throws IOException {
// 		String mdburi = loadProperties().getProperty("mongodburi");
// 		return mdburi;
// 	}
// }
// 
// Path: src/java/rocks/teammolise/myunimol/webapp/configuration/ConfigurationManagerHandler.java
// public class ConfigurationManagerHandler {
// 	
// 	private static String filename;
//     
//     public static ConfigurationManager getInstance(){
//        
//         ConfigurationManager confManager = new ConfigurationManager(filename);
//               
//         return confManager;        
//     }
//     
//     public static void setConfigurationFilename(String pFilename) {
//     	filename = pFilename;
//     }
// }


import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import org.json.JSONObject;
import rocks.teammolise.myunimol.webapp.configuration.ConfigurationManager;
import rocks.teammolise.myunimol.webapp.configuration.ConfigurationManagerHandler;
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;
import com.mashape.unirest.http.exceptions.UnirestException;
import com.mashape.unirest.request.HttpRequestWithBody;
import com.mashape.unirest.request.body.MultipartBody;
package rocks.teammolise.myunimol.api;





/**
 * Permette di consumare le API
 * 
 * @author simone
 */
public class APIConsumer {
	private JSONObject consume(String pAPI, Map<String, Object> pParameters)
			throws UnirestException, IOException {
// Path: src/java/rocks/teammolise/myunimol/webapp/configuration/ConfigurationManager.java
// public class ConfigurationManager implements ConfigurationManagerInterface{  
// 	private File file;
// 	
// 	public ConfigurationManager(String pFilename) {
// 		this.file = new File(pFilename);
// 	}
//     
//     public Properties loadProperties() throws IOException {
//         
//         Properties properties = new Properties();
// 
//         /**
//          * Carico il file config.properties in un File con il suo absolute path **TO FIX**
//          */
// 
//         FileInputStream input = new FileInputStream(file);
//         
//         properties.load(input);
//         
//         input.close();
//         
//         return properties;
//     }
//    
//     @Override
//     public String getWebAppURL() throws IOException {
//  
//       String URL = loadProperties().getProperty("URL");
//         
//       return URL;  
//     }
// 
//     @Override
//     public String getWebServicesRoot() throws IOException {
//        
//       String root = loadProperties().getProperty("root");
//              
//       return root;       
//     }
// 
//     @Override
//     public String getToken() throws IOException {
//              
//         String token = loadProperties().getProperty("token");
//               
//         return token;        
//     }
//     
//     @Override
//     public boolean isAllowed(String pUsername) throws IOException {
//     	String betatest = loadProperties().getProperty("betatest");
//     	
//     	if (!betatest.equals("true"))
//     		return true;
//     	
//     	String allowedsStringList = loadProperties().getProperty("allowed");
//     	String[] alloweds = allowedsStringList.split(";");
//     	for (String allowed : alloweds) {
//     		if (pUsername.equals(allowed))
//     			return true;
//     	}
//     	
//     	return false;
//     }
//     
//     public boolean checkAdminPassword(String pPassword) {
//     	try {
//     		String adminPassword = loadProperties().getProperty("admin");
//     		return pPassword.equals(adminPassword);
//     	} catch (IOException e) {
//     		return false;
//     	}
//     }
// 
// 	@Override
// 	public void allowUser(String pUsername) throws IOException {
// 		Properties properties = loadProperties();
// 		
// 		properties.put("allowed", properties.get("allowed") + ";" + pUsername);
// 		
// 		FileOutputStream stream = new FileOutputStream(this.file);
// 		
// 		properties.store(stream, "");
// 		
// 		stream.close();
// 	}
// 
// 	@Override
// 	public String showConfig() {
// 		try {
// 			return new String(Files.readAllBytes(this.file.toPath()), StandardCharsets.UTF_8);
// 		} catch (IOException e) {
// 			return "???";
// 		}
// 	}
// 
// 	@Override
// 	public String getMongoDbUri() throws IOException {
// 		String mdburi = loadProperties().getProperty("mongodburi");
// 		return mdburi;
// 	}
// }
// 
// Path: src/java/rocks/teammolise/myunimol/webapp/configuration/ConfigurationManagerHandler.java
// public class ConfigurationManagerHandler {
// 	
// 	private static String filename;
//     
//     public static ConfigurationManager getInstance(){
//        
//         ConfigurationManager confManager = new ConfigurationManager(filename);
//               
//         return confManager;        
//     }
//     
//     public static void setConfigurationFilename(String pFilename) {
//     	filename = pFilename;
//     }
// }


// Path: src/java/rocks/teammolise/myunimol/api/APIConsumer.java
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import org.json.JSONObject;
import rocks.teammolise.myunimol.webapp.configuration.ConfigurationManager;
import rocks.teammolise.myunimol.webapp.configuration.ConfigurationManagerHandler;
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;
import com.mashape.unirest.http.exceptions.UnirestException;
import com.mashape.unirest.request.HttpRequestWithBody;
import com.mashape.unirest.request.body.MultipartBody;

package rocks.teammolise.myunimol.api;





/**
 * Permette di consumare le API
 * 
 * @author simone
 */
public class APIConsumer {
	private JSONObject consume(String pAPI, Map<String, Object> pParameters)
			throws UnirestException, IOException {
		ConfigurationManager config = ConfigurationManagerHandler.getInstance();