export async function createNewAgreement()

in src/utils/integration-account/agreementUtils.ts [15:84]


export async function createNewAgreement(agreementName: string,
                                         agreementType: AgreementType,
                                         hostPartner: string,
                                         hostIdentity: BusinessIdentity,
                                         guestPartner: string,
                                         guestIdentity: BusinessIdentity): Promise<IntegrationAccountAgreement> {
    let content: AgreementContent;
    switch (agreementType) {
        case AgreementType.AS2:
            content = {
                aS2: {
                    receiveAgreement: {
                        protocolSettings: AgreementsDefaultContent.defaultAs2ProtocolSettings,
                        receiverBusinessIdentity: hostIdentity,
                        senderBusinessIdentity: guestIdentity
                    },
                    sendAgreement: {
                        protocolSettings: AgreementsDefaultContent.defaultAs2ProtocolSettings,
                        receiverBusinessIdentity: guestIdentity,
                        senderBusinessIdentity: hostIdentity
                    }
                }
            };
            break;
        case AgreementType.X12:
            content = {
                x12: {
                    receiveAgreement: {
                        protocolSettings: AgreementsDefaultContent.defaultX12ProtocolSettings,
                        receiverBusinessIdentity: hostIdentity,
                        senderBusinessIdentity: guestIdentity
                    },
                    sendAgreement: {
                        protocolSettings: AgreementsDefaultContent.defaultX12ProtocolSettings,
                        receiverBusinessIdentity: guestIdentity,
                        senderBusinessIdentity: hostIdentity
                    }
                }
            };
            break;
        case AgreementType.Edifact:
        default:
            content = {
                edifact: {
                    receiveAgreement: {
                        protocolSettings: AgreementsDefaultContent.defaultEdifactProtocolSettings,
                        receiverBusinessIdentity: hostIdentity,
                        senderBusinessIdentity: guestIdentity
                    },
                    sendAgreement: {
                        protocolSettings: AgreementsDefaultContent.defaultEdifactProtocolSettings,
                        receiverBusinessIdentity: guestIdentity,
                        senderBusinessIdentity: hostIdentity
                    }
                }
            };
    }

    const agreement: IntegrationAccountAgreement = {
        agreementType,
        content,
        guestIdentity,
        guestPartner,
        hostIdentity,
        hostPartner,
        name: agreementName
    };

    return agreement;
}