From c2fb4bbfe776980302d83d1ae68b20dc6e886a97 Mon Sep 17 00:00:00 2001 From: Azmat-7860 Date: Wed, 4 Nov 2026 18:19:26 +0530 Subject: [PATCH] fix dateNtime and fileupload issue --- .../Controllers/UploadeddocsController.java | 37 ++++++++++++++- .../java/com/realnet/config/AppConfig.java | 43 +++++++++++++----- .../com/realnet/config/SecurityConfig.java | 4 +- .../io8ref/Xyz/Controllers/XyzController.java | 9 +--- .../com/realnet/io8ref/Xyz/Entity/Xyz.java | 33 +++++++------- .../com/realnet/config/AppConfig.class | Bin 0 -> 3587 bytes .../Azzu/Controllers/AzzuController.class | Bin 0 -> 2935 bytes .../com/realnet/io8ref/Azzu/Entity/Azzu.class | Bin 0 -> 8259 bytes .../Azzu/Repository/AzzuRepository.class | Bin 0 -> 442 bytes .../io8ref/Azzu/Services/AzzuService.class | Bin 0 -> 2104 bytes 10 files changed, 86 insertions(+), 40 deletions(-) create mode 100644 backend/target/classes/com/realnet/config/AppConfig.class create mode 100644 backend/target/classes/com/realnet/io8ref/Azzu/Controllers/AzzuController.class create mode 100644 backend/target/classes/com/realnet/io8ref/Azzu/Entity/Azzu.class create mode 100644 backend/target/classes/com/realnet/io8ref/Azzu/Repository/AzzuRepository.class create mode 100644 backend/target/classes/com/realnet/io8ref/Azzu/Services/AzzuService.class diff --git a/backend/src/main/java/com/realnet/FileUpload/Controllers/UploadeddocsController.java b/backend/src/main/java/com/realnet/FileUpload/Controllers/UploadeddocsController.java index fa74e91..d318a35 100644 --- a/backend/src/main/java/com/realnet/FileUpload/Controllers/UploadeddocsController.java +++ b/backend/src/main/java/com/realnet/FileUpload/Controllers/UploadeddocsController.java @@ -14,6 +14,10 @@ import java.util.stream.Collectors; import org.apache.commons.io.FileUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.io.Resource; +import org.springframework.core.io.UrlResource; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; import org.springframework.dao.DataAccessException; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -36,7 +40,7 @@ import com.realnet.FileUpload.Services.FileuploadService; import com.realnet.FileUpload.Services.UploadedFileService; @RequestMapping(value = "/FileUpload") -//@CrossOrigin("*") +@CrossOrigin("*") @RestController public class UploadeddocsController { @Autowired @@ -125,6 +129,37 @@ public class UploadeddocsController { return get; } + @GetMapping("/files/{filename:.+}") + public ResponseEntity getFile(@PathVariable String filename) { + try { + Path filePath = Paths.get(projectPath, "Resources", "Files", filename).normalize(); + File file = filePath.toFile(); + if (!file.exists()) { + return ResponseEntity.notFound().build(); + } + Resource resource = new UrlResource(filePath.toUri()); + String contentType = Files.probeContentType(filePath); + if (contentType == null) { + contentType = "application/octet-stream"; + } + return ResponseEntity.ok() + .contentType(MediaType.parseMediaType(contentType)) + .header(HttpHeaders.CONTENT_DISPOSITION, "inline; filename=\"" + resource.getFilename() + "\"") + .body(resource); + } catch (Exception e) { + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build(); + } + } + + @GetMapping("/view/{id}") + public ResponseEntity getFileById(@PathVariable Integer id) { + Uploadeddocs doc = Service.getdetailsbyId(id); + if (doc == null || doc.getUploadedfile_name() == null) { + return ResponseEntity.notFound().build(); + } + return getFile(doc.getUploadedfile_name()); + } + @Autowired private JdbcTemplate jdbcTemplate; diff --git a/backend/src/main/java/com/realnet/config/AppConfig.java b/backend/src/main/java/com/realnet/config/AppConfig.java index cad8884..8b3c12c 100644 --- a/backend/src/main/java/com/realnet/config/AppConfig.java +++ b/backend/src/main/java/com/realnet/config/AppConfig.java @@ -7,33 +7,52 @@ import org.springframework.http.converter.json.MappingJackson2HttpMessageConvert import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; import com.realnet.logging.NoLogging; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + @Configuration public class AppConfig { -// @Bean -// public HibernateJpaSessionFactoryBean sessionFactory() { -// return new HibernateJpaSessionFactoryBean(); -// } - + + private static final DateTimeFormatter DATE_FORMAT = DateTimeFormatter.ofPattern("[MM/dd/yyyy][yyyy-MM-dd][dd/MM/yyyy]"); + private static final DateTimeFormatter DATE_TIME_FORMAT = DateTimeFormatter.ofPattern("[yyyy-MM-dd'T'HH:mm:ss][yyyy-MM-dd HH:mm:ss][MM/dd/yyyy HH:mm:ss]"); + @NoLogging @Bean public ModelMapper modelMapper() { return new ModelMapper(); } + private ObjectMapper configureMapper(ObjectMapper mapper) { + mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); + mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); + + JavaTimeModule javaTimeModule = new JavaTimeModule(); + javaTimeModule.addDeserializer(LocalDate.class, new LocalDateDeserializer(DATE_FORMAT)); + javaTimeModule.addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern("MM/dd/yyyy"))); + + javaTimeModule.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DATE_TIME_FORMAT)); + javaTimeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + + mapper.registerModule(javaTimeModule); + return mapper; + } + @Bean public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() { - ObjectMapper mapper = new ObjectMapper(); - mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); - MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(mapper); - return converter; + ObjectMapper mapper = configureMapper(new ObjectMapper()); + return new MappingJackson2HttpMessageConverter(mapper); } @Bean public ObjectMapper objectMapper() { - return new ObjectMapper().disable(SerializationFeature.FAIL_ON_EMPTY_BEANS); + return configureMapper(new ObjectMapper()); } - - } diff --git a/backend/src/main/java/com/realnet/config/SecurityConfig.java b/backend/src/main/java/com/realnet/config/SecurityConfig.java index 78601bc..c8d34c1 100644 --- a/backend/src/main/java/com/realnet/config/SecurityConfig.java +++ b/backend/src/main/java/com/realnet/config/SecurityConfig.java @@ -114,7 +114,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { web.ignoring().antMatchers("/", "/resources/**", "/static/**", "/public/**", "/webui/**", "/h2-console/**", "/configuration/**", "/swagger-ui/**", "/swagger-resources/**", "/webjars/**", "/api-docs", "/api-docs/**", "/v2/api-docs/**", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/**/*.png", - "/**/*.jpg", "/**/*.gif", "/**/*.svg", "/**/*.ico", "/**/*.ttf", "/**/*.woff", "/**/*.otf"); + "/**/*.jpg", "/**/*.gif", "/**/*.svg", "/**/*.ico", "/**/*.ttf", "/**/*.woff", "/**/*.otf", "/FileUpload/files/**", "/FileUpload/view/**"); } // } @@ -125,7 +125,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { // Add CORS Filter //http.cors().and().csrf().disable(). .addFilterBefore(new CorsFilter(), ChannelProcessingFilter.class) // adding backend/token for single container by Azmat 27-08 - .authorizeRequests(requests -> requests.antMatchers("/token/**", "/backend/token/**", "/**/backend/token/**").permitAll().antMatchers("/log2/**") + .authorizeRequests(requests -> requests.antMatchers("/token/**", "/backend/token/**", "/**/backend/token/**", "/FileUpload/files/**", "/FileUpload/view/**").permitAll().antMatchers("/log2/**") .permitAll().antMatchers("/api/**").permitAll() // .antMatchers("/SqlworkbenchSqlcont/**").hasRole("ADMIN") .anyRequest().authenticated()) diff --git a/backend/src/main/java/com/realnet/io8ref/Xyz/Controllers/XyzController.java b/backend/src/main/java/com/realnet/io8ref/Xyz/Controllers/XyzController.java index 3c177a7..d64d4b4 100644 --- a/backend/src/main/java/com/realnet/io8ref/Xyz/Controllers/XyzController.java +++ b/backend/src/main/java/com/realnet/io8ref/Xyz/Controllers/XyzController.java @@ -5,14 +5,7 @@ import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import com.realnet.io8ref.Xyz.Entity.Xyz; import com.realnet.io8ref.Xyz.Services.XyzService; diff --git a/backend/src/main/java/com/realnet/io8ref/Xyz/Entity/Xyz.java b/backend/src/main/java/com/realnet/io8ref/Xyz/Entity/Xyz.java index 35d392b..66ce3b2 100644 --- a/backend/src/main/java/com/realnet/io8ref/Xyz/Entity/Xyz.java +++ b/backend/src/main/java/com/realnet/io8ref/Xyz/Entity/Xyz.java @@ -1,9 +1,19 @@ package com.realnet.io8ref.Xyz.Entity; - import lombok.*; - import javax.persistence.*; - import java.time.LocalDate; - import java.time.LocalDateTime; - import java.util.*; + +import lombok.*; +import javax.persistence.*; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; + + @Entity @Data @@ -13,17 +23,6 @@ package com.realnet.io8ref.Xyz.Entity; @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; - private String name; - private String description; - private String email; - private Double price; - private Long quantity; - private LocalDate dob; - private LocalDateTime createdAt; - private Boolean active; - private String status; - private String tags; - private String photo; - private Long categoryId; +/* {{FORM_FIELDS}} */ } diff --git a/backend/target/classes/com/realnet/config/AppConfig.class b/backend/target/classes/com/realnet/config/AppConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..94037e1db2ee9da81e6a4f47253bbee97a2a8976 GIT binary patch literal 3587 zcmb_e`%@EF6#gzK3(JZc>jR&u58k*wkXoX);U!=eD2dRBnl9N(SlsN!-3_Asr&^sM zoifw@*qQ!Oou0cJvcZChPLrA3-IH_9J?A^mzyJCD4*(U2bk)-Bg1WG_$@4x#=VUT7m788z(vlg5>#2alH;Y_dcif`x ztCPCVGxR9XOP?33 z;&)inh7IGzDiP_gfG(p8CnOwaxZ2nR1t$?>=y28-b)QVK8SeLmrU%ZYeb=-LiT-B1 z=>Wr53XY#knpZyfiP$U2{I`>I}3s*ZErPDtn_Frw_6a$U!5M?b^tQ`_a9V{LIGPOg?r zE3hSAavd_RI2M;XY9__=f!_EUkJn^;C$7i+wE9Rvbpi8Kct z)`X>dUZPPV&QUehD`{Lq)V&BHHEkA4RuwMlAU`lXYz~oqcNAG32V{lF9tqDGrkcaS*q<3fygm>zRxu|b*L0@s z!&PXDJZ*Q$+f?Wc8;oqK#qn}W4c!`qLCAkz-|z?n6e=swHBIGqDePU7&QJ%GHoU$1;e;0f$n%BHiiG`0vWI2 zi%wH!xYaPA`|uXaqT&SWXgF>dRPz4t6#ws3rm{{uWjD{KO|fHjCHJ=8n`EJtTJUXk{1U*$O7Lq1eBq0n_YpE+QsYaUv D literal 0 HcmV?d00001 diff --git a/backend/target/classes/com/realnet/io8ref/Azzu/Controllers/AzzuController.class b/backend/target/classes/com/realnet/io8ref/Azzu/Controllers/AzzuController.class new file mode 100644 index 0000000000000000000000000000000000000000..1fdb5534de83856712af5a140d87d46f7f66209f GIT binary patch literal 2935 zcmbVOi*6f56uq;t>)73?8 z&nwDtn-*^eSgXErj-@NANPB5n+ET4B>dQ^+F-ojCRgs}Sx?)nAGK{Vkr7br7!?JL9 zIre2VRCFr5zQUGoAX=&M1P4Ni7Ho|Q8Cvu#eJM#H3Oy#6S2G) z&2?qwSd^`@w5z8{*>*g&!5a-w2t>&vUiWd>WU!qcITUAf>#PdfT(hl&dq$498 zeBr5kPPJJ`6Qd7JO46kaeM~n}^a-P>Hz^X6hA0aOLn23GGL-PZJ&JWhr~{|kJ`lvr z)P$-E#bq7FP;R0a)U&T--6~2?fu(dw)@-hP7YUXwI4s9Pu!20Zu~m8~+9GL|@+N&s zqbOcL#ThOl96npD%|@$W7tZ;{2RqQArQCd6WwekBa|JiO=%9Y$R%a&cBfrS%ub?|9 zF)K9YV>7bN)j{hr7BnYwCRy|uBSQjPL`er4ZoJ<>g+Q?%;$5}3JzRWIxBWAsE}OJS zON`8_sN-(EC^ui|qZGQ(+^y{$DAllbgx5f86k*RmiLJbS^m1O;=t68o)&tnBUZN$r zXVP6-W0buJVlPGa8I8w0NSYqf;}kt&bh~H7Bb>j4r@{A3dO}Z82wV6W?Fv8OsuO_v zS*H!%`8OHma1T*wKmdA}b(c(qn%#;_ZZW z8J2~SVNB*B6hT+gN!q5+ElBN(p zjR;LexH5wo)1B-T6`hSg_vlWCiZ2k^jf&ZeRE&X&@g7vn(*m~CR7{?xVjkI1g|u`E z$(L9OMQJ0sVqi^+!l;GkdoYmDrwXK*I-$bm^m%QjQ7JP4pnT}t*2avq(X41_20RVm zxQVP^>12#_6I$9O~vy#XQ9j7 yDgCl-oY?>!S`reWax@-;wu0a70Ld73`KFB|sNx;`xdgY}=fphvmiC^|cmD$$@ao?H literal 0 HcmV?d00001 diff --git a/backend/target/classes/com/realnet/io8ref/Azzu/Entity/Azzu.class b/backend/target/classes/com/realnet/io8ref/Azzu/Entity/Azzu.class new file mode 100644 index 0000000000000000000000000000000000000000..e8baf4385dcaf86b84ed77ef898422076803ce60 GIT binary patch literal 8259 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 Q;fMb#=Fjw3`ukGzf8dXwG5`Po literal 0 HcmV?d00001 diff --git a/backend/target/classes/com/realnet/io8ref/Azzu/Repository/AzzuRepository.class b/backend/target/classes/com/realnet/io8ref/Azzu/Repository/AzzuRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..75e1b3082e2d341088654ae28d7be9aebcd747bf GIT binary patch literal 442 zcmbV}%}T>S5Xb*pwXsz}@Z>WHE`ov(5qi*r1cVm6PvbOfOm>#dMrltzmj@rfhmvk9 zm?C=dFkj3tzxnw1e0v9Qj)Md}g|l30?U^deK^wXBJkz7aqSa$|(wHEAzK**v!M4I- zNzbG!vW32%mYjzKeT570g>IZTwwQUU`9=JbexyLUbQCGy9q$}<4HbqHX?@POrecMo z6~4=!u1E@li770F*2jw1>?b|V{zbmZ{@VV=1{1zEPd8|p*do176^_Sktf=|HG-g`y x$XW>$jMzru+77W7Z9nGsfhAEVj=cZ? literal 0 HcmV?d00001 diff --git a/backend/target/classes/com/realnet/io8ref/Azzu/Services/AzzuService.class b/backend/target/classes/com/realnet/io8ref/Azzu/Services/AzzuService.class new file mode 100644 index 0000000000000000000000000000000000000000..1aae202abf8e50b48da63964c33651fad6ca712e GIT binary patch literal 2104 zcmb7FZEqVz5PtUT4K6jbl!m5F>%1Oq0!`~sa6$?N_eC{CLLgOZd*g0M}9 z`+?A&RGXpL_o^>ncD=d?4`owCv6nhF@(i=j_#yXv9<;rOjc1~%8Jx$WqavwQ*kf3) zje;CR#h?SX!f@_!H_-Ax?8!(rd{GSorMZ?Wh!{3&Dr|dECzL^ZKja7Eg$kd04Z(xR z+viP_*5myPUbU;$3mJ+Q!A@?;K%I59!leDJWrB6<=oYLuP>3cO9X;OH)F53au-HYXph-01HbHI1*vt6IPh@Y#`~l}+>ihK*ToIf#Yq+J`VpyMNn$#iXZMPVZ5uIwI6k&|KXfQe1{;TJE=*ql7@kY?PexNz7Aq z&705f^G>=ioVx0UO>tM6jWTQYX}TcRO#c|lLpNGPLobx>b;R-Zt>6;9^c?ML>Z^I~ zWNq?{ok}h3G4cxJd1M*ciKSoQ{zzXe%%nkpi_`SoO#(2BH^`%T!WoJ(m$%7UWM`Is z!kf!SC|URu7k;3VEJ`s(DJ7993f;j)%n{mq6g|PnG0>MVPhpp1fGcr|4LUXa9FyV* z3k)aWOBs?*pJW+}gk(tGC2L3)Q<6&-*w0uSLiBuwXt7VUh;{nq>l0lkD25O4VG6&K z!WUBbn-&H#I&tQUr1o3}yU@oj48yKqE5-hvnwF=08wPvj2m|U5R{z4>@@oEfeDqDO z_;LMLd}3l&`#oSrrd-_15)A=J*dhsA!WH^kpyz)rCbX2`_X%yJT`@oQrfiFD&69+4 hg!LJrOo9E48#XS)eVex8z8Og@d>((^>(AO3z`wqQ`vm|1 literal 0 HcmV?d00001