From 4f3085b52b2c670b1a623c3f2463a5899fde90a0 Mon Sep 17 00:00:00 2001 From: "yannick.blanken@csc-online.eu" Date: Wed, 22 Jun 2022 07:02:44 +0200 Subject: [PATCH] added client added methods added controller functions --- .../ODPAppVehOwnServer/data/LicensePlate.java | 7 ++ .../storage/MetaDataStorageService.java | 3 +- .../services/DatabaseUtil.java | 20 +++++ doc/generated/AppVehOwnServerClient.jar | Bin 27623 -> 28824 bytes doc/generated/AppVehOwnServerDto.jar | Bin 16322 -> 20661 bytes .../entity/EmbImageDataEntity.java | 26 ++++++ .../entity/data/VehicleBrandEntity.java | 16 +++- .../respository/LanguageRepository.java | 2 +- .../respository/PropulsionTypeRepository.java | 1 - .../persistence/services/DataService.java | 7 ++ .../persistence/services/VehicleService.java | 18 ++-- pom.xml | 17 ++-- .../ODPAppVehOwnServer/WebSecurityConfig.java | 1 + .../customer/LeaseGeneratorController.java | 77 ++++++++++++++++++ .../controller/data/VinController.java | 16 ++++ .../registration/RegistrationController.java | 4 +- .../src/test/java/MetaDataTester.java | 3 + .../restserver/src/test/java/RegExTester.java | 9 +- .../shell/ExportCommands.java | 42 ++++++++++ .../shell/InfoCommands.java | 6 +- .../shell/InitCommands.java | 6 +- .../ODPAppVehOwnServer/mapper/DtoMapper.java | 14 +++- .../services/ExportDataService.java | 40 +++++++++ .../services/ImportContentService.java | 33 ++++---- .../services/LeaseServices.java | 17 ++++ .../client/service/DataClientService.java | 11 +++ .../models/data/LanguageDto.java | 7 +- .../models/lease/CustomLeaseGenDto.java | 25 ++++++ 28 files changed, 373 insertions(+), 55 deletions(-) create mode 100644 core/src/main/java/eu/csc/ODPAppVehOwnServer/data/LicensePlate.java create mode 100644 core/src/main/java/eu/csc/ODPAppVehOwnServer/services/DatabaseUtil.java create mode 100644 persistence/src/main/java/eu/csc/ODPAppVehOwnServer/persistence/entity/EmbImageDataEntity.java create mode 100644 server/restserver/src/main/java/eu/csc/ODPAppVehOwnServer/controller/customer/LeaseGeneratorController.java create mode 100644 server/restserver/src/main/java/eu/csc/ODPAppVehOwnServer/controller/data/VinController.java create mode 100644 server/shell/src/main/java/eu/csc/ODPAppVehOwnServer/shell/ExportCommands.java create mode 100644 services/src/main/java/eu/csc/ODPAppVehOwnServer/services/ExportDataService.java create mode 100644 services/src/main/java/eu/csc/ODPAppVehOwnServer/services/LeaseServices.java create mode 100644 webcoreroot/dto/src/main/java/eu/csc/ODPAppVehOwnServer/models/lease/CustomLeaseGenDto.java diff --git a/core/src/main/java/eu/csc/ODPAppVehOwnServer/data/LicensePlate.java b/core/src/main/java/eu/csc/ODPAppVehOwnServer/data/LicensePlate.java new file mode 100644 index 0000000..8591614 --- /dev/null +++ b/core/src/main/java/eu/csc/ODPAppVehOwnServer/data/LicensePlate.java @@ -0,0 +1,7 @@ +package eu.csc.ODPAppVehOwnServer.data; + +import java.util.concurrent.atomic.AtomicInteger; + +public class LicensePlate { + +} diff --git a/core/src/main/java/eu/csc/ODPAppVehOwnServer/persistence/services/storage/MetaDataStorageService.java b/core/src/main/java/eu/csc/ODPAppVehOwnServer/persistence/services/storage/MetaDataStorageService.java index 8978107..7d9f06f 100644 --- a/core/src/main/java/eu/csc/ODPAppVehOwnServer/persistence/services/storage/MetaDataStorageService.java +++ b/core/src/main/java/eu/csc/ODPAppVehOwnServer/persistence/services/storage/MetaDataStorageService.java @@ -1,5 +1,6 @@ package eu.csc.ODPAppVehOwnServer.persistence.services.storage; +import com.google.gson.reflect.TypeToken; import eu.csc.ODPAppVehOwnServer.models.VehicleBrandDto; import eu.csc.ODPAppVehOwnServer.models.VehicleModelDto; import eu.csc.ODPAppVehOwnServer.models.data.DeviceDto; @@ -137,7 +138,7 @@ public class MetaDataStorageService @Override public List openLanguages(String filename) throws FileNotFoundException { - return gsonService.readJson(gsonService.getTypeTokenList(), storageService.load(filename).toFile()); + return gsonService.readJson(new TypeToken>(){}.getType(), storageService.load(filename).toFile()); } diff --git a/core/src/main/java/eu/csc/ODPAppVehOwnServer/services/DatabaseUtil.java b/core/src/main/java/eu/csc/ODPAppVehOwnServer/services/DatabaseUtil.java new file mode 100644 index 0000000..fc3ca15 --- /dev/null +++ b/core/src/main/java/eu/csc/ODPAppVehOwnServer/services/DatabaseUtil.java @@ -0,0 +1,20 @@ +package eu.csc.ODPAppVehOwnServer.services; + +import java.io.IOException; + +public final class DatabaseUtil { + public static boolean restore(String dbUsername, String dbPassword, String dbName, String sourceFile) + throws IOException, InterruptedException { + String[] command = new String[]{ + "mysql", + "-u" + dbUsername, + "-p" + dbPassword, + "-e", + " source " + sourceFile, + dbName + }; + Process runtimeProcess = Runtime.getRuntime().exec(command); + int processComplete = runtimeProcess.waitFor(); + return processComplete == 0; + } +} \ No newline at end of file diff --git a/doc/generated/AppVehOwnServerClient.jar b/doc/generated/AppVehOwnServerClient.jar index 3101d3dfa381d037f8452a5aec806800f1456b7a..89df59fd4165aadebdd483383bbe083fdfac4c4f 100644 GIT binary patch delta 10941 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 Akg$_Kl(nSl8Li(=3n0kF>_Cc6^vLc-Gq7Kyf z?H5udLAGBAimB38`3y&?{H_y}Jj*qp1n}O^ThlUJirB<3)0X2<2A=6?W{+`ud54s& zH;3;lG#mTtu$1=6>TG+)D1d6nYYf>F_seHSLGuf$OVp_`DJ6GO|CDGbfL|q1Np{^4 z-YD8bozzMB2>8&Mpk@X>6ih!!I7$o<0f1T@06_AgV1iX=P)s`lNQIG^(X=7{4=i|j zYH13YLL=;HD{VcN&2?%HBAo>t?PPG73nTdp>2!4{Mw+GNP0WF*L7qj~WrfqFl8;X= zUxx75Q)(phOu!7M-n1dur9peja5?Q zs7%yBZT!UCoYOH#VdX}ewWfNb&EI5SHrm-DRQM*$ivPy<`;MDyU!ZU$b>%ujD={ZU zwC<9G7E5imMWk=fTI)a=r$L{&79yK4_ z>2w^#{QV^a4nG5Q!~*Xjjt4GKX0lU`+&+K@_+e#v4uI4-7E?Y=o0HBXB3;_GV%x;s-O`y1i>Og8Cf=P2h_9 z>1dYTg^4f{g1YW=yzVAlrCZ79ODEPXkL=GBISlAWOI~33XZFB;0 zoa7nj2i4L<_T35!l_#0l5gU)olw%5VSw$>)&xeav343}MJ@JKZ@zq#ejW#)hAIDAA z6-K@1E`|hx9Txmv2=t)IZLoir=L)OO*l0p~O>(p}!}k{BwBBXsbM#UA`n-`K*r|wY zS3zf^0s6MdxT^*sC`Alo`w^w0jjK?=71Fp)E!|-W4mf1t#hP)B;!@*bIpK?`*W0OC zj+mrbXwr&I1rZKT=rLVra>KP5qq~+}dF&Qdp&1bI_Clj~#-qB#f)J2*(`~<&`5sv`cf0cjdGoPHrZyg# zXzD{)zgz7YYHAwDxL*vVxGw>|LE@=}(`0xY$}sQ6JecQyODXy|?_Q)8l3$2a{_*gY_hIoqz|@_P z$sXakPA@P)tpYUtM*ty-BjkoPeJN-uYsgC2OjN&pUOT-PJE2(1jGXPS(m zQJFPEK-;+q5~X>jrW;28d>zjX%D#;ClIv(~gLiA)n)p(o)$yVxh{TSY{T=i%!6Ir@Ap$l6sMl z=dTKQJ``T+CDjQ`a#0087XaRn4(4+|yYQgu=ux6d+(~KXvuUOfaGzDlDcQZ8gR^`b zzj_%d-xPF#`2JlR!_9?xu2M7IN{XX2RFz2#D4P#utYN0OTLSIJPJqq#{X84W0*kfXUI!>Djc>Bk)B5 z5&U`u?KB|{i?c&nXj60C;xxa>d5Qlwy?_(=>%881g`lmpK#TAO0fEj z-5I>QA^GPt{W&r+8S;)ulZv;uKsv9GArF~VtqV>|Wbe+-`No}!mgMKJg(7r)kT!GF z>rc99!`glp9{-QM5eJU9Wt3DKoh1{syEy#N6OM{pw?*dn(?NJntupX&vFZJWa zQ9c*Tyv@NAxr4OpEq4_T`Sxlz*y88X83BK1|*(|!)B+$YmK@(n~ z?sWt4Sy*jw)a5d+(4OVynRsxcdwFXQ@ov%V&m)#}mJ&&orAd}JSd96wjsLT>c)vH` ziiA`&GuXN!Bg59`&)T3s*~Rf8`W9}uGWZ=~jrH24h0~1-H#%igL`*#WM5K7kj_RMK zmx`XZr(2O&eXMQE$nHz%hpbhdc2TXy^R8qRRz@4qGD=Cty~kT6 zM^-`UhaVEkCTp{%+AAtfugy+nlEk(PA=o34u&OkpsdkKs8_=g03DM#UwjNG?mF)g5 zVkWL)nBnSP&`)l`HhL2MbL$x!*C}oFt>jtq&N&}Wbn0+f&Nf?7_;FsfZfHZ9zVw%N z(Z1wDI4`>722B%cb*Fqqh-Yg}=2J_uu=p74S5Dm?E$>7o&3Svnt}T?!==w1=q=x+M z&WOsor`z=vAid3e`ELdJZ&1loE27Ap86sxijm+PyNPQsu+_%!sxzm!d>jy;sbY;&w zcw_D%vI(uI*UD7)Y0xqC`0^S|ud$1qNCxWP<(_c;UdwHym6mhS2$5PgUCcMy0EeWuP5PAAm-;&;OS%;y$Cet?X!Mjz{-*EVf$;pnWXD&3W|~s|1r7I{k2

{vZ$!m9}G#| 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 bzNP-+q?o}tDp)K47J$_w0Knb+*XaKP%9@p- diff --git a/doc/generated/AppVehOwnServerDto.jar b/doc/generated/AppVehOwnServerDto.jar index 98faf530f66441e7e114cbd2cdf0a640d5c46a93..7a4e37ce7485b703705b12bc932b2e36f27a05fd 100644 GIT binary patch delta 9890 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 F{{tTfirfGI delta 5885 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%0Dq{e1!f-TW>|Mv{ePFH5kdGL|yR{#=z} zN7{#x#w~tJwqzFLV-cUkhJ?oLR()-9HY=HxV9w|IYg2M`WIcsqna@nJg1nXqZIHX9U(HQ=q-`rF+`COhUQt~qn>(F;%t z)v5>UUhi1PXyT^l)cZg77gzLYHN=7`se0IL7$g;$_AF)&?Hb|wiEA(Qo;xGM@^6T& z<&n_VFtwCl8>lHU&J3(wN_Tk`46QxzMt?!ASwsoY>viVR)Q2l4Ju}X%K_B>3OugiIt5pc9+MwB#t#AzgR_B_O z5icF$NVRk*8GkfGh2H(W<~*MDI==pWQd1UUIc_J?<$TjX^9{f4&<<9A>uyF#s?Eg! zN-mq#%!h$*_Q=fKHmK{Tj<^Rcd%yg8Mb8oI$~2+g+fF^mIZLWx62wUV6HTR*@12^h zZ>$6!NuIAcN(hy0)%h5rvY@GyZvx`n>EKuIohOk?1i9LJa!|i!CdnrWU*YUX*Yf0t z3TcErH|(qs@e_p#sXq*k9v5k(7%?W;5>Zho?aO(q9>dLR-XEfIOWk6Q_~;-CemhJv zeqiZlT-%;g{-alN{_nOqvlU8dGfOM{Bp05#cn9Y?V*E;Oe?Oq9p_5j^EZ@?w?ju1N z%;4pwcoqhHVf7QNn>!}DVC{ANvT|H5en+(W!<2H7d{S9QbqimmIH!S zO$isy@^$w20ZKJiU|*F24-62hA;7$NfHIf`FjIrFpMNE|q~70u9RD<^KpV<7=R___ zLmfOYE#yz~?`!~Itqud{>2KFY#b$e>^;q*Mu z;z^%*1HH4my4*jrfk4Hf{G?|@K0sHC6G!|vBLxCUTp+eUal{vtl)$OZpWVBV0k}Xe zrv!dzY2hSZxQ<;Qc~RpeQqo-lnDqZBTZn>zG4#MFlOpgN^#_7#!@z+|IBn)w=>JFA zLLC?w4m;a1G2pun47WWLx-jrZRvcud%Z^*bg)r~JB9hq8h$_Hm-9IW_IASjlJ-KkN z#X*eye6={K7kuyq@+)p2RPRqNwp|YfrsX|r@&Xc)bpMR~*FS?mk{8A{^W&6t(*N_a z6ZB!=7B~(XJcG_Zg70ULmM}nWz=~@M8o modelEntities; + public void setImageName(String imageName) { + if (this.imageData == null) + this.imageData = new EmbImageDataEntity(); + + this.imageData.setImageName(imageName); + } + + public String getImageName() { + return this.imageData != null ? this.imageData.getImageName() : null; + } } diff --git a/persistence/src/main/java/eu/csc/ODPAppVehOwnServer/persistence/respository/LanguageRepository.java b/persistence/src/main/java/eu/csc/ODPAppVehOwnServer/persistence/respository/LanguageRepository.java index 4fea482..2ff7313 100644 --- a/persistence/src/main/java/eu/csc/ODPAppVehOwnServer/persistence/respository/LanguageRepository.java +++ b/persistence/src/main/java/eu/csc/ODPAppVehOwnServer/persistence/respository/LanguageRepository.java @@ -15,6 +15,6 @@ public interface LanguageRepository extends JpaRepository LanguageEntity getByLocale(String locale); - @Query(value = "select e from LanguageEntity e where e.isStandard") + @Query(value = "select e from LanguageEntity e where e.isStandard = true ") Optional findDefaultLanguage(); } diff --git a/persistence/src/main/java/eu/csc/ODPAppVehOwnServer/persistence/respository/PropulsionTypeRepository.java b/persistence/src/main/java/eu/csc/ODPAppVehOwnServer/persistence/respository/PropulsionTypeRepository.java index cccf873..a925768 100644 --- a/persistence/src/main/java/eu/csc/ODPAppVehOwnServer/persistence/respository/PropulsionTypeRepository.java +++ b/persistence/src/main/java/eu/csc/ODPAppVehOwnServer/persistence/respository/PropulsionTypeRepository.java @@ -10,7 +10,6 @@ import java.util.Optional; @Repository public interface PropulsionTypeRepository extends JpaRepository { - Optional findByTypeId(String propulsionId); PropulsionTypeEntity getByTypeId(String propulsionId); diff --git a/persistence/src/main/java/eu/csc/ODPAppVehOwnServer/persistence/services/DataService.java b/persistence/src/main/java/eu/csc/ODPAppVehOwnServer/persistence/services/DataService.java index 178fcb6..185635b 100644 --- a/persistence/src/main/java/eu/csc/ODPAppVehOwnServer/persistence/services/DataService.java +++ b/persistence/src/main/java/eu/csc/ODPAppVehOwnServer/persistence/services/DataService.java @@ -2,12 +2,14 @@ package eu.csc.ODPAppVehOwnServer.persistence.services; import eu.csc.ODPAppVehOwnServer.persistence.entity.data.LanguageEntity; import eu.csc.ODPAppVehOwnServer.persistence.entity.data.PropulsionTypeEntity; +import eu.csc.ODPAppVehOwnServer.persistence.entity.data.VehicleBrandEntity; import eu.csc.ODPAppVehOwnServer.persistence.respository.LanguageRepository; import eu.csc.ODPAppVehOwnServer.persistence.respository.PropulsionTypeRepository; import lombok.Getter; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.Arrays; import java.util.List; import java.util.Optional; @@ -61,6 +63,7 @@ public class DataService { var defLanguage = getDefaultLanguage(); if (!defLanguage.isPresent()) return; + defLanguage.get().setStandard(false); languageRepository.save(defLanguage.get()); } @@ -80,4 +83,8 @@ public class DataService { public Optional getDefaultLanguage() { return languageRepository.findDefaultLanguage(); } + + public List getBrands() { + return vehicleService.findAllBrands(); + } } diff --git a/persistence/src/main/java/eu/csc/ODPAppVehOwnServer/persistence/services/VehicleService.java b/persistence/src/main/java/eu/csc/ODPAppVehOwnServer/persistence/services/VehicleService.java index e828c7d..22ebc83 100644 --- a/persistence/src/main/java/eu/csc/ODPAppVehOwnServer/persistence/services/VehicleService.java +++ b/persistence/src/main/java/eu/csc/ODPAppVehOwnServer/persistence/services/VehicleService.java @@ -26,12 +26,11 @@ public class VehicleService { private PropulsionTypeRepository propulsionTypeRepository; - - - public List findAllBrands(){ + public List findAllBrands() { return vehicleBrandRepository.findAll(); } - public VehicleBrandEntity addVehicle(String brand, String name){ + + public VehicleBrandEntity addVehicle(String brand, String name) { VehicleBrandEntity vb = new VehicleBrandEntity(); vb.setName(name); @@ -45,7 +44,7 @@ public class VehicleService { } - public VehicleModelEntity addVehicleModel(String brand, String model, String name){ + public VehicleModelEntity addVehicleModel(String brand, String model, String name) { var parent = vehicleBrandRepository.findOneByBrandId(brand); @@ -73,13 +72,13 @@ public class VehicleService { return vehicleModelRepository.findAllByBrand_BrandId(brand); } - public List findAllPropulsionTypes() { + public List findAllPropulsionTypes() { return propulsionTypeRepository.findAll(); } public VehicleBrandEntity addVehicleIfNotExists(String brandId, String name) { - if(vehicleBrandRepository.findOneByBrandId(brandId).isPresent()) + if (vehicleBrandRepository.findOneByBrandId(brandId).isPresent()) return vehicleBrandRepository.getOneByBrandId(brandId); return addVehicle(brandId, name); @@ -90,15 +89,14 @@ public class VehicleService { var brand = vehicleBrandRepository.findOneByBrandId(brandId); - if(!brand.isPresent()) + if (!brand.isPresent()) throw new EntityNotFoundException(); brand.get().setImageName(brandId + "." + fileExtension); - vehicleBrandRepository.save(brand.get()); -return brand.get().getImageName(); + return brand.get().getImageName(); } } diff --git a/pom.xml b/pom.xml index 3f45352..1150a2c 100644 --- a/pom.xml +++ b/pom.xml @@ -29,7 +29,8 @@ http://configuration:8080/manager/text ${project.basedir}/gen - 0.9.0-SNAPSHOT + 0.9.1-SNAPSHOT + @@ -60,10 +61,12 @@ org.springframework.boot spring-boot-starter-mail - + org.springframework.boot @@ -122,11 +125,6 @@ true - - eu.csc.core - asnfilehandler - ${asncore.version} - eu.csc.core @@ -149,6 +147,11 @@ asnfilegenerator ${asncore.version} + + eu.csc.core + asnfilehandler + ${asncore.version} + eu.csc.core diff --git a/server/restserver/src/main/java/eu/csc/ODPAppVehOwnServer/WebSecurityConfig.java b/server/restserver/src/main/java/eu/csc/ODPAppVehOwnServer/WebSecurityConfig.java index 09b5d65..1067c41 100644 --- a/server/restserver/src/main/java/eu/csc/ODPAppVehOwnServer/WebSecurityConfig.java +++ b/server/restserver/src/main/java/eu/csc/ODPAppVehOwnServer/WebSecurityConfig.java @@ -27,6 +27,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter { new AntPathRequestMatcher("/login/**"), new AntPathRequestMatcher("/devices/**"), new AntPathRequestMatcher("/vehicles/**"), + new AntPathRequestMatcher("/leasgen/**"), new AntPathRequestMatcher("/languages/**"), new AntPathRequestMatcher("/signup/**") ); diff --git a/server/restserver/src/main/java/eu/csc/ODPAppVehOwnServer/controller/customer/LeaseGeneratorController.java b/server/restserver/src/main/java/eu/csc/ODPAppVehOwnServer/controller/customer/LeaseGeneratorController.java new file mode 100644 index 0000000..f26807c --- /dev/null +++ b/server/restserver/src/main/java/eu/csc/ODPAppVehOwnServer/controller/customer/LeaseGeneratorController.java @@ -0,0 +1,77 @@ +package eu.csc.ODPAppVehOwnServer.controller.customer; + +import asn.GTMaintenance.Lease; +import eu.csc.ODPAppVehOwnServer.controller.AbstractRestController; +import eu.csc.ODPAppVehOwnServer.models.lease.CustomLeaseGenDto; +import eu.csc.ODPAppVehOwnServer.persistence.services.StorageService; +import eu.csc.ODPAppVehOwnServer.persistence.services.storage.FileSystemStorageService; +import eu.csc.ODPAppVehOwnServer.services.LeaseServices; +import eu.csc.asn.Asn1FileBase; +import eu.csc.util.LeaseUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.io.ByteArrayResource; +import org.springframework.core.io.Resource; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.io.ByteArrayOutputStream; + +@RestController +@RequestMapping(value = "/leasgen") +public class LeaseGeneratorController extends AbstractRestController { + + private final StorageService storageService; + + private final LeaseServices leaseServices; + + private final Log logger = LogFactory.getLog(LeaseGeneratorController.class); + + @Autowired + public LeaseGeneratorController(FileSystemStorageService storageService, LeaseServices leaseServices) { + this.storageService = storageService; + this.leaseServices = leaseServices; + } + + @PostMapping + @RequestMapping("custom") + public ResponseEntity generateLease(@RequestBody CustomLeaseGenDto body) { + + Lease lease = new Lease(); + + lease.setIssuer(body.getIssuer()); + lease.setSystems(body.getSystems()); + lease.setStartTime(body.getStartTime()); + lease.setExpirationTime(body.getExpirationTime()); + lease.setUser(body.getUser()); + + if (body.getToken() != null) { + lease.setToken(body.getToken()); + } else { + lease.setToken(LeaseUtils.generateNewToken()); + } + + ByteArrayOutputStream stream = new ByteArrayOutputStream(); + + try { + logger.info("GENERATING LEASE"); + Asn1FileBase.getInstance().encode(lease, stream); + } catch (Exception ex) { + logger.error("LeaseGen Error", ex); + return getErrorOkResponse(ex); + } + + ByteArrayResource resource = new ByteArrayResource(stream.toByteArray()); + + return ResponseEntity.ok() + //.headers(headers) + .contentLength(stream.size()) + .contentType(MediaType.APPLICATION_OCTET_STREAM) + .body(resource); + } +} diff --git a/server/restserver/src/main/java/eu/csc/ODPAppVehOwnServer/controller/data/VinController.java b/server/restserver/src/main/java/eu/csc/ODPAppVehOwnServer/controller/data/VinController.java new file mode 100644 index 0000000..14381d9 --- /dev/null +++ b/server/restserver/src/main/java/eu/csc/ODPAppVehOwnServer/controller/data/VinController.java @@ -0,0 +1,16 @@ +package eu.csc.ODPAppVehOwnServer.controller.data; + +import eu.csc.ODPAppVehOwnServer.controller.AbstractRestController; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +//@RestController +//@RequestMapping("/vin") +public class VinController extends AbstractRestController { + + +} diff --git a/server/restserver/src/main/java/eu/csc/ODPAppVehOwnServer/controller/registration/RegistrationController.java b/server/restserver/src/main/java/eu/csc/ODPAppVehOwnServer/controller/registration/RegistrationController.java index 81405f2..0ab6031 100644 --- a/server/restserver/src/main/java/eu/csc/ODPAppVehOwnServer/controller/registration/RegistrationController.java +++ b/server/restserver/src/main/java/eu/csc/ODPAppVehOwnServer/controller/registration/RegistrationController.java @@ -1,5 +1,6 @@ package eu.csc.ODPAppVehOwnServer.controller.registration; +import eu.csc.ODPAppVehOwnServer.models.MessageDto; import eu.csc.ODPAppVehOwnServer.models.UserRegistrationDto; import eu.csc.ODPAppVehOwnServer.persistence.entity.UserEntity; import eu.csc.ODPAppVehOwnServer.persistence.respository.UserRepository; @@ -30,7 +31,7 @@ public class RegistrationController { // add check for email exists in DB if (userRepository.existsByEmail(signUpDto.getEmail())) { - return new ResponseEntity<>("Email is already taken!", HttpStatus.BAD_REQUEST); + return new ResponseEntity<>(new MessageDto(1, "Email is already taken!"), HttpStatus.BAD_REQUEST); } // create user object @@ -42,6 +43,7 @@ public class RegistrationController { user.setPhone(signUpDto.getPhone()); user.setStreet(signUpDto.getStreet()); + //user.setPostal(signUpDto.getStreet()); userRepository.save(user); diff --git a/server/restserver/src/test/java/MetaDataTester.java b/server/restserver/src/test/java/MetaDataTester.java index 3c980a9..d5a78be 100644 --- a/server/restserver/src/test/java/MetaDataTester.java +++ b/server/restserver/src/test/java/MetaDataTester.java @@ -25,6 +25,7 @@ public class MetaDataTester { Assertions.assertNotNull(resource); } + @Test void testLanguages(){ @@ -35,4 +36,6 @@ public class MetaDataTester { System.out.println(items); } + + } diff --git a/server/restserver/src/test/java/RegExTester.java b/server/restserver/src/test/java/RegExTester.java index dc7deb4..bb93dfb 100644 --- a/server/restserver/src/test/java/RegExTester.java +++ b/server/restserver/src/test/java/RegExTester.java @@ -1,4 +1,4 @@ -import com.mongodb.assertions.Assertions; +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import java.net.URL; @@ -28,4 +28,11 @@ public class RegExTester { Assertions.assertNotNull(resource); } + + @Test + void testLocation(){ + URL resouce = getClass().getClassLoader().getResource(""); + + System.out.println(resouce.getPath().toString()); + } } diff --git a/server/shell/src/main/java/eu/csc/ODPAppVehOwnServer/shell/ExportCommands.java b/server/shell/src/main/java/eu/csc/ODPAppVehOwnServer/shell/ExportCommands.java new file mode 100644 index 0000000..6a3a68b --- /dev/null +++ b/server/shell/src/main/java/eu/csc/ODPAppVehOwnServer/shell/ExportCommands.java @@ -0,0 +1,42 @@ +package eu.csc.ODPAppVehOwnServer.shell; + +import eu.csc.ODPAppVehOwnServer.persistence.services.GsonService; +import eu.csc.ODPAppVehOwnServer.services.ExportDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.shell.standard.ShellComponent; +import org.springframework.shell.standard.ShellMethod; + +@ShellComponent +public class ExportCommands extends BaseCommands{ + + @Autowired + private ExportDataService exportDataService; + + @Autowired + private GsonService gsonService; + + @ShellMethod(value = "export All", key = {"export_all"}) + public String exportAll(){ + addMessageString(exportLanguages()); + addMessageString(exportBrands()); + + return getMessageString(); + } + + @ShellMethod(value = "export Languages", key = {"export_languages"}) + public String exportLanguages(){ + getStartMessages("Export Languages"); + addMessageString(gsonService.getJsonString(exportDataService.getLanguages())); + + return getMessageString(); + } + @ShellMethod(value = "export exportBrands", key = {"export_brands"}) + public String exportBrands(){ + + getStartMessages("Export Brands"); + addMessageString(gsonService.getJsonString(exportDataService.getBrands())); + + return getMessageString(); + } + +} diff --git a/server/shell/src/main/java/eu/csc/ODPAppVehOwnServer/shell/InfoCommands.java b/server/shell/src/main/java/eu/csc/ODPAppVehOwnServer/shell/InfoCommands.java index aa95392..de819a5 100644 --- a/server/shell/src/main/java/eu/csc/ODPAppVehOwnServer/shell/InfoCommands.java +++ b/server/shell/src/main/java/eu/csc/ODPAppVehOwnServer/shell/InfoCommands.java @@ -81,10 +81,10 @@ public class InfoCommands extends BaseCommands { for (var language : languages ) { - if (language.getId().equals("en")) - dataService.getOrAddLanguage(language.getId(), language.getName(), true); + if (language.getLocale().equals("en")) + dataService.getOrAddLanguage(language.getLocale(), language.getName(), true); else - dataService.getOrAddLanguage(language.getId(), language.getName()); + dataService.getOrAddLanguage(language.getLocale(), language.getName()); } for (var brand : brands diff --git a/server/shell/src/main/java/eu/csc/ODPAppVehOwnServer/shell/InitCommands.java b/server/shell/src/main/java/eu/csc/ODPAppVehOwnServer/shell/InitCommands.java index 6bedaac..eb3e116 100644 --- a/server/shell/src/main/java/eu/csc/ODPAppVehOwnServer/shell/InitCommands.java +++ b/server/shell/src/main/java/eu/csc/ODPAppVehOwnServer/shell/InitCommands.java @@ -51,10 +51,10 @@ public class InitCommands for (var language:languages ) { addMessageString(" - ADDING LANGUAGE: " + language.toString()); - if (language.getId().equals("en")) - dataService.getOrAddLanguage(language.getId(), language.getName(), true); + if (language.getLocale().equals("en")) + dataService.getOrAddLanguage(language.getLocale(), language.getName(), true); else - dataService.getOrAddLanguage(language.getId(), language.getName()); + dataService.getOrAddLanguage(language.getLocale(), language.getName()); } diff --git a/services/src/main/java/eu/csc/ODPAppVehOwnServer/mapper/DtoMapper.java b/services/src/main/java/eu/csc/ODPAppVehOwnServer/mapper/DtoMapper.java index 6905d94..4f83c4e 100644 --- a/services/src/main/java/eu/csc/ODPAppVehOwnServer/mapper/DtoMapper.java +++ b/services/src/main/java/eu/csc/ODPAppVehOwnServer/mapper/DtoMapper.java @@ -12,6 +12,7 @@ import eu.csc.ODPAppVehOwnServer.persistence.entity.data.DeviceEntity; import eu.csc.ODPAppVehOwnServer.persistence.entity.data.LanguageEntity; import eu.csc.ODPAppVehOwnServer.persistence.entity.data.VehicleBrandEntity; import lombok.var; +import org.mapstruct.Mapping; import java.util.List; import java.util.stream.Collectors; @@ -65,7 +66,7 @@ public class DtoMapper { result.setDefault(item.isStandard()); result.setName(item.getName()); - result.setId(item.getLocale()); + result.setLocale(item.getLocale()); return result; } @@ -91,4 +92,15 @@ public class DtoMapper { return result; } + + public VehicleBrandDto mapVehicleBrandToDto(VehicleBrandEntity item) { + var result = new VehicleBrandDto(); + + result.setBrandId(item.getBrandId()); + result.setName(item.getName()); + result.setId(item.getId()); + result.setImageName(item.getImageName()); + + return result; + } } diff --git a/services/src/main/java/eu/csc/ODPAppVehOwnServer/services/ExportDataService.java b/services/src/main/java/eu/csc/ODPAppVehOwnServer/services/ExportDataService.java new file mode 100644 index 0000000..e1db498 --- /dev/null +++ b/services/src/main/java/eu/csc/ODPAppVehOwnServer/services/ExportDataService.java @@ -0,0 +1,40 @@ +package eu.csc.ODPAppVehOwnServer.services; + +import eu.csc.ODPAppVehOwnServer.mapper.DtoMapper; +import eu.csc.ODPAppVehOwnServer.models.VehicleBrandDto; +import eu.csc.ODPAppVehOwnServer.models.data.LanguageDto; +import eu.csc.ODPAppVehOwnServer.persistence.services.DataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.stream.Collectors; + +@Service +public class ExportDataService { + + private final DataService dataService; + + private final DtoMapper dtoMapper = DtoMapper.getInstance(); + + @Autowired + public ExportDataService(DataService dataService) { + this.dataService = dataService; + } + + + public List getLanguages(){ + return dataService.getLanguages() + .stream().map(dtoMapper::mapLanguageToDto) + .collect(Collectors.toList()); + } + + + public List getBrands(){ + return dataService.getBrands() + .stream().map(dtoMapper::mapVehicleBrandToDto) + .collect(Collectors.toList()); + } + + +} diff --git a/services/src/main/java/eu/csc/ODPAppVehOwnServer/services/ImportContentService.java b/services/src/main/java/eu/csc/ODPAppVehOwnServer/services/ImportContentService.java index a0c2b3f..9ba7ac6 100644 --- a/services/src/main/java/eu/csc/ODPAppVehOwnServer/services/ImportContentService.java +++ b/services/src/main/java/eu/csc/ODPAppVehOwnServer/services/ImportContentService.java @@ -16,7 +16,6 @@ import lombok.var; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.io.FileNotFoundException; import java.util.ArrayList; import java.util.List; import java.util.logging.Logger; @@ -33,8 +32,6 @@ public class ImportContentService { private final VehicleService vehicleService; - - @Autowired public ImportContentService(DataService dataService, DeviceService deviceService, VehicleService vehicleService) { this.dataService = dataService; @@ -42,7 +39,7 @@ public class ImportContentService { this.vehicleService = vehicleService; } - public void importFromFiles(IMetaDataStorage metaDataStorage){ + public void importFromFiles(IMetaDataStorage metaDataStorage) { importLanguages(metaDataStorage.openLanguagesOrEmpty()); @@ -50,14 +47,13 @@ public class ImportContentService { importVehicleBrands(metaDataStorage.openBrandsOrEmpty()); - } public List importPropulsionTypes(List items) { List result = new ArrayList<>(); - for (var item:items - ) { + for (var item : items + ) { result.add(dataService.getOrCreatePropulsionType(item.getPropulsionId(), item.getName())); } @@ -68,7 +64,7 @@ public class ImportContentService { var result = new ArrayList(); - for (var item:items + for (var item : items ) { result.add(importVehicleBrand(item)); } @@ -81,11 +77,11 @@ public class ImportContentService { return vehicleService.addVehicleIfNotExists(item.getBrandId(), item.getName()); } - public List importDevices(List items){ + public List importDevices(List items) { var result = new ArrayList(); - for (var item:items + for (var item : items ) { result.add(importDevice(item)); } @@ -93,8 +89,9 @@ public class ImportContentService { return result; } - public DeviceEntity importDevice(DeviceDto item){ + public DeviceEntity importDevice(DeviceDto item) { var device = DtoMapper.getInstance().mapDeviceFromDto(item); + return deviceService.getOrAddDevice(device); } @@ -102,24 +99,22 @@ public class ImportContentService { public void importLanguages(List languages) { logger.info("IMPORTING LANGUAGES"); + var defaultLanguage = languages.stream().filter(x -> x.isDefault()).findFirst(); - if (defaultLanguage.isPresent()) - { + if (defaultLanguage.isPresent()) { importLanguage(defaultLanguage.get()); } - for (var language : languages) { - importLanguage(language); - } - - throw new UnsupportedOperationException(); + for (var language : languages) { + importLanguage(language); + } } public LanguageEntity importLanguage(LanguageDto item) { - return dataService.getOrAddLanguage(item.getId(), item.getName(), item.isDefault()); + return dataService.getOrAddLanguage(item.getLocale(), item.getName(), item.isDefault()); } } diff --git a/services/src/main/java/eu/csc/ODPAppVehOwnServer/services/LeaseServices.java b/services/src/main/java/eu/csc/ODPAppVehOwnServer/services/LeaseServices.java new file mode 100644 index 0000000..4ecbb13 --- /dev/null +++ b/services/src/main/java/eu/csc/ODPAppVehOwnServer/services/LeaseServices.java @@ -0,0 +1,17 @@ +package eu.csc.ODPAppVehOwnServer.services; + +import asn.GTMaintenance.Lease; +import eu.csc.odpconfigserver.persistence.leases.ASNLeaseEntity; +import org.springframework.stereotype.Service; + +@Service +public class LeaseServices { + + + + public Lease generateASNLease(){ + throw new UnsupportedOperationException(); + } + + +} diff --git a/webcoreroot/client/src/main/java/eu/csc/ODPAppVehOwnServer/client/service/DataClientService.java b/webcoreroot/client/src/main/java/eu/csc/ODPAppVehOwnServer/client/service/DataClientService.java index 338a0f9..1bbb1db 100644 --- a/webcoreroot/client/src/main/java/eu/csc/ODPAppVehOwnServer/client/service/DataClientService.java +++ b/webcoreroot/client/src/main/java/eu/csc/ODPAppVehOwnServer/client/service/DataClientService.java @@ -5,13 +5,24 @@ import eu.csc.ODPAppVehOwnServer.models.VehicleModelDto; import eu.csc.ODPAppVehOwnServer.models.data.DeviceDto; import eu.csc.ODPAppVehOwnServer.models.data.LanguageDto; import eu.csc.ODPAppVehOwnServer.models.data.PropulsionTypeDto; +import eu.csc.ODPAppVehOwnServer.models.lease.CustomLeaseGenDto; +import okhttp3.ResponseBody; import retrofit2.Call; +import retrofit2.http.Body; import retrofit2.http.GET; +import retrofit2.http.POST; import java.util.List; public interface DataClientService extends IApiService { + //region leases (tmp) + + @POST("api/leasgen/custom") + Call customLease(@Body CustomLeaseGenDto dto); + + //endregion + //region Vehicle @GET("/api/vehicles/brands") diff --git a/webcoreroot/dto/src/main/java/eu/csc/ODPAppVehOwnServer/models/data/LanguageDto.java b/webcoreroot/dto/src/main/java/eu/csc/ODPAppVehOwnServer/models/data/LanguageDto.java index 0a8396b..9daecb7 100644 --- a/webcoreroot/dto/src/main/java/eu/csc/ODPAppVehOwnServer/models/data/LanguageDto.java +++ b/webcoreroot/dto/src/main/java/eu/csc/ODPAppVehOwnServer/models/data/LanguageDto.java @@ -7,14 +7,13 @@ import lombok.NoArgsConstructor; @Data @NoArgsConstructor @AllArgsConstructor - public class LanguageDto { - private String id; + private String locale; private String name; private boolean isDefault = false; - public LanguageDto(String id, String name){ - this.id = id; + public LanguageDto(String locale, String name){ + this.locale = locale; this.name = name; } } diff --git a/webcoreroot/dto/src/main/java/eu/csc/ODPAppVehOwnServer/models/lease/CustomLeaseGenDto.java b/webcoreroot/dto/src/main/java/eu/csc/ODPAppVehOwnServer/models/lease/CustomLeaseGenDto.java new file mode 100644 index 0000000..3f2cf70 --- /dev/null +++ b/webcoreroot/dto/src/main/java/eu/csc/ODPAppVehOwnServer/models/lease/CustomLeaseGenDto.java @@ -0,0 +1,25 @@ +package eu.csc.ODPAppVehOwnServer.models.lease; + +import lombok.Data; +import lombok.ToString; + +import java.util.List; + +@Data +@ToString +public class CustomLeaseGenDto { + + private String token; + + private String issuer; + + private String user; + + private Long startTime; + + private Long expirationTime; + + private List systems; + + +}