Endpointtoday's app
- Call
DELETE /gateway/portfolio-service/api/v1/compact-block/{cbId}/compact-block-member?reason&compactBlockMemberId- Service
- portfolio-service
- Features
- Compact Block
- When
- Queued sync (COMPACT_BLOCK_MEMBER DELETE)
- Auth
- X-SESSIONID stamped when queued (CoreAPI dooWithRetry); X-REQUESTID idempotency key
- In the App Service
Use case
Queued removal of a land from a compact block (COMPACT_BLOCK_MEMBER DELETE). The block id is looked up by the member titleId. On success the member row is marked synced; on error the URL is rebuilt with current block/member ids and reason and retried.
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 |
|---|
cbId | path | Yes | 6101 | Server compact block id. |
reason | query | Yes | Land sold | Member inActiveReason. |
compactBlockMemberId | query | Yes | 6201 | Server member id. |
Request
No body. cbId, compactBlockMemberId, 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/CompactBlockMember.kt
- data/src/main/java/org/mindtree/app/agricultor/data/sync/work/CompactBlockMemberWorker.kt
- data/src/main/java/org/mindtree/app/agricultor/data/sync/rh/CompactBlockMemberDeleteRH.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