Search in sources :

Example 1 with OpenNewDisputeMessage

use of bisq.core.arbitration.messages.OpenNewDisputeMessage in project bisq-core by bisq-network.

the class DisputeManager method sendOpenNewDisputeMessage.

public void sendOpenNewDisputeMessage(Dispute dispute, boolean reOpen, ResultHandler resultHandler, FaultHandler faultHandler) {
    if (!disputes.contains(dispute)) {
        final Optional<Dispute> storedDisputeOptional = findDispute(dispute.getTradeId(), dispute.getTraderId());
        if (!storedDisputeOptional.isPresent() || reOpen) {
            String sysMsg = dispute.isSupportTicket() ? Res.get("support.youOpenedTicket") : Res.get("support.youOpenedDispute", disputeInfo);
            DisputeCommunicationMessage disputeCommunicationMessage = new DisputeCommunicationMessage(dispute.getTradeId(), keyRing.getPubKeyRing().hashCode(), false, Res.get("support.systemMsg", sysMsg), null, p2PService.getAddress(), new Date().getTime(), false, false, UUID.randomUUID().toString());
            disputeCommunicationMessage.setSystemMessage(true);
            dispute.addDisputeMessage(disputeCommunicationMessage);
            if (!reOpen) {
                disputes.add(dispute);
            }
            p2PService.sendEncryptedMailboxMessage(dispute.getContract().getArbitratorNodeAddress(), dispute.getArbitratorPubKeyRing(), new OpenNewDisputeMessage(dispute, p2PService.getAddress(), UUID.randomUUID().toString()), new SendMailboxMessageListener() {

                @Override
                public void onArrived() {
                    log.info("Message arrived at peer. tradeId={}", disputeCommunicationMessage.getTradeId());
                    disputeCommunicationMessage.setArrived(true);
                    resultHandler.handleResult();
                }

                @Override
                public void onStoredInMailbox() {
                    log.info("Message stored in mailbox. tradeId={}", disputeCommunicationMessage.getTradeId());
                    disputeCommunicationMessage.setStoredInMailbox(true);
                    resultHandler.handleResult();
                }

                @Override
                public void onFault(String errorMessage) {
                    log.error("sendEncryptedMailboxMessage failed. disputeCommunicationMessage=" + disputeCommunicationMessage);
                    faultHandler.handleFault("Sending dispute message failed: " + errorMessage, new MessageDeliveryFailedException());
                }
            });
        } else {
            final String msg = "We got a dispute already open for that trade and trading peer.\n" + "TradeId = " + dispute.getTradeId();
            log.warn(msg);
            faultHandler.handleFault(msg, new DisputeAlreadyOpenException());
        }
    } else {
        final String msg = "We got a dispute msg what we have already stored. TradeId = " + dispute.getTradeId();
        log.warn(msg);
        faultHandler.handleFault(msg, new DisputeAlreadyOpenException());
    }
}
Also used : OpenNewDisputeMessage(bisq.core.arbitration.messages.OpenNewDisputeMessage) SendMailboxMessageListener(bisq.network.p2p.SendMailboxMessageListener) DisputeCommunicationMessage(bisq.core.arbitration.messages.DisputeCommunicationMessage) Date(java.util.Date)

Aggregations

DisputeCommunicationMessage (bisq.core.arbitration.messages.DisputeCommunicationMessage)1 OpenNewDisputeMessage (bisq.core.arbitration.messages.OpenNewDisputeMessage)1 SendMailboxMessageListener (bisq.network.p2p.SendMailboxMessageListener)1 Date (java.util.Date)1