Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Merged
merged 18 commits into from Sep 19, 2022

Conversation

mehmettokgoz
Copy link
Contributor

@mehmettokgoz mehmettokgoz commented Aug 18, 2022

Changes

  • Implemented /invoke endpoint for Cicero Server.
  • Added test cases for /invoke.
  • New fromArchive() and fromUrl() support
  • Added params.json files for latedeliveryandpenalty template, used during testing.

Flags

  • You have to send all the arguments as JSON field inside request.body
  • Documentation will be added later with Swagger UI PR.
  • Maybe we can change params to request directly, comments are welcome.

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

  • Ensure you provide a DCO sign-off for your commits using the --signoff option of git commit.
  • Vital features and changes captured in unit and/or integration tests
  • Commits messages follow AP format
  • Extend the documentation, if necessary
  • Merging to master from fork:branchname

@mehmettokgoz mehmettokgoz changed the title /invoke endpoint implementation for Cicero Server feauture(server) Add new /invoke/:template end point implementation Aug 27, 2022
@coveralls
Copy link

coveralls commented Aug 27, 2022

Coverage Status

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

Mehmet Tokgöz added 10 commits August 27, 2022 21:12
Signed-off-by: Mehmet Tokgöz <mehmet.tokgoz@hazelcast.com>
Signed-off-by: Mehmet Tokgöz <mehmet.tokgoz@hazelcast.com>
Signed-off-by: Mehmet Tokgöz <mehmet.tokgoz@hazelcast.com>
Signed-off-by: Mehmet Tokgöz <mehmet.tokgoz@hazelcast.com>
Signed-off-by: Mehmet Tokgöz <mehmet.tokgoz@hazelcast.com>
Signed-off-by: Mehmet Tokgöz <mehmet.tokgoz@hazelcast.com>
Signed-off-by: Mehmet Tokgöz <mehmet.tokgoz@hazelcast.com>
Signed-off-by: Mehmet Tokgöz <mehmet.tokgoz@hazelcast.com>
Signed-off-by: Mehmet Tokgöz <mehmet.tokgoz@hazelcast.com>
Signed-off-by: Mehmet Tokgöz <mehmet.tokgoz@hazelcast.com>
@mehmettokgoz mehmettokgoz changed the title feauture(server) Add new /invoke/:template end point implementation feauture(server) Add new /invoke/:template endpoint implementation Aug 29, 2022
Signed-off-by: Mehmet Tokgöz <mehmet.tokgoz@hazelcast.com>
@mehmettokgoz mehmettokgoz changed the title feauture(server) Add new /invoke/:template endpoint implementation feat(server) Add new /invoke/:template endpoint implementation Aug 31, 2022
Copy link
Member

@mttrbrts mttrbrts left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good work @mehmettokgoz, I've added some comments on your code.

Please also review the unit test coverage, it appears to have dropped a little. https://coveralls.io/builds/51999828/source?filename=packages%2Fcicero-server%2Fapp.js#L216

packages/cicero-server/app.js Outdated Show resolved Hide resolved
packages/cicero-server/app.js Outdated Show resolved Hide resolved
packages/cicero-server/app.js Outdated Show resolved Hide resolved
packages/cicero-server/app.js Outdated Show resolved Hide resolved
packages/cicero-server/app.js Outdated Show resolved Hide resolved
packages/cicero-server/app.js Show resolved Hide resolved
Mehmet Tokgöz added 3 commits September 9, 2022 22:33
Signed-off-by: Mehmet Tokgöz <mehmet.tokgoz@hazelcast.com>
Signed-off-by: Mehmet Tokgöz <mehmet.tokgoz@hazelcast.com>
Copy link
Member

@mttrbrts mttrbrts left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking good! Just one more comment on the eslint version

packages/cicero-server/package.json Outdated Show resolved Hide resolved
@mttrbrts
Copy link
Member

@mehmettokgoz Your tests should pass once this PR has been merged. The failures are unrelated to your change.
#753

Mehmet Tokgöz added 4 commits September 16, 2022 20:39
Signed-off-by: Mehmet Tokgöz <mehmet.tokgoz@hazelcast.com>
… invoke

� Conflicts:
�	package-lock.json
Signed-off-by: Mehmet Tokgöz <mehmet.tokgoz@hazelcast.com>
Signed-off-by: Mehmet Tokgöz <mehmet.tokgoz@hazelcast.com>
@mttrbrts mttrbrts enabled auto-merge (squash) September 19, 2022 12:26
@mttrbrts mttrbrts merged commit 62a2f44 into accordproject:master Sep 19, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants