Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 34 additions & 1 deletion util/seed/user.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ const (

var osoba *model.User
var admin *model.User
var hak *model.User
var vehicle *model.Vehicle
Comment thread
Tiitmouse marked this conversation as resolved.

func Insert() {
if err := createSuperAdmin(); err != nil {
Expand All @@ -28,8 +30,14 @@ func Insert() {
if err := createUser(); err != nil {
zap.S().Panicf("Failed to create user, err = %+v\n", err)
}
if err := createHakUser(); err != nil {
zap.S().Panicf("Failed to create user(HAK), err = %+v\n", err)
}
if err := createDevice(); err != nil {

zap.S().Panicf("Failed to create device, err = %+v\n", err)
}
if err := createVehicle(); err != nil {
zap.S().Panicf("Failed to create vehicle, err = %+v\n", err)
}
}
}
Expand All @@ -43,6 +51,7 @@ func createUser() error {
Email: "osoba@test.hr",
OIB: "72352576276",
Role: model.RoleOsoba,
Residence: "Zagreb",
BirthDate: time.Now().AddDate(-20, 0, 0),
Uuid: uuid.New(),
}
Expand All @@ -57,6 +66,30 @@ func createUser() error {
return nil
}

func createHakUser() error {
userCrud := service.NewUserCrudService()

newUser := model.User{
FirstName: "hak",
LastName: "hakovac",
Email: "hak@test.hr",
OIB: "30998630164",
Role: model.RoleHAK,
Residence: "Zagreb",
BirthDate: time.Now().AddDate(-20, 0, 0),
Uuid: uuid.New(),
}

user, err := userCrud.Create(&newUser, _TEST_PASSWORD)
if err != nil {
return err
}

zap.S().Infof("User (HAK) created, %+v\n", user)
hak = user
return nil
}
Comment on lines +69 to +91
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick (assertive)

Consider potential issues with hardcoded OIB values.

The implementation follows the same pattern as createUser() which is good for consistency. However, consider potential uniqueness constraint violations if seeding is run multiple times.

If OIB has uniqueness constraints, consider:

  1. Using a more dynamic approach for generating test OIB values
  2. Adding cleanup logic before seeding
  3. Using upsert logic instead of create
// Example: Generate a test OIB dynamically
testOIB := fmt.Sprintf("309986301%02d", rand.Intn(100))
🤖 Prompt for AI Agents
In util/seed/user.go around lines 69 to 91, the hardcoded OIB value in
createHakUser may cause uniqueness constraint violations if the seed runs
multiple times. To fix this, modify the function to generate a dynamic OIB value
each time, for example by appending a random number to a base string.
Alternatively, implement cleanup logic to remove existing test users before
seeding or change the create call to an upsert operation to avoid duplicate key
errors.


func createDevice() error {
var db *gorm.DB
app.Invoke(func(database *gorm.DB) {
Expand Down
47 changes: 47 additions & 0 deletions util/seed/vehicle.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package seed

import (
"ePrometna_Server/model"
"ePrometna_Server/service"
"time"

"github.com/google/uuid"
"go.uber.org/zap"
)

func createVehicle() error {
vservice := service.NewVehicleService()

vehicleInfo := model.Vehicle{
Uuid: uuid.New(),
VehicleType: "Car",
VehicleModel: "Golf",
Mark: "Volkswagen",
VehicleCategory: "M1",
ChassisNumber: "WVWZZZ1KZAW123456",
BodyShape: "Hatchback",
VehicleUse: "Personal",
DateFirstRegistration: "2020-01-15",
EngineCapacity: "1598",
EnginePower: "110",
FuelOrPowerSource: "Petrol",
NumberOfSeats: "5",
ColourOfVehicle: "Silver",
Registration: &model.RegistrationInfo{
Uuid: uuid.New(),
PassTechnical: true,
TraveledDistance: 25000,
TechnicalDate: time.Now().AddDate(0, 6, 0),
Registration: "ZG1234AA",
},
}
Comment thread
Tiitmouse marked this conversation as resolved.

newVehicle, err := vservice.Create(&vehicleInfo, osoba.Uuid)
if err != nil {
return err
}

zap.S().Infof("Vehicle created, %+v\n", newVehicle)
vehicle = newVehicle
return nil
}
Comment thread
Tiitmouse marked this conversation as resolved.