package org.example.ycs.responder;

import lombok.SneakyThrows;
import lombok.extern.log4j.Log4j2;
import org.example.jpos.ISO87DPackager;
import org.example.ycs.MessageResponder;
import org.example.ycs.ResponderRegistry;
import org.jpos.iso.ISOMsg;
import org.jpos.iso.packager.ISO87BPackager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;

@Log4j2
@Component
public class EchoResponder implements MessageResponder {

    @Autowired
    ResponderRegistry responderRegistry;

    @PostConstruct
    public void setup() {
        responderRegistry.register(this);
    }

    @Override
    public boolean isMatched(ISOMsg req) {

        return "301".equals(req.getString(70));
    }

    @SneakyThrows
    @Override
    public ISOMsg respond(ISOMsg req) {
        ISOMsg resp = new ISOMsg();
        resp.setPackager(new ISO87DPackager());
        resp.setMTI(req.getMTI());
        resp.setResponseMTI();
        resp.set(7, req.getString(7));
        resp.set(11, req.getString(11));
        resp.set(39, "00");
        resp.set(70, req.getString(70));

        return resp;
    }
}
