Skip to content

HTM-1960: Custom extract functionality for layer attributes#1274

Merged
mprins merged 10 commits into
mainfrom
HTM-1960_Custom_extract_functionality_for_layer_attributes
May 12, 2026
Merged

HTM-1960: Custom extract functionality for layer attributes#1274
mprins merged 10 commits into
mainfrom
HTM-1960_Custom_extract_functionality_for_layer_attributes

Conversation

@mprins
Copy link
Copy Markdown
Contributor

@mprins mprins commented Apr 13, 2026

HTM-1960 Powered by Pull Request Badge

This is a feature branch to collect all subtasks

@mprins mprins self-assigned this Apr 13, 2026
@mprins mprins added enhancement New feature or request deprecated labels Apr 13, 2026
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 13, 2026

Test Results

  1 files  ±0  237 suites  ±0   9m 2s ⏱️ +10s
755 tests +1  755 ✅ +1  0 💤 ±0  0 ❌ ±0 
849 runs  +1  849 ✅ +1  0 💤 ±0  0 ❌ ±0 

Results for commit fde7110. ± Comparison against base commit d49e46b.

This pull request removes 5 and adds 6 tests. Note that renamed tests count towards both.
AttributeListManagerService getLayerExport$ should return export response from dataLoader when source is found ‑ AttributeListManagerService getLayerExport$ should return export response from dataLoader when source is found
AttributeListManagerService getLayerExport$ should return null when source is not found ‑ AttributeListManagerService getLayerExport$ should return null when source is not found
AttributeListManagerService getLayerExportCapabilities$ should return empty capabilities when source is not found ‑ AttributeListManagerService getLayerExportCapabilities$ should return empty capabilities when source is not found
AttributeListManagerService getLayerExportCapabilities$ should return export capabilities from dataLoader when source is found ‑ AttributeListManagerService getLayerExportCapabilities$ should return export capabilities from dataLoader when source is found
TailormapApiV1Service queries API for getLayerExportCapabilities$ ‑ TailormapApiV1Service queries API for getLayerExportCapabilities$
AttributeListManagerService getLayerExtractCapabilities$ should return empty capabilities when source is not found ‑ AttributeListManagerService getLayerExtractCapabilities$ should return empty capabilities when source is not found
AttributeListManagerService getLayerExtractCapabilities$ should return export capabilities from dataLoader when source is found ‑ AttributeListManagerService getLayerExtractCapabilities$ should return export capabilities from dataLoader when source is found
AttributeListManagerService startLayerExtract$ should return export response from dataLoader when source is found - direct download ‑ AttributeListManagerService startLayerExtract$ should return export response from dataLoader when source is found - direct download
AttributeListManagerService startLayerExtract$ should return export response from dataLoader when source is found ‑ AttributeListManagerService startLayerExtract$ should return export response from dataLoader when source is found
AttributeListManagerService startLayerExtract$ should return null when source is not found ‑ AttributeListManagerService startLayerExtract$ should return null when source is not found
TailormapApiV1Service queries API for getExtractFormats$ ‑ TailormapApiV1Service queries API for getExtractFormats$

♻️ This comment has been updated with latest results.

@mprins mprins force-pushed the HTM-1960_Custom_extract_functionality_for_layer_attributes branch from 01ce416 to 3854823 Compare April 21, 2026 08:26
@mprins mprins force-pushed the HTM-1960_Custom_extract_functionality_for_layer_attributes branch 3 times, most recently from acc6aef to f8da8c6 Compare April 30, 2026 13:20
@mprins mprins force-pushed the HTM-1960_Custom_extract_functionality_for_layer_attributes branch 2 times, most recently from 68d47cd to 757fe8f Compare May 8, 2026 08:13
@mprins mprins marked this pull request as ready for review May 8, 2026 19:51
Copilot AI review requested due to automatic review settings May 8, 2026 19:51
@mprins mprins enabled auto-merge (rebase) May 8, 2026 19:55
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR migrates the attribute list “export” flow from the deprecated /export endpoint to the new /extract API, adding support for asynchronous extracts with server-sent progress events and a follow-up download step.

Changes:

  • Replaced layer export capability/request calls with extract formats, extract request, and extract download calls.
  • Added an ExtractProgressEventsService (SSE) and wired progress reporting into the attribute list export UI.
  • Updated API service layer, mocks, and i18n messages to align with the new extract terminology/endpoints.

Reviewed changes

Copilot reviewed 22 out of 22 changed files in this pull request and generated 9 comments.

Show a summary per file
File Description
projects/core/src/lib/components/attribute-list/services/attribute-list-manager.service.ts Renames export methods to extract equivalents and adds download method.
projects/core/src/lib/components/attribute-list/services/attribute-list-manager.service.spec.ts Updates unit tests for extract methods (but still contains outdated stubs elsewhere).
projects/core/src/lib/components/attribute-list/services/attribute-list-export.service.ts Implements async extract workflow with SSE progress + download-on-complete.
projects/core/src/lib/components/attribute-list/services/attribute-list-api.service.ts Switches to /extract request + download API calls and extract formats endpoint.
projects/core/src/lib/components/attribute-list/models/attribute-list-api-service.model.ts Renames API model interfaces to extract and introduces download params/response.
projects/core/src/lib/components/attribute-list/attribute-list-export-button/attribute-list-export-button.component.ts Wires UI to extract progress and updated formats enum.
projects/core/src/lib/components/attribute-list/attribute-list-export-button/attribute-list-export-button.component.spec.ts Updates component tests to use extract format enum.
projects/core/src/lib/components/attribute-list/attribute-list-export-button/attribute-list-export-button.component.html Replaces indeterminate spinner with progress spinner and adjusts menu items.
projects/core/assets/locale/messages.core.nl.xlf Updates/extends translations for extract flow and download failure.
projects/core/assets/locale/messages.core.en.xlf Updates/extends translations for extract flow and download failure.
projects/core/assets/locale/messages.core.de.xlf Updates/extends translations for extract flow and download failure.
projects/api/src/lib/services/tailormap-api-v1.service.ts Implements /extract/formats, /extract/{clientId}, and extract download endpoint calls.
projects/api/src/lib/services/tailormap-api-v1.service.spec.ts Updates API service test for extract formats endpoint.
projects/api/src/lib/services/tailormap-api-v1.service.model.ts Renames service model methods to extract equivalents and adds download method.
projects/api/src/lib/services/tailormap-api-v1-mock.service.ts Updates mock implementation for extract formats/request/download.
projects/api/src/lib/services/index.ts Exposes the new ExtractProgressEventsService.
projects/api/src/lib/services/extract-progress-events.service.ts New SSE client service for extract progress/completion events.
projects/api/src/lib/models/layer-extract-response.model.ts New model for extract request response.
projects/api/src/lib/models/layer-extract-capabilities.model.ts New model for extract formats/capabilities.
projects/api/src/lib/models/layer-export-capabilities.model.ts Removes deprecated export capabilities model.
projects/api/src/lib/models/index.ts Exports new extract models.
projects/api/src/lib/mock-data/tailormap-api.mock-data.ts Updates mock data for extract formats model.
Comments suppressed due to low confidence (1)

projects/core/src/lib/components/attribute-list/services/attribute-list-manager.service.spec.ts:44

  • The test setup below updates mockApiService to the new extract method names, but there are still dataLoaderWithoutMethod stubs later in this spec that use the removed getLayerExportCapabilities$/getLayerExport$ members. With the updated AttributeListApiServiceModel, those stubs will no longer type-check and can break the build; update them to the new methods (or cast to Partial<AttributeListApiServiceModel> when intentionally omitting members).
    mockApiService = {
      getFeatures$: jest.fn(),
      getLayerExtractCapabilities$: jest.fn(),
      startLayerExtract$: jest.fn(),
      getUniqueValues$: jest.fn(),
      canExpandRow$: jest.fn(),
      getFeatureDetails$: jest.fn(),
    } as Record<keyof AttributeListApiServiceModel, jest.Mock>;

Comment thread projects/api/src/lib/services/extract-progress-events.service.ts
Comment thread projects/api/src/lib/services/extract-progress-events.service.ts
Comment thread projects/api/src/lib/services/tailormap-api-v1-mock.service.ts Outdated
@mprins mprins force-pushed the HTM-1960_Custom_extract_functionality_for_layer_attributes branch from f20981d to e17a5df Compare May 11, 2026 10:19
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@mprins mprins force-pushed the HTM-1960_Custom_extract_functionality_for_layer_attributes branch from e17a5df to fde7110 Compare May 11, 2026 10:20
@mprins mprins changed the title [WIP] HTM-1960: Custom extract functionality for layer attributes HTM-1960: Custom extract functionality for layer attributes May 12, 2026
@mprins mprins disabled auto-merge May 12, 2026 09:31
@mprins mprins merged commit 98a330f into main May 12, 2026
13 checks passed
@mprins mprins deleted the HTM-1960_Custom_extract_functionality_for_layer_attributes branch May 12, 2026 09:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

deprecated enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants