@ -27,6 +27,8 @@ import java.util.HashMap;
import java.util.List ;
import java.util.List ;
import java.util.Map ;
import java.util.Map ;
import static org.atmosphere.annotation.AnnotationUtil.logger ;
@Route ( value = "" , layout = MainLayout . class )
@Route ( value = "" , layout = MainLayout . class )
@PermitAll
@PermitAll
@PageTitle ( "Nuevo ticket" )
@PageTitle ( "Nuevo ticket" )
@ -36,6 +38,7 @@ public class CrearnuevoTicketView extends VerticalLayout {
private final UserService userService ;
private final UserService userService ;
private MemoryBuffer buffer ;
private MemoryBuffer buffer ;
private Upload uploadFile ;
private Upload uploadFile ;
private String fileUploadToken ;
/ / Inyectar el RedmineClient a través del constructor
/ / Inyectar el RedmineClient a través del constructor
public CrearnuevoTicketView ( RedmineClient api , UserService service ) {
public CrearnuevoTicketView ( RedmineClient api , UserService service ) {
@ -67,6 +70,23 @@ public class CrearnuevoTicketView extends VerticalLayout {
uploadFile = new Upload ( buffer ) ;
uploadFile = new Upload ( buffer ) ;
uploadFile . setAcceptedFileTypes ( "image/jpeg" , "image/png" , "application/pdf" ) ;
uploadFile . setAcceptedFileTypes ( "image/jpeg" , "image/png" , "application/pdf" ) ;
uploadFile . addSucceededListener ( event - > {
if ( buffer . getFileData ( ) ! = null ) {
try {
byte [ ] fileContent = buffer . getInputStream ( ) . readAllBytes ( ) ;
String fileName = buffer . getFileName ( ) ;
fileUploadToken = api . uploadFile ( fileContent , fileName ) ;
if ( fileUploadToken = = null ) {
logger . error ( "Error al obtener el token del archivo" ) ;
} else {
logger . error ( "Archivo subido exitosamente. Token obtenido: " + fileUploadToken ) ;
}
} catch ( IOException e ) {
logger . error ( "Error al leer el archivo: " + e . getMessage ( ) ) ;
}
}
} ) ;
/ / Boton para crear los tickets
/ / Boton para crear los tickets
Button createButton = new Button ( "Enviar ticket" , event - > {
Button createButton = new Button ( "Enviar ticket" , event - > {
if ( user . getKey ( ) = = null | | user . getKey ( ) . isEmpty ( ) ) {
if ( user . getKey ( ) = = null | | user . getKey ( ) . isEmpty ( ) ) {
@ -81,18 +101,21 @@ public class CrearnuevoTicketView extends VerticalLayout {
issueDetails . put ( "description" , descripcion . getValue ( ) ) ;
issueDetails . put ( "description" , descripcion . getValue ( ) ) ;
String fileUploadToken = null ;
String fileUploadToken = null ;
String fileName = null ;
String contentType = null ;
if ( buffer . getFileData ( ) ! = null ) {
if ( buffer . getFileData ( ) ! = null ) {
try {
try {
byte [ ] fileContent = buffer . getInputStream ( ) . readAllBytes ( ) ;
byte [ ] fileContent = buffer . getInputStream ( ) . readAllBytes ( ) ;
String fileName = buffer . getFileName ( ) ;
fileUploadToken = api . uploadFile ( fileContent , fileName ) ; / / Llamar al método sin pasar apiKey
fileName = buffer . getFileName ( ) ;
contentType = buffer . getFileData ( ) . getMimeType ( ) ;
fileUploadToken = api . uploadFile ( fileContent , fileName ) ;
} catch ( IOException e ) {
} catch ( IOException e ) {
Notification . show ( "Error al cargar el archivo: " + e . getMessage ( ) , 5000 , Notification . Position . MIDDLE )
. addThemeVariants ( NotificationVariant . LUMO_WARNING ) ;
logger . error ( "Error al cargar el archivo: " + e . getMessage ( ) ) ;
}
}
}
}
String response = api . createIssue ( issueDetails , fileUploadToken , fileName , contentType , user . getKey ( ) ) ;
String response = api . createIssue ( issueDetails , fileUploadToken ) ; / / Llamar al método sin pasar apiKey
handleResponse ( response , asunto , descripcion , tipoTickets ) ;
handleResponse ( response , asunto , descripcion , tipoTickets ) ;
} ) ;
} ) ;