APIs & services / portfolio-service

Remove a member from a compact block.

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

HeaderValueNotes
X-SESSIONID<session token>Stamped when queued (dooWithRetry); refreshed on 401.
Content-Typeapplication/jsonAdded by CoreAPI even though there is no body. No X-REQUESTID: DELETE ops do not get one.

Parameters

ParamInRequiredExampleNotes
cbIdpathYes6101Server compact block id.
reasonqueryYesLand soldMember inActiveReason.
compactBlockMemberIdqueryYes6201Server member id.

Request

No body. cbId, compactBlockMemberId, reason

Response

FieldTypeRequiredNotes
(body)unknownNot read.

Errors

StatusWhenWhat the app does
401Session token expired or invalidCoreAPI invalidates the session id and retries once immediately; if still failing the op stays in the queue (TryAgain.LATER).
500Server error on a /gateway URLBaseResponseHandler fetches a new session id (first 5 attempts) and returns TryAgain.LATER; retried per RetryScheduler policy (retry threshold/delay come from app config).
503Service unavailableCoreAPI retries once immediately, then the op is retried later by the sync queue.
any non-2xxAny other failureHandler 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