1 package ch.ige.edossier.web.server;
2
3 import java.util.Map;
4 import java.util.Properties;
5 import org.apache.log4j.Logger;
6 import ch.ige.edossier.util.ImageProcessor;
7 import ch.ige.edossier.util.ServerProperties;
8 import ch.ige.edossier.web.server.dao.AnswerDAO;
9 import ch.ige.edossier.web.vo.AnswerVO;
10 import ch.ige.edossier.web.vo.ImageVO;
11 import ch.ige.edossier.web.vo.MailSenderVO;
12
13
21 public class AnswerAssembler
22 {
23
26 public AnswerAssembler()
27 {}
28
29
35 public AnswerVO getAnswer( int interceptionId ) throws Exception
36 {
37 return new AnswerDAO().selectByInterception( interceptionId );
38 }
39
40
47 public MailSenderVO saveAnswer( AnswerVO answerVO, String languageCd ) throws Exception
48 {
49 new AnswerDAO().insert( answerVO );
50 return fillMailVO( answerVO, languageCd );
51 }
52
53
59 public ImageVO getAttachement( AnswerVO answerVO ) throws Exception
60 {
61 return loadAttachment( answerVO );
62 }
63
64
71 private MailSenderVO fillMailVO( AnswerVO answerVO, String languageCd ) throws Exception
72 {
73 Properties properties = ServerProperties.loadWebProperties( languageCd );
74 MailSenderVO mailSenderVO = new MailSenderVO();
75 mailSenderVO.setAdressTo( answerVO.getMaEmail() );
76 mailSenderVO.setAdressCc( answerVO.getEmail() );
77 mailSenderVO.setAdressFrom( answerVO.getEmail() );
78 mailSenderVO.setSubject( properties.getProperty( "mail.answer.subject" ) + " " + answerVO.getSubject().replaceAll( "<br>", " " ) );
79
80 StringBuffer buf = new StringBuffer();
81 buf.append( properties.getProperty( "mail.body.auto" ) ); buf.append( properties.getProperty( "mail.answer.body.start" ) );
83 buf.append( answerVO.getName() );
84 buf.append( properties.getProperty( "mail.answer.body.phone" ) );
85 buf.append( answerVO.getTelNr() );
86
87 if( answerVO.getStandardtext() != null && !answerVO.getStandardtext().equals( "" ) )
88 {
89 buf.append( properties.getProperty( "mail.answer.body.standardtext" ) );
90 buf.append( answerVO.getStandardtext() );
91 }
92 if( answerVO.getText() != null && !answerVO.getText().equals( "" ) )
93 {
94 buf.append( properties.getProperty( "mail.answer.body.freetext" ) );
95 buf.append( answerVO.getText() );
96 }
97 buf.append( properties.getProperty( "mail.body.end" ) ); mailSenderVO.setBody( buf.toString() );
99
100 if( answerVO.getAttachement() != null )
101 {
102 mailSenderVO.setFileName( answerVO.getFileName() );
103 mailSenderVO.setMimeType( answerVO.getMimeType() );
104 mailSenderVO.setFile( answerVO.getAttachement() );
105 }
106 return mailSenderVO;
107 }
108
109
115 private ImageVO loadAttachment( AnswerVO answerVO ) throws Exception
116 {
117 ImageVO imageVO = new AnswerDAO().selectImage( answerVO.getAnswerId() );
118
119 if( imageVO.getImageType().equals( "image/pjpeg" ) || imageVO.getImageType().equals( "image/gif" ) || imageVO.getImageType().equals( "image/x-png" ) )
120 {
121 return writeBildFile( imageVO, answerVO.getAnswerId() );
122 }
123 return imageVO;
124 }
125
126
133 private ImageVO writeBildFile( ImageVO imageVO, int answerId ) throws Exception
134 {
135 if( imageVO.getImage() != null && imageVO.getImage().length > 0 )
136 {
137 Properties properties = ServerProperties.loadServerProperties();
138 String imageName = "bild_" + answerId + ".jpg";
139 String path = ( properties.getProperty( "pathImages" ) ) + imageName;
140 imageVO.setImagePath( "/tmp/" + imageName );
141
142 Map map = ImageProcessor.getInstance().writeImage( path, imageVO.getImage() );
143 return ImageProcessor.getInstance().defineDimension( imageVO, map );
144 }
145 else
146 {
147 return null;
148 }
149 }
150 }
151