accordproject / template-archive

Smart Legal Contracts & Templating System
https://accordproject.org/projects/cicero/
Apache License 2.0
280 stars 119 forks source link

feat(server) Add new /invoke/:template endpoint implementation #746

Closed mehmettokgoz closed 1 year ago

mehmettokgoz commented 2 years ago

Changes

Flags

Demo

Sample request.body:

{
    "sample":"## Late Delivery and Penalty.\n\n In case of delayed delivery except for Force Majeure cases,\n\"Dan\" (the Seller) shall pay to \"Steve\" (the Buyer) for every 2 days\nof delay penalty amounting to 10.5% of the total value of the Equipment\nwhose delivery has been delayed. Any fractional part of a days is to be\nconsidered a full days. The total amount of penalty shall not however,\nexceed 55% of the total value of the Equipment involved in late delivery.\nIf the delay is more than 15 days, the Buyer is entitled to terminate this Contract.",
    "params": { 
        "request" : {
                "$class": "org.accordproject.latedeliveryandpenalty.LateDeliveryAndPenaltyRequest",
                "forceMajeure": false,
                "agreedDelivery": "2017-12-17T03:24:00Z",
                "deliveredAt": null,
                "goodsValue": 200.00
        }
    },
    "state": {
        "$class": "org.accordproject.runtime.State"
    },
    "currentTime": "2017-12-18T16:59:04.321-03:00",
    "clauseName": "latedeliveryandpenalty"
}

Response to sample request:

{
    "clause": "latedeliveryandpenalty@0.17.0-e43b5aefe196452780036d84eed004eadfa1f682c8c93db3362c9aa0eb1c4baa",
    "params": {
        "request": {
            "$class": "org.accordproject.latedeliveryandpenalty.LateDeliveryAndPenaltyRequest",
            "forceMajeure": false,
            "agreedDelivery": "2017-12-17T03:24:00Z",
            "deliveredAt": null,
            "goodsValue": 200
        }
    },
    "response": {
        "$class": "org.accordproject.latedeliveryandpenalty.LateDeliveryAndPenaltyResponse",
        "penalty": 10.5,
        "buyerMayTerminate": false,
        "$timestamp": "2022-08-18T19:08:45.650-03:00"
    },
    "state": {
        "$class": "org.accordproject.runtime.State",
        "$identifier": "3188315b-082e-4767-84b7-dc5b989669aa"
    },
    "emit": [
        {
            "$class": "org.accordproject.obligation.PaymentObligation",
            "amount": {
                "$class": "org.accordproject.money.MonetaryAmount",
                "doubleValue": 10.5,
                "currencyCode": "USD"
            },
            "description": "\"resource:org.accordproject.party.Party#Dan\" should pay penalty amount to \"resource:org.accordproject.party.Party#Steve\"",
            "$identifier": "7cc7959b-4d72-49b5-a4e6-2fb3d6284bdb",
            "contract": "resource:org.accordproject.latedeliveryandpenalty.LateDeliveryAndPenaltyContract#94c63174-a957-46d8-a96c-8a7c5f649658",
            "promisor": "resource:org.accordproject.party.Party#Dan",
            "promisee": "resource:org.accordproject.party.Party#Steve",
            "$timestamp": "2022-08-18T19:08:45.651-03:00"
        }
    ]
}

Author Checklist

coveralls commented 2 years ago

Coverage Status

Coverage decreased (-0.3%) to 93.623% when pulling 397e35c5c22bc747e3e657c665d1392e4dc1127d on mehmettokgoz:invoke into b6f6598d2941aeffa2f560ec9b19afa7843161b3 on accordproject:master.

mttrbrts commented 2 years ago

@mehmettokgoz Your tests should pass once this PR has been merged. The failures are unrelated to your change. https://github.com/accordproject/cicero/pull/753