diff --git a/src/domain/participant/index.js b/src/domain/participant/index.js index d39b92a4a..de5336d60 100644 --- a/src/domain/participant/index.js +++ b/src/domain/participant/index.js @@ -440,7 +440,8 @@ const getLimitsForAllParticipants = async ({ currency = null, type = null }) => * "currency": "USD", * "limit": { * "type": "NET_DEBIT_CAP", - * "value": 10000000 + * "value": 10000000, + * "thresholdAlarmPercentage": 10 * } * } * @@ -449,14 +450,42 @@ const getLimitsForAllParticipants = async ({ currency = null, type = null }) => const adjustLimits = async (name, payload) => { try { - const participant = await ParticipantFacade.getByNameAndCurrency(name, payload.currency, Enum.LedgerAccountType.POSITION) + let { limit, currency } = payload + const participant = await ParticipantFacade.getByNameAndCurrency(name, currency, Enum.LedgerAccountType.POSITION) participantExists(participant) - return ParticipantFacade.adjustLimits(participant.participantCurrencyId, payload.limit) + let result = await ParticipantFacade.adjustLimits(participant.participantCurrencyId, limit) + payload.name = name + await Utility.produceGeneralMessage(TransferEventType.NOTIFICATION, TransferEventAction.EVENT, createLimitAdjustmentMessageProtocol(payload), Utility.ENUMS.STATE.SUCCESS) + return result } catch (err) { throw err } } +const createLimitAdjustmentMessageProtocol = (payload, action = 'limitAdjustment', state = '', pp = '') => { + return { + id: Uuid(), + from: payload.name, + to: 'SYSTEM', + type: 'application/json', + content: { + header: {}, + payload + }, + metadata: { + event: { + id: Uuid(), + responseTo: '', + type: 'notification', + action, + createdAt: new Date(), + state + } + }, + pp + } +} + /** * @function GetPositions *