15
15
package com .crapi .config ;
16
16
17
17
import com .crapi .constant .TestUsers ;
18
+ import com .crapi .entity .ProfileVideo ;
18
19
import com .crapi .entity .User ;
19
20
import com .crapi .entity .UserDetails ;
21
+ import com .crapi .entity .VehicleCompany ;
20
22
import com .crapi .entity .VehicleDetails ;
23
+ import com .crapi .entity .VehicleLocation ;
24
+ import com .crapi .entity .VehicleModel ;
25
+ import com .crapi .enums .EFuelType ;
21
26
import com .crapi .enums .ERole ;
22
27
import com .crapi .model .SeedUser ;
23
28
import com .crapi .repository .*;
24
29
import com .crapi .service .VehicleService ;
30
+ import com .crapi .utils .GenerateVIN ;
25
31
import com .crapi .utils .UserData ;
26
- import com .crapi .utils .VehicleLocationData ;
27
- import com .crapi .utils .VehicleModelData ;
28
32
import java .util .ArrayList ;
33
+ import java .util .List ;
34
+ import java .util .Random ;
29
35
import org .slf4j .Logger ;
30
36
import org .slf4j .LoggerFactory ;
31
37
import org .springframework .beans .factory .annotation .Autowired ;
@@ -40,8 +46,16 @@ public class InitialDataConfig {
40
46
41
47
private static final Logger logger = LoggerFactory .getLogger (InitialDataConfig .class );
42
48
49
+ private static long seed = 0 ;
50
+
51
+ private Random random ;
52
+
53
+ GenerateVIN generateVIN ;
54
+
43
55
@ Autowired VehicleLocationRepository vehicleLocationRepository ;
44
56
57
+ @ Autowired VehicleCompanyRepository vehicleCompanyRepository ;
58
+
45
59
@ Autowired VehicleModelRepository vehicleModelRepository ;
46
60
47
61
@ Autowired VehicleDetailsRepository vehicleDetailsRepository ;
@@ -56,30 +70,57 @@ public class InitialDataConfig {
56
70
57
71
@ Autowired PasswordEncoder encoder ;
58
72
59
- public void addLocation () {
60
- if (CollectionUtils .isEmpty (vehicleLocationRepository .findAll ())) {
61
- VehicleLocationData vehicleLocationData = new VehicleLocationData ();
62
- vehicleLocationRepository .saveAll (vehicleLocationData .getVehicleLocationData ());
63
- }
73
+ public void createModels () {
74
+ VehicleCompany vehicleCompany = new VehicleCompany ("Hyundai" );
75
+ VehicleModel vehicleModel =
76
+ new VehicleModel ("Creta" , EFuelType .DIESEL , vehicleCompany , "images/hyundai-creta.jpg" );
77
+ vehicleModelRepository .save (vehicleModel );
78
+
79
+ vehicleCompany = new VehicleCompany ("Lamborghini" );
80
+ vehicleModel =
81
+ new VehicleModel (
82
+ "Aventador" , EFuelType .PETROL , vehicleCompany , "images/lamborghini-aventador.jpg" );
83
+ vehicleModel = vehicleModelRepository .save (vehicleModel );
84
+
85
+ vehicleCompany = new VehicleCompany ("Mercedes-Benz" );
86
+ vehicleModel =
87
+ new VehicleModel (
88
+ "GLA Class" , EFuelType .DIESEL , vehicleCompany , "images/mercedesbenz-gla.jpg" );
89
+ vehicleModelRepository .save (vehicleModel );
90
+
91
+ vehicleCompany = new VehicleCompany ("BMW" );
92
+ vehicleModel =
93
+ new VehicleModel ("5 Series" , EFuelType .PETROL , vehicleCompany , "images/bmw-5.jpg" );
94
+ vehicleModelRepository .save (vehicleModel );
95
+
96
+ vehicleCompany = new VehicleCompany ("Audi" );
97
+ vehicleModel = new VehicleModel ("RS7" , EFuelType .DIESEL , vehicleCompany , "images/audi-rs7.jpg" );
98
+ vehicleModelRepository .save (vehicleModel );
99
+
100
+ vehicleCompany = new VehicleCompany ("MG Motor" );
101
+ vehicleModel =
102
+ new VehicleModel (
103
+ "Hector Plus" , EFuelType .PETROL , vehicleCompany , "images/mgmotor-hectorplus.jpg" );
104
+ vehicleModel = vehicleModelRepository .save (vehicleModel );
64
105
}
65
106
66
107
public void addVehicleModel () {
67
108
if (CollectionUtils .isEmpty (vehicleModelRepository .findAll ())) {
68
- VehicleModelData vehicleModelData = new VehicleModelData ();
69
- vehicleModelRepository .saveAll (vehicleModelData .getModelList ());
109
+ createModels ();
70
110
}
71
111
}
72
112
73
113
@ EventListener
74
114
public void setup (ApplicationReadyEvent event ) {
75
-
76
- addLocation ();
115
+ random = new Random ();
116
+ random .setSeed (seed );
117
+ generateVIN = new GenerateVIN ();
77
118
addVehicleModel ();
78
119
addUser ();
79
120
}
80
121
81
122
public void addUser () {
82
- if (CollectionUtils .isEmpty (userDetailsRepository .findAll ())) {
123
+ if (CollectionUtils .isEmpty (userDetailsRepository .findAll ()) || false ) {
83
124
ArrayList <SeedUser > userDetailList = new TestUsers ().getUsers ();
84
125
for (SeedUser userDetails : userDetailList ) {
85
126
boolean user =
@@ -88,32 +129,75 @@ public void addUser() {
88
129
userDetails .getEmail (),
89
130
userDetails .getPassword (),
90
131
userDetails .getNumber (),
91
- userDetails .getRole ());
132
+ userDetails .getRole (),
133
+ userDetails .getCarid (),
134
+ userDetails .getVin (),
135
+ userDetails .getPincode (),
136
+ userDetails .getLatitude (),
137
+ userDetails .getLongitude ());
92
138
if (!user ) {
93
139
logger .error ("Fail to create predefined users" );
94
140
}
95
141
}
96
142
}
97
143
}
98
144
145
+ public VehicleDetails createVehicle (
146
+ String carId , String vin , String pincode , String latitude , String longitude ) {
147
+ List <VehicleModel > modelList = null ;
148
+ modelList = vehicleModelRepository .findAll ();
149
+ if (modelList != null ) {
150
+ VehicleLocation vehicleLocation = new VehicleLocation (latitude , longitude );
151
+ VehicleDetails vehicleDetails = new VehicleDetails (carId , pincode , vin );
152
+ VehicleModel vehicleModel = modelList .get (random .nextInt (modelList .size ()));
153
+ vehicleModel = vehicleModelRepository .findById (vehicleModel .getId ()).get ();
154
+ vehicleDetails .setVehicleLocation (vehicleLocation );
155
+ vehicleDetails = vehicleDetailsRepository .save (vehicleDetails );
156
+ vehicleDetails .setModel (vehicleModel );
157
+ vehicleDetails = vehicleDetailsRepository .save (vehicleDetails );
158
+ logger .debug ("Created vehicle for {} successfully" , vehicleDetails );
159
+ return vehicleDetails ;
160
+ }
161
+ return null ;
162
+ }
163
+
99
164
public boolean predefineUserData (
100
- String name , String email , String password , String number , ERole role ) {
165
+ String name ,
166
+ String email ,
167
+ String password ,
168
+ String number ,
169
+ ERole role ,
170
+ String carId ,
171
+ String vin ,
172
+ String pincode ,
173
+ String latitude ,
174
+ String longitude ) {
101
175
UserData userData = new UserData ();
102
176
VehicleDetails vehicleDetails = null ;
103
177
UserDetails userDetails = null ;
104
178
try {
105
179
User user = new User (email , number , encoder .encode (password ), role );
106
180
user = userRepository .save (user );
181
+ user = userRepository .findById (user .getId ()).get ();
107
182
userDetails = userData .getPredefineUser (name , user );
108
- userDetailsRepository .save (userDetails );
109
- vehicleDetails = vehicleService . createVehicle ();
183
+ userDetails = userDetailsRepository .save (userDetails );
184
+ vehicleDetails = createVehicle (carId , vin , pincode , latitude , longitude );
110
185
if (vehicleDetails != null ) {
111
186
vehicleDetails .setOwner (user );
112
187
vehicleDetailsRepository .save (vehicleDetails );
113
- return true ;
188
+ } else {
189
+ logger .error ("Fail to create vehicle for user {}" , email );
190
+ return false ;
114
191
}
115
- logger .error ("Fail to create vehicle for user {}" , email );
116
- return false ;
192
+ // generate random bytes
193
+ byte [] videoBytes = new byte [10 ];
194
+ random .nextBytes (videoBytes );
195
+ String videoName = userDetails .getName ().replace (" " , "_" ) + "_video" ;
196
+ String conversionParam = "-v codec h264" ;
197
+ ProfileVideo profileVideo = new ProfileVideo (videoName , videoBytes , user );
198
+ profileVideo .setConversion_params (conversionParam );
199
+ profileVideoRepository .save (profileVideo );
200
+ return true ;
117
201
} catch (Exception e ) {
118
202
logger .error ("Fail to create user {}, Exception :: {}" , email , e );
119
203
return false ;
0 commit comments