public JsonObject getActivityStatus( JsonObject json ) {
		
		// Get and validate parameters
		JsonValue activityJsonValue = json.get("activity");
		if ( activityJsonValue == null ) return new JsonObject().add("error", "Parameter activity is null");
		if ( !activityJsonValue.isObject() ) return new JsonObject().add("error", "Parameter activity isn't a json object");
		JsonObject activityJson = activityJsonValue.asObject();
		
		JsonValue nameValue = activityJson.get("name");
		if ( nameValue == null ) return new JsonObject().add("error", "Parameter name is null");
		if ( !nameValue.isString() ) return new JsonObject().add("error", "Parameter name isn't a string");
		String name = nameValue.asString();
		
		// Prepare response object
		JsonObject jsonResponse = new JsonObject();
		
		// Select the activity from the database
		ActivityDAO adao = new ActivityDAO();
		Activity activity = adao.select(name);
		
		// Some error might have happened
		if ( activity == null ) {
			return jsonResponse.add("error", "The requested activity doesn't exist");
		}
		
		// Prepare json objects
		JsonObject jsonActivity = activity.toJsonObject();
		JsonArray installationsJson = new JsonArray();
		
		// Select the worker ids that have anything to do with this activity
		InstallationDAO idao = new InstallationDAO();
		Installation[] installations = idao.selectByActivity(activity.getId());
		
		// Iterate through array
		for ( Installation installation : installations ) {
			
			JsonObject installationJson = new JsonObject();
			installationJson.add("workerId", installation.getWorkerId()).add("status", installation.getStatus());
			
			if ( installation.getErrorDescription() != null && !installation.getErrorDescription().equals("") )
				installationJson.add("errorDescription", installation.getErrorDescription());
			
			installationsJson.add(installationJson);
		}
	    
	    jsonActivity.add("installations", installationsJson);
	    jsonResponse.add("activity", jsonActivity);
		
		return jsonResponse;
	}