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

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

Complexity

Total Complexity 2
Complexity/F 2

Size

Lines of Code 199
Function Count 1

Duplication

Duplicated Lines 0
Ratio 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 151
dl 0
loc 199
ccs 15
cts 15
cp 1
rs 10
c 0
b 0
f 0
wmc 2
mnd 1
bc 1
fnc 1
bpm 1
cpm 2
noi 0

1 Function

Rating   Name   Duplication   Size   Complexity  
B ZoneSeeder.run 0 189 2
1
import { DataSource } from 'typeorm';
2 7
import { Zone } from '../../zones/entities/zone';
3 7
import { City } from '../../cities/entities/city.entity';
4 7
import { CityName } from '../../cities/types/city.enum';
5
6 7
export default class ZoneSeeder {
7
  async run(connection: DataSource): Promise<void> {
8 9
    if (true) {
9
      //process.env.NODE_ENV !== 'production') {
10 9
      const zoneRepo = connection.getRepository(Zone);
11
12 9
      const cityRepo = connection.getRepository(City);
13
14 9
      const cities = await Promise.all([
15
        cityRepo.findOne({ where: { name: CityName.Göteborg } }) ||
16
          cityRepo.save(cityRepo.create({ name: CityName.Göteborg })),
17
18
        cityRepo.findOne({ where: { name: CityName.Karlshamn } }) ||
19
          cityRepo.save(cityRepo.create({ name: CityName.Karlshamn })),
20
21
        cityRepo.findOne({ where: { name: CityName.Jönköping } }) ||
22
          cityRepo.save(cityRepo.create({ name: CityName.Jönköping })),
23
      ]);
24
25 9
      const [goteborg, karlshamn, jonkoping] = cities;
26 9
      const [parking, charging, speed] = ['parking', 'charging', 'speed'] as const;
27
28 9
      await zoneRepo.clear();
29
30
      // Göteborg Zones
31 9
      const gotebergZones = [
32
        // Central Station Parking Zone
33
        {
34
          polygon: [
35
            { lat: 57.7089, lng: 11.9726 },
36
            { lat: 57.7092, lng: 11.9734 },
37
            { lat: 57.7088, lng: 11.9746 },
38
            { lat: 57.7084, lng: 11.9738 },
39
            { lat: 57.7089, lng: 11.9726 },
40
          ],
41
          type: parking,
42
          city: goteborg,
43
          name: 'Central Station P-hus',
44
        },
45
        // Nordstan Shopping Center Parking
46
        {
47
          polygon: [
48
            { lat: 57.7095, lng: 11.9689 },
49
            { lat: 57.7099, lng: 11.9701 },
50
            { lat: 57.7093, lng: 11.9712 },
51
            { lat: 57.7089, lng: 11.97 },
52
            { lat: 57.7095, lng: 11.9689 },
53
          ],
54
          type: parking,
55
          city: goteborg,
56
          name: 'Nordstan P-hus',
57
        },
58
        // Lindholmen Science Park Charging Zone
59
        {
60
          polygon: [
61
            { lat: 57.7066, lng: 11.9384 },
62
            { lat: 57.7069, lng: 11.939 },
63
            { lat: 57.7067, lng: 11.9396 },
64
            { lat: 57.7064, lng: 11.939 },
65
            { lat: 57.7066, lng: 11.9384 },
66
          ],
67
          type: charging,
68
          city: goteborg,
69
          name: 'Lindholmen Laddstation',
70
        },
71
        // Avenyn Speed Zone
72
        {
73
          polygon: [
74
            { lat: 57.7, lng: 11.9753 },
75
            { lat: 57.7047, lng: 11.9745 },
76
            { lat: 57.7048, lng: 11.9757 },
77
            { lat: 57.7001, lng: 11.9765 },
78
            { lat: 57.7, lng: 11.9753 },
79
          ],
80
          type: speed,
81
          city: goteborg,
82
          speedZone: {
83
            speedLimit: 30,
84
          },
85
          name: 'Avenyn Hastighetszon',
86
        },
87
      ];
88
89
      // Karlshamn Zones
90 9
      const karlshamnZones = [
91
        // City Center Parking
92
        {
93
          polygon: [
94
            { lat: 56.1708, lng: 14.8631 },
95
            { lat: 56.1712, lng: 14.8637 },
96
            { lat: 56.1709, lng: 14.8643 },
97
            { lat: 56.1705, lng: 14.8637 },
98
            { lat: 56.1708, lng: 14.8631 },
99
          ],
100
          type: parking,
101
          city: karlshamn,
102
          name: 'Centrum Parkering Karlshamn',
103
        },
104
        // Harbor Charging Station
105
        {
106
          polygon: [
107
            { lat: 56.1657, lng: 14.8607 },
108
            { lat: 56.1659, lng: 14.8612 },
109
            { lat: 56.1657, lng: 14.8616 },
110
            { lat: 56.1655, lng: 14.8611 },
111
            { lat: 56.1657, lng: 14.8607 },
112
          ],
113
          type: charging,
114
          city: karlshamn,
115
          name: 'Hamnen Laddstation',
116
        },
117
        // School Zone Speed Limit
118
        {
119
          polygon: [
120
            { lat: 56.1695, lng: 14.8598 },
121
            { lat: 56.1699, lng: 14.8608 },
122
            { lat: 56.1695, lng: 14.8618 },
123
            { lat: 56.1691, lng: 14.8608 },
124
            { lat: 56.1695, lng: 14.8598 },
125
          ],
126
          type: speed,
127
          city: karlshamn,
128
          speedZone: {
129
            speedLimit: 20,
130
          },
131
          name: 'Skolzon Väggaskolan',
132
        },
133
      ];
134
135
      // Jönköping Zones
136 9
      const jonkopingZones = [
137
        // A6 Shopping Center Parking
138
        {
139
          polygon: [
140
            { lat: 57.7741, lng: 14.2031 },
141
            { lat: 57.7745, lng: 14.2039 },
142
            { lat: 57.7741, lng: 14.2047 },
143
            { lat: 57.7737, lng: 14.2039 },
144
            { lat: 57.7741, lng: 14.2031 },
145
          ],
146
          type: parking,
147
          city: jonkoping,
148
          name: 'A6 Center Parkering',
149
        },
150
        // Central Station Charging
151
        {
152
          polygon: [
153
            { lat: 57.7843, lng: 14.1617 },
154
            { lat: 57.7846, lng: 14.1622 },
155
            { lat: 57.7844, lng: 14.1627 },
156
            { lat: 57.7841, lng: 14.1622 },
157
            { lat: 57.7843, lng: 14.1617 },
158
          ],
159
          type: charging,
160
          city: jonkoping,
161
          name: 'Resecentrum Laddstation',
162
        },
163
        // City Center Speed Zone
164
        {
165
          polygon: [
166
            { lat: 57.7819, lng: 14.1556 },
167
            { lat: 57.7829, lng: 14.1576 },
168
            { lat: 57.7824, lng: 14.1586 },
169
            { lat: 57.7814, lng: 14.1566 },
170
            { lat: 57.7819, lng: 14.1556 },
171
          ],
172
          type: speed,
173
          city: jonkoping,
174
          speedZone: {
175
            speedLimit: 30,
176
          },
177
          name: 'Centrum Hastighetszon Jönköping',
178
        },
179
        // Elmia Exhibition Center Parking
180
        {
181
          polygon: [
182
            { lat: 57.7701, lng: 14.2173 },
183
            { lat: 57.7706, lng: 14.2183 },
184
            { lat: 57.7701, lng: 14.2193 },
185
            { lat: 57.7696, lng: 14.2183 },
186
            { lat: 57.7701, lng: 14.2173 },
187
          ],
188
          type: parking,
189
          city: jonkoping,
190
          name: 'Elmia Parkering',
191
        },
192
      ];
193
194
      // Save all zones
195 9
      await zoneRepo.save([...gotebergZones, ...karlshamnZones, ...jonkopingZones]);
196
    }
197
  }
198
}
199