Endpointtoday's app
- Call
DELETE /gateway/portfolio-service/api/v1/compact-block?compactBlockId&reason- Service
- portfolio-service
- Features
- Compact Block
- When
- Queued sync (COMPACT_BLOCK DELETE)
- Auth
- X-SESSIONID stamped when queued (CoreAPI dooWithRetry); X-REQUESTID idempotency key
- In the App Service
Use case
Queued delete of a compact block (COMPACT_BLOCK DELETE) with the reason chosen by the user. On success the local block is marked synced. On error the handler rewrites compactBlockId and reason in the URL from the DB (in case the id arrived later) and retries.
Headers
| Header | Value | Notes |
|---|
X-SESSIONID | <session token> | Stamped when queued (dooWithRetry); refreshed on 401. |
Content-Type | application/json | Added by CoreAPI even though there is no body. No X-REQUESTID: DELETE ops do not get one. |
Parameters
| Param | In | Required | Example | Notes |
|---|
compactBlockId | query | Yes | 6101 | Server block id. |
reason | query | Yes | Lands no longer adjacent | inActiveReason (not URL-encoded by the app). |
Request
No body. compactBlockId, reason
Response
| Field | Type | Required | Notes |
|---|
(body) | unknown | | Not read. |
Errors
| Status | When | What the app does |
|---|
401 | Session token expired or invalid | CoreAPI invalidates the session id and retries once immediately; if still failing the op stays in the queue (TryAgain.LATER). |
500 | Server error on a /gateway URL | BaseResponseHandler fetches a new session id (first 5 attempts) and returns TryAgain.LATER; retried per RetryScheduler policy (retry threshold/delay come from app config). |
503 | Service unavailable | CoreAPI retries once immediately, then the op is retried later by the sync queue. |
any non-2xx | Any other failure | Handler onError -> TryAgain.LATER (op stays queued and is visible in Pending Sync); a row is written to the local error_log table (Sync Error Log screen) with URL, body, headers and raw response; every 10th attempt the op is mirrored to Firestore for support. |
Source
- data/src/main/java/org/mindtree/app/agricultor/data/entity/CompactBlock.kt
- data/src/main/java/org/mindtree/app/agricultor/data/sync/work/CompactBlockWorker.kt
- data/src/main/java/org/mindtree/app/agricultor/data/sync/rh/CompactBlockDeleteRH.kt
- data/src/main/java/org/mindtree/app/agricultor/data/manager/CoreAPIManager.kt
- data/src/main/java/org/mindtree/app/agricultor/data/sync/rh/BaseResponseHandler.kt
- offline-core/src/main/java/com/mindtree/bridge/coreapi/offline/SyncQueueProcessor.java
- offline-core/src/main/java/com/mindtree/bridge/coreapi/offline/manager/OperationManagerImpl.java
- core-api/src/main/java/com/mindtree/bridge/coreapi/impl/CoreAPIDefaultImpl.java