Passed
Push — development ( 811359...8d1f71 )
by Vad
12:40 queued 13s
created

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

Complexity

Total Complexity 3
Complexity/F 3

Size

Lines of Code 72
Function Count 1

Duplication

Duplicated Lines 0
Ratio 0 %

Test Coverage

Coverage 93.75%

Importance

Changes 0
Metric Value
eloc 49
dl 0
loc 72
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 0

1 Function

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