package com.uaihebert.uaimockserver.servlet;
import com.uaihebert.uaimockserver.configuration.ProjectConfiguration;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
class AbstractServlet extends HttpServlet {
void writeInResponse(final HttpServletResponse httpResponse, final String text) throws IOException {
httpResponse.setContentType("application/json");
final OutputStream outputStream = httpResponse.getOutputStream();
try {
outputStream.write(text.getBytes(ProjectConfiguration.ENCODING.value));
} finally {
outputStream.close();
}
}
void printResource(final OutputStream writer, final String resourcePath) throws IOException {
final InputStreamReader streamReader = new InputStreamReader(AbstractServlet.class.getResourceAsStream(resourcePath), ProjectConfiguration.ENCODING.value);
final BufferedReader bufferedReader = new BufferedReader(streamReader);
try {
String currentLine;
while ((currentLine = bufferedReader.readLine()) != null) {
currentLine = "\n" + currentLine;
writer.write(currentLine.getBytes(ProjectConfiguration.ENCODING.value));
}
} finally {
writer.close();
streamReader.close();
bufferedReader.close();
}
}
void send204Response(final HttpServletResponse httpResponse) throws IOException {
httpResponse.setContentType("application/json");
httpResponse.setStatus(204);
// have to send it or it will give an error in travis-ci
writeInResponse(httpResponse, "{empty:body}");
}
void addDefaultHeaders(final HttpServletResponse httpResponse) {
httpResponse.addHeader("Access-Control-Allow-Headers", "Content-Type");
httpResponse.addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT");
httpResponse.addHeader("Access-Control-Allow-Origin", "*");
}
}