Skip to content

Commit cab579d

Browse files
feat: add service date range to schema + expose on endpoints (#884)
* added service date range
1 parent e5a4c36 commit cab579d

File tree

15 files changed

+278
-13
lines changed

15 files changed

+278
-13
lines changed

api/src/feeds/impl/models/gtfs_dataset_impl.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,4 +49,6 @@ def from_orm(cls, gtfs_dataset: Gtfsdataset | None) -> GtfsDataset | None:
4949
hash=gtfs_dataset.hash,
5050
bounding_box=BoundingBoxImpl.from_orm(gtfs_dataset.bounding_box),
5151
validation_report=cls.from_orm_latest_validation_report(gtfs_dataset.validation_reports),
52+
service_date_range_start=gtfs_dataset.service_date_range_start,
53+
service_date_range_end=gtfs_dataset.service_date_range_end,
5254
)

api/src/feeds/impl/models/latest_dataset_impl.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ def from_orm(cls, dataset: Gtfsdataset | None) -> LatestDataset | None:
5252
hosted_url=dataset.hosted_url,
5353
bounding_box=BoundingBoxImpl.from_orm(dataset.bounding_box),
5454
downloaded_at=dataset.downloaded_at,
55+
service_date_range_start=dataset.service_date_range_start,
56+
service_date_range_end=dataset.service_date_range_end,
5557
hash=dataset.hash,
5658
validation_report=validation_report,
5759
)

api/src/feeds/impl/models/search_feed_item_result_impl.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ def from_orm_gtfs(cls, feed_search_row):
4444
hosted_url=feed_search_row.latest_dataset_hosted_url,
4545
downloaded_at=feed_search_row.latest_dataset_downloaded_at,
4646
hash=feed_search_row.latest_dataset_hash,
47+
service_date_range_start=feed_search_row.latest_dataset_service_date_range_start,
48+
service_date_range_end=feed_search_row.latest_dataset_service_date_range_end,
4749
)
4850
if feed_search_row.latest_dataset_id
4951
else None,

api/tests/test_data/extra_test_data.json

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@
77
"hosted_url": "https://example.com/dataset-1",
88
"hash": "hash",
99
"downloaded_at": "2024-01-31T00:00:00+00:00",
10-
"feed_stable_id": "mdb-1"
10+
"feed_stable_id": "mdb-1",
11+
"service_date_range_start": "2024-01-01",
12+
"service_date_range_end":"2025-01-01"
1113
},
1214
{
1315
"id": "dataset-2",
@@ -16,7 +18,9 @@
1618
"hosted_url": "https://example.com/dataset-2",
1719
"hash": "hash",
1820
"downloaded_at": "2024-02-01T00:00:00+00:00",
19-
"feed_stable_id": "mdb-1"
21+
"feed_stable_id": "mdb-1",
22+
"service_date_range_start": "2024-01-01",
23+
"service_date_range_end":"2025-01-01"
2024
},
2125
{
2226
"id": "dataset-3",
@@ -25,7 +29,9 @@
2529
"hosted_url": "https://example.com/dataset-3",
2630
"hash": "hash",
2731
"downloaded_at": "2024-02-02T00:00:00+00:00",
28-
"feed_stable_id": "mdb-10"
32+
"feed_stable_id": "mdb-10",
33+
"service_date_range_start": "2024-01-01",
34+
"service_date_range_end":"2025-01-01"
2935
},
3036
{
3137
"id": "dataset-4",
@@ -34,7 +40,9 @@
3440
"hosted_url": "https://example.com/dataset-4",
3541
"hash": "hash",
3642
"downloaded_at": "2024-02-03T00:00:00+00:00",
37-
"feed_stable_id": "mdb-10"
43+
"feed_stable_id": "mdb-10",
44+
"service_date_range_start": "2024-01-01",
45+
"service_date_range_end":"2025-01-01"
3846
}
3947
],
4048
"validation_reports": [

api/tests/test_data/test_datasets.json

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@
88
"downloaded_at": "2024-02-01T00:00:00Z",
99
"hash": "hash-1",
1010
"latest": true,
11-
"bounding_box": "POLYGON((-122.75 36.8, -122.75 37.8, -121.75 37.8, -121.75 36.8, -122.75 36.8))"
11+
"bounding_box": "POLYGON((-122.75 36.8, -122.75 37.8, -121.75 37.8, -121.75 36.8, -122.75 36.8))",
12+
"service_date_range_start": "2024-01-01",
13+
"service_date_range_end":"2025-01-01"
1214
},
1315
{
1416
"id": "dataset-2",
@@ -17,7 +19,9 @@
1719
"downloaded_at": "2024-01-01T00:00:00Z",
1820
"hash": "hash-2",
1921
"latest": false,
20-
"bounding_box": "POLYGON((-122.75 36.8, -122.75 37.8, -121.75 37.8, -121.75 36.8, -122.75 36.8))"
22+
"bounding_box": "POLYGON((-122.75 36.8, -122.75 37.8, -121.75 37.8, -121.75 36.8, -122.75 36.8))",
23+
"service_date_range_start": "2024-01-01",
24+
"service_date_range_end":"2025-01-01"
2125
},
2226
{
2327
"id": "dataset-3",
@@ -26,7 +30,9 @@
2630
"downloaded_at": "2024-01-01T00:00:00Z",
2731
"hash": "hash-3",
2832
"latest": true,
29-
"bounding_box": "POLYGON((-122.75 36.8, -122.75 37.8, -121.75 37.8, -121.75 36.8, -122.75 36.8))"
33+
"bounding_box": "POLYGON((-122.75 36.8, -122.75 37.8, -121.75 37.8, -121.75 36.8, -122.75 36.8))",
34+
"service_date_range_start": "2024-01-01",
35+
"service_date_range_end":"2025-01-01"
3036
},
3137
{
3238
"id": "dataset-4",
@@ -35,7 +41,9 @@
3541
"downloaded_at": "2024-02-01T00:00:00Z",
3642
"hash": "hash-4",
3743
"latest": false,
38-
"bounding_box": "POLYGON((-122.75 36.8, -122.75 37.8, -121.75 37.8, -121.75 36.8, -122.75 36.8))"
44+
"bounding_box": "POLYGON((-122.75 36.8, -122.75 37.8, -121.75 37.8, -121.75 36.8, -122.75 36.8))",
45+
"service_date_range_start": "2024-01-01",
46+
"service_date_range_end":"2025-01-01"
3947
},
4048
{
4149
"id": "dataset-5",
@@ -44,7 +52,9 @@
4452
"downloaded_at": "2024-01-01T00:00:00Z",
4553
"hash": "hash-5",
4654
"latest": true,
47-
"bounding_box": "POLYGON((-122.75 36.8, -122.75 37.8, -121.75 37.8, -121.75 36.8, -122.75 36.8))"
55+
"bounding_box": "POLYGON((-122.75 36.8, -122.75 37.8, -121.75 37.8, -121.75 36.8, -122.75 36.8))",
56+
"service_date_range_start": "2024-01-01",
57+
"service_date_range_end":"2025-01-01"
4858
}
4959
],
5060
"validation_reports": [

api/tests/unittest/models/test_basic_feed_impl.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import copy
22
import unittest
3-
from datetime import datetime
3+
from datetime import datetime, date
44

55
from database_gen.sqlacodegen_models import (
66
Feed,
@@ -64,6 +64,8 @@
6464
downloaded_at="downloaded_at",
6565
hash="hash",
6666
bounding_box="bounding_box",
67+
service_date_range_start=date(2024, 1, 1),
68+
service_date_range_end=date(2025, 1, 1),
6769
validation_reports=[
6870
Validationreport(
6971
id="id",

api/tests/unittest/models/test_gtfs_dataset_impl.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import unittest
2-
from datetime import datetime
2+
from datetime import datetime, date
33

44
from geoalchemy2 import WKTElement
55

@@ -42,6 +42,8 @@ def test_from_orm(self):
4242
Validationreport(validator_version="0.2.0"),
4343
Validationreport(validator_version="1.1.1"),
4444
],
45+
service_date_range_start=date(2024, 1, 1),
46+
service_date_range_end=date(2025, 1, 1),
4547
)
4648
result = GtfsDatasetImpl.from_orm(orm)
4749
assert result.id == "stable_id"
@@ -56,5 +58,7 @@ def test_from_orm(self):
5658
assert result.bounding_box.minimum_longitude == 3.0
5759
assert result.bounding_box.maximum_longitude == 4.0
5860
assert result.validation_report.validator_version == "1.1.1"
61+
assert result.service_date_range_start == date(2024, 1, 1)
62+
assert result.service_date_range_end == date(2025, 1, 1)
5963

6064
assert GtfsDatasetImpl.from_orm(None) is None

api/tests/unittest/models/test_gtfs_feed_impl.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import copy
22
import unittest
3-
from datetime import datetime
3+
from datetime import datetime, date
44

55
from geoalchemy2 import WKTElement
66

@@ -87,6 +87,8 @@ def create_test_notice(notice_code: str, total_notices: int, severity: str):
8787
note="note",
8888
downloaded_at=datetime(year=2022, month=12, day=31, hour=13, minute=45, second=56),
8989
hash="hash",
90+
service_date_range_start=date(2024, 1, 1),
91+
service_date_range_end=date(2025, 1, 1),
9092
bounding_box=WKTElement(POLYGON, srid=4326),
9193
latest=True,
9294
validation_reports=[
@@ -169,6 +171,8 @@ def create_test_notice(notice_code: str, total_notices: int, severity: str):
169171
unique_warning_count=4,
170172
unique_info_count=2,
171173
),
174+
service_date_range_start="2024-01-01",
175+
service_date_range_end="2025-01-01",
172176
),
173177
)
174178

api/tests/unittest/models/test_latest_dataset_impl.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import unittest
2-
from datetime import datetime
2+
from datetime import datetime, date
33

44
from geoalchemy2 import WKTElement
55

@@ -23,6 +23,8 @@ def test_from_orm(self):
2323
downloaded_at=now,
2424
hash="hash",
2525
bounding_box=WKTElement(POLYGON, srid=4326),
26+
service_date_range_start=date(2024, 1, 1),
27+
service_date_range_end=date(2025, 1, 1),
2628
validation_reports=[
2729
Validationreport(validator_version="1.0.0"),
2830
Validationreport(
@@ -50,6 +52,8 @@ def test_from_orm(self):
5052
minimum_longitude=3.0,
5153
maximum_longitude=4.0,
5254
),
55+
service_date_range_start=date(2024, 1, 1),
56+
service_date_range_end=date(2025, 1, 1),
5357
validation_report={
5458
"validator_version": "1.2.0",
5559
"total_error": 3,

api/tests/unittest/models/test_search_feed_item_result_impl.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ def __init__(self, **kwargs):
4040
latest_dataset_downloaded_at=downloaded_at,
4141
latest_dataset_bounding_box=None,
4242
latest_dataset_hash="latest_dataset_hash",
43+
latest_dataset_service_date_range_start="2030-10-10",
44+
latest_dataset_service_date_range_end="2031-10-10",
4345
external_ids=[],
4446
redirect_ids=[],
4547
feed_reference_ids=[],
@@ -80,6 +82,8 @@ def test_from_orm_gtfs(self):
8082
hosted_url=item.latest_dataset_hosted_url,
8183
downloaded_at=item.latest_dataset_downloaded_at,
8284
hash=item.latest_dataset_hash,
85+
service_date_range_start=item.latest_dataset_service_date_range_start,
86+
service_date_range_end=item.latest_dataset_service_date_range_end,
8387
),
8488
)
8589
assert result == expected

0 commit comments

Comments
 (0)