| package de.egvpb.termin; |
| |
| import java.io.BufferedReader; |
| import java.io.IOException; |
| import java.io.InputStream; |
| import java.io.InputStreamReader; |
| import java.util.ArrayList ; |
| import javax.servlet.http.HttpServletRequest; |
| import javax.servlet.http.HttpServletResponse; |
| |
| import org.json.simple.JSONObject; |
| import org.json.simple.parser.JSONParser; |
| |
| import com.ibm.commons.util.StringUtil; |
| import com.ibm.domino.services.ServiceException; |
| import com.ibm.domino.services.rest.RestServiceEngine; |
| import com.ibm.xsp.extlib.component.rest.CustomService; |
| import com.ibm.xsp.extlib.component.rest.CustomServiceBean; |
| import com.ibm.xsp.model.domino.DominoUtils; |
| |
| public class Test extends CustomServiceBean { |
| |
| public void renderService(CustomService service, RestServiceEngine engine) throws ServiceException { |
| try { |
| HttpServletRequest request = engine.getHttpRequest() ; |
| HttpServletResponse response = engine.getHttpResponse(); |
| |
| response.setHeader("Access-Control-Allow-Origin", "*") ; |
| response.setHeader("Access-Control-Allow-Methods", "OPTIONS, POST" ) ; |
| response.setHeader("Access-Control-Allow-Headers", "Content-Type, authorization" ) ; |
| response.setHeader("Cache-Control", "no-cache"); |
| response.setDateHeader("Expires", -1); |
| response.setContentType( "application/json" ) ; |
| |
| |
| String method = request.getMethod() ; |
| System.out.println( "Test.renderService, method = " + method ); |
| if (method.equals("OPTIONS")) { |
| |
| response.getWriter().write( "options durchlaufen" ); |
| response.getWriter().close(); |
| } else if (method.equals("POST")) { |
| this.doPost(request, response); |
| } |
| } catch ( Exception e ) { |
| e.printStackTrace() ; |
| } |
| } |
| |
| private void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException { |
| try { |
| String result = null ; |
| String postedData = this.convertStreamToString( request.getInputStream() ) ; |
| JSONObject jsonIn = (JSONObject) new JSONParser().parse( postedData ) ; |
| |
| String action = (String) jsonIn.get("action") ; |
| if( action.equals("getTestData") ) { |
| result = this.getTestData( request ) ; |
| } else { |
| String errorMessage = "Test.doPost, undefined param action = " + action ; |
| result = this.getParamErrorMessageString(errorMessage) ; |
| } |
| |
| response.getWriter().write( result ); |
| response.getWriter().close(); |
| } catch (Exception e) { |
| e.printStackTrace() ; |
| } |
| } |
| |
| @SuppressWarnings("unchecked") |
| private String getTestData( HttpServletRequest request ) { |
| JSONObject result = new JSONObject() ; |
| try { |
| result.put( "isError", false ) ; |
| result.put( "message", "result from rest service, user = " + DominoUtils.getCurrentSession().getEffectiveUserName() ) ; |
| } catch (Exception e) { |
| result.put( "isError", true ) ; |
| result.put( "errorMessage", "Error in REST service" ) ; |
| e.printStackTrace() ; |
| } |
| return result.toJSONString() ; |
| } |
| |
| |
| |
| |
| @SuppressWarnings("unused") |
| private static Boolean getParameterAsBoolean(HttpServletRequest request, String parameter, boolean defaultValue) { |
| Boolean result = null ; |
| try { |
| result = Boolean.valueOf(getParameter(request, parameter, String.valueOf(defaultValue))); |
| } catch (Exception e) { |
| e.printStackTrace() ; |
| } |
| return result ; |
| } |
| |
| private static String getParameter(HttpServletRequest request, String parameter, String defaultValue) { |
| String result = "" ; |
| try { |
| String pm = request.getParameter(parameter); |
| if (StringUtil.isEmpty(pm)) { |
| return defaultValue; |
| } |
| result = pm; |
| } catch (Exception e) { |
| e.printStackTrace() ; |
| } |
| return result ; |
| } |
| |
| @SuppressWarnings("unused") |
| private static Integer getParameterAsInt(HttpServletRequest request, String parameter, int defaultValue) { |
| Integer result = 0 ; |
| try { |
| String pm = request.getParameter(parameter); |
| if (StringUtil.isEmpty(pm)) { |
| return defaultValue; |
| } |
| result = Integer.valueOf(pm); |
| } catch (Exception e) { |
| e.printStackTrace() ; |
| } |
| return result ; |
| } |
| |
| private String convertStreamToString(InputStream stream) throws IOException { |
| String result = "" ; |
| try { |
| InputStreamReader inputStreamReader = new InputStreamReader( stream, "UTF8" ) ; |
| |
| BufferedReader reader = new BufferedReader( inputStreamReader ); |
| StringBuffer buffer = new StringBuffer(); |
| String line = ""; |
| while( (line = reader.readLine()) != null ){ |
| buffer.append(line); |
| } |
| reader.close(); |
| result = buffer.toString() ; |
| } catch (Exception e) { |
| e.printStackTrace() ; |
| } |
| return result ; |
| } |
| |
| |
| |
| |
| |
| |
| @SuppressWarnings("unchecked") |
| private String getParamErrorMessageString( String errorMessage ) { |
| String result = "" ; |
| try { |
| JSONObject jResult = new JSONObject() ; |
| jResult.put( "isError", true ) ; |
| jResult.put( "errorMessage", errorMessage ) ; |
| result = jResult.toJSONString() ; |
| } catch (Exception e) { |
| e.printStackTrace() ; |
| } |
| return result ; |
| } |
| } |
| |