Passed
Pull Request — development (#102)
by Karl
12:26
created

backend/src/database/seeds/travel-data.seed.ts   A

Complexity

Total Complexity 3
Complexity/F 3

Size

Lines of Code 71
Function Count 1

Duplication

Duplicated Lines 0
Ratio 0 %

Test Coverage

Coverage 93.75%

Importance

Changes 0
Metric Value
eloc 48
dl 0
loc 71
ccs 15
cts 16
cp 0.9375
rs 10
c 0
b 0
f 0
wmc 3
mnd 2
bc 2
fnc 1
bpm 2
cpm 3
noi 1

1 Function

Rating   Name   Duplication   Size   Complexity  
B TravelDataSeeder.run 0 57 3
1
import { DataSource } from 'typeorm';
2 7
import { Travel } from '../../travel/entities/travel.entity';
3 7
import { Bicycle } from '../../bicycles/entities/bicycle.entity';
4 7
import { User } from '../../users/entities/user.entity';
5
6 7
export default class TravelDataSeeder {
7
  async run(connection: DataSource): Promise<void> {
8 9
    if (true) {//process.env.NODE_ENV !== 'production') {
0 ignored issues
show
introduced by
Insert ⏎······
Loading history...
9 9
      const travelRepository = connection.getRepository(Travel);
10 9
      const bikeRepository = connection.getRepository(Bicycle);
11 9
      const userRepository = connection.getRepository(User);
12
13
      // Fetch references for existing bikes and customers
14
15
      // Note that bike reference in seed is made by 'batteryLevel' for now
16 9
      const bike1 = await bikeRepository.findOneBy({ batteryLevel: 95 });
17 9
      const bike2 = await bikeRepository.findOneBy({ batteryLevel: 88 });
18 9
      const user1 = await userRepository.findOneBy({ githubId: '149484382' });
19 9
      const user2 = await userRepository.findOneBy({ githubId: '13668660' });
20
21 9
      if (!bike1 || !bike2 || !user1 || !user2) {
22
        throw new Error(
23
          'Bikes or Users not found. Make sure they exist before seeding Travel data.',
24
        );
25
      }
26
27
      // Create travel data
28 9
      const travels = travelRepository.create([
29
        {
30
          bike: bike1,
31
          startTime: new Date('2024-01-01T08:00:00.000Z'),
32
          stopTime: new Date('2024-01-01T09:00:00.000Z'),
33
          latStart: 59.3293,
34
          longStart: 18.0686,
35
          latStop: 59.3328,
36
          longStop: 18.0649,
37
          customer: user1,
38
          cost: 50.0,
39
          startZoneType: 'Free',
40
          endZoneType: 'Parking',
41
        },
42
        {
43
          bike: bike2,
44
          startTime: new Date('2024-01-02T10:00:00.000Z'),
45
          stopTime: new Date('2024-01-02T11:00:00.000Z'),
46
          latStart: 59.3315,
47
          longStart: 18.07,
48
          latStop: 59.3299,
49
          longStop: 18.071,
50
          customer: user2,
51
          cost: 75.0,
52
          startZoneType: 'Parking',
53
          endZoneType: 'Free',
54
        },
55
      ]);
56
57
      // console.log('Bike1:', bike1);
58
      // console.log('Bike2:', bike2);
59
      // console.log('User1:', user1);
60
      // console.log('User2:', user2);
61
62
      // try {
63 9
      await travelRepository.save(travels);
64
      //     console.log('Travel data saved successfully!');
65
      // } catch (error) {
66
      //     console.error('Error saving travels:', error);
67
      // }
68
    }
69
  }
70
}
71