Skip to content
This repository was archived by the owner on Feb 23, 2026. It is now read-only.

Commit d3f2faf

Browse files
authored
Merge pull request #238 from raphaelrpl/reuse-cube
🐛 Fix minimal issues related api resources and list merges
2 parents 986d599 + 45b54a1 commit d3f2faf

4 files changed

Lines changed: 19 additions & 8 deletions

File tree

cube_builder/controller.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,12 @@ def get_cube(cls, cube_id: int):
331331
]
332332
dump_cube['extent'] = None
333333
dump_cube['grid'] = cube.grs.name
334-
dump_cube['composite_function'] = cube.composite_function.name
334+
dump_cube['composite_function'] = dict(
335+
name=cube.composite_function.name,
336+
description=cube.composite_function.description,
337+
alias=cube.composite_function.alias,
338+
)
339+
335340
dump_cube['summary'] = cls.summarize(cube)
336341

337342
return dump_cube, 200
@@ -461,8 +466,9 @@ def check_for_invalid_merges(cls, cube_id: str, tile_id: str, start_date: str, e
461466
raise NotFound('Cube {} not found'.format(cube_id))
462467

463468
# TODO validate schema to avoid start/end too abroad
469+
identity = cube.composite_function.alias == 'IDT'
464470

465-
res = Activity.list_merge_files(cube.name, tile_id, start_date[:10], end_date[:10])
471+
res = Activity.list_merge_files(cube.name, tile_id, start_date[:10], end_date[:10], identity)
466472

467473
result = validate_merges(res)
468474

cube_builder/forms.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,8 +119,8 @@ class CubeParametersSchema(Schema):
119119
class DataCubeForm(Schema):
120120
"""Define parser for datacube creation."""
121121

122-
datacube = fields.String(required=True, allow_none=False, validate=Regexp('^[a-zA-Z0-9-]*$', error=INVALID_CUBE_NAME))
123-
datacube_identity = fields.String(required=False, allow_none=False, validate=Regexp('^[a-zA-Z0-9-]*$', error=INVALID_CUBE_NAME))
122+
datacube = fields.String(required=True, allow_none=False, validate=Regexp('^[a-zA-Z0-9-_]*$', error=INVALID_CUBE_NAME))
123+
datacube_identity = fields.String(required=False, allow_none=False, validate=Regexp('^[a-zA-Z0-9-_]*$', error=INVALID_CUBE_NAME))
124124
grs = fields.String(required=True, allow_none=False)
125125
resolution = fields.Integer(required=True, allow_none=False)
126126
temporal_composition = fields.Dict(required=True, allow_none=False)

cube_builder/models/activity.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,17 +52,22 @@ class Activity(BaseModel):
5252
@classmethod
5353
def list_merge_files(cls, collection: str, tile: str,
5454
start_date: Union[str, datetime],
55-
end_date: Union[str, datetime]) -> ResultProxy:
55+
end_date: Union[str, datetime],
56+
identity: bool = False) -> ResultProxy:
5657
"""List all merge files used in data cube generation."""
58+
field = 'collection_id'
59+
if identity:
60+
field = 'warped_collection_id'
5761
sql = """
5862
SELECT id, tile_id, band, date::VARCHAR as date, collection_id, args->>'file' AS file, args->'dataset'::VARCHAR AS data_set, (elem->>'link')::VARCHAR as link, status, traceback::TEXT
5963
FROM cube_builder.activities
6064
CROSS JOIN json_array_elements(args->'assets') elem
61-
WHERE collection_id = '{}'
65+
WHERE {} = '{}'
6266
AND tile_id = '{}'
6367
AND date BETWEEN '{}'::DATE AND '{}'::DATE
6468
ORDER BY id
6569
""".format(
70+
field,
6671
collection,
6772
tile,
6873
start_date,

cube_builder/views.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -133,9 +133,9 @@ def update_cube_parameters(cube_id, **kwargs):
133133
"""Update the data cube parameters execution."""
134134
parameters = request.get_json()
135135

136-
message, status_code = CubeController.configure_parameters(cube_id, **parameters)
136+
message = CubeController.configure_parameters(int(cube_id), **parameters)
137137

138-
return jsonify(message), status_code
138+
return jsonify(message)
139139

140140

141141
@bp.route('/cubes/<cube_id>/tiles/geom', methods=['GET'])

0 commit comments

Comments
 (0)