hivesolutions / appier-extras

Appier on Steroids
http://appier-extras.hive.pt
2 stars 3 forks source link

Model CRUD operations not working as expected #39

Closed joaofsl closed 3 years ago

joaofsl commented 3 years ago

Description

The model CRUD operations are not working as expected.

Expected vs. Observed

- -
Expected A model/entity can be created through /api/admin/models/<str:model>
Observed The POST /api/admin/models/<str:model> request returns the result for GET /api/admin/models

Repro Steps

  1. Create a POST request with the URL http://ripe-core-now.platforme.com/api/admin/models/events
  2. Authenticate (ex: secret key)
  3. Use the following JSON as example for the request:
    {
    "name": "order.created.swear",
    "description": "order.created.swear",
    "handler": "http",
    "arguments": {
        "name_r": "Order created #{params[payload][number]}",
        "sender": "Platforme Reports <reports@platforme.com>",
        "title": "Order Created created #{params[payload][number]}",
        "receivers": ["test@platforme.com"],
        "subject": "Swear Order Created: #{params[payload][number]}"
    }
    }
  4. Verify that the result is a list of 10 of the existing models (the expected response for GET /api/admin/models

Environment

Key Value
Device iMac
Operating System macOS Catalina
Instance (URL) RIPE CORE NOW

Screens

Notes

gcandal commented 3 years ago

@joamag any idea of what might be wrong here? We've exhausted all the options we could explore. Locally it works, but not on ripe-core-now. The routes also seem correct and without any conflict: https://ripe-core-now.platforme.com/admin/routes (there's a single POST /api/admin/models/<str:model> and it correctly points to admin.create_entity_api)

The following request seems to produce incorrect results:

curl --location --request POST 'http://ripe-core-now.platforme.com/api/admin/models/events' \
--header 'X-Secret-Key: a3b2167cd1fb030d9a12bff8c9bb496fc82c6887' \
--header 'Content-Type: application/json' \
--data-raw '{
    "name": "test",
    "description": "order.created.swear",
    "handler": "http",
    "arguments": {
        "name_r": "Order created #{params[payload][number]}",
        "sender": "Platforme Reports <reports@platforme.com>",
        "title": "Order Created created #{params[payload][number]}",
        "receivers": ["test@platforme.com"],
        "subject": "Swear Order Created: #{params[payload][number]}"
    }
}'

Expected (https://github.com/hivesolutions/appier_extras/blame/master/src/appier_extras/parts/admin/part.py#L314): the created event.

Actual:

[
    {
        "_id": "5de532dfb19cd27ef1228202",
        "id": 65,
        "enabled": true,
        "description": "",
        "created": 1575301855,
        "modified": 1579693224,
        "meta": {
            "webhook": true,
            "username": "automator"
        },
        "name": "order.received",
        "handler": "http",
        "arguments": {
            "url": "http://eaa74fbc.ngrok.io/api/webhooks"
        }
    },
    {
        "_id": "5cdc207d4ce4e7006ad28707",
        "id": 10,
        "enabled": true,
        "description": "test",
        "created": 1557930109,
        "modified": 1579693223,
        "meta": {},
        "name": "order.pending.test",
        "handler": "http",
        "arguments": {
            "name_r": "Order tst #{params[payload][number]} - #{params[payload][meta][store]}",
            "sender": "Platforme Iris Reports <sender@platforme.com>",
            "key": "x2YBTDQAJqWjyLgQVzevx8v9",
            "title": "title #{params[payload][number]}",
            "url": "https://sandbox.platforme.com/api/email/notify",
            "receiver": "ic@platforme.com",
            "cc": []
        }
    },
    {
        "_id": "5ddffddf406d76382783b53f",
        "id": 61,
        "enabled": true,
        "description": "",
        "created": 1574960607,
        "modified": 1579693224,
        "meta": {
            "webhook": true,
            "username": "automator"
        },
        "name": "order.sent",
        "handler": "http",
        "arguments": {
            "url": "http://eaa74fbc.ngrok.io/api/webhooks"
        }
    },
    {
        "_id": "5cdc20964ce4e7006ad28709",
        "id": 11,
        "enabled": true,
        "description": "test",
        "created": 1557930134,
        "modified": 1579693223,
        "meta": {},
        "name": "order.created.test",
        "handler": "http",
        "arguments": {
            "name_r": "Order tst #{params[payload][number]} - #{params[payload][meta][store]}",
            "sender": "Platforme Iris Reports <sender@platforme.com>",
            "key": "x2YBTDQAJqWjyLgQVzevx8v9",
            "title": "title #{params[payload][number]}",
            "url": "https://sandbox.platforme.com/api/email/notify",
            "receiver": "ic@platforme.com",
            "cc": []
        }
    },
    {
        "_id": "5de132b034aee17fad61721e",
        "id": 63,
        "enabled": true,
        "description": null,
        "created": 1575039664,
        "modified": 1579693224,
        "meta": {
            "webhook": true,
            "username": "automator"
        },
        "name": "order.canceled",
        "handler": "http",
        "arguments": {
            "url": "http://9368a0f6.ngrok.io/api/webhooks"
        }
    },
    {
        "_id": "5dea4db30e7b4db506228d75",
        "id": 69,
        "enabled": true,
        "description": null,
        "created": 1575636403,
        "modified": 1579693224,
        "meta": {
            "webhook": true,
            "username": "automator"
        },
        "name": "order.production",
        "handler": "http",
        "arguments": {
            "url": "http://9368a0f6.ngrok.io/api/webhooks"
        }
    },
    {
        "_id": "5a2968ab3a6bba003326aa32",
        "name": "order.production",
        "created": 1512663211,
        "enabled": true,
        "modified": 1588945983,
        "handler": "http",
        "meta": {},
        "arguments": {
            "name_r": "Order Production #{params[payload][number]}",
            "sender": "Platforme Reports <reports@platforme.com>",
            "title": "Order Produce",
            "url": "https://swear-api.platforme.com/api/email/notify",
            "bcc": [
                "jr@platforme.com",
                "ops@platforme.com"
            ],
            "key": "x2YBVDQAJqWjyLgQVzevx8v9",
            "receiver": "da@platforme.com"
        },
        "id": 1,
        "description": ""
    },
    {
        "_id": "5d833c5c5f0c4bf6ef1e569f",
        "id": 45,
        "enabled": true,
        "description": "",
        "created": 1568881756,
        "modified": 1588611212,
        "meta": {
            "webhook": true,
            "username": "v-da@platforme.com"
        },
        "name": "order.created",
        "handler": "http",
        "arguments": {
            "url": "http://ac465cfe.ngrok.io"
        }
    },
    {
        "_id": "5d8caa6e3cf0939cf91e56df",
        "id": 47,
        "enabled": true,
        "description": null,
        "created": 1569499758,
        "modified": 1579693224,
        "meta": {
            "webhook": true,
            "username": "v-da@platforme.com"
        },
        "name": "order.sent",
        "handler": "http",
        "arguments": {
            "url": "https://webhook.site/009ea755-4efd-4018-a94e-0d06c41f731e"
        }
    },
    {
        "_id": "5cda78584ce4e70060d285ef",
        "id": 8,
        "enabled": true,
        "description": "sergio rossi",
        "created": 1557821528,
        "modified": 1604427263,
        "meta": {},
        "name": "order.created.sergio_rossi",
        "handler": "http",
        "arguments": {
            "name_r": "Order Created #{params[payload][number]}",
            "sender": "Platforme Reports <reports@platforme.com>",
            "title": "Order Created #{params[payload][number]}",
            "url": "https://sandbox.platforme.com/api/email/notify",
            "show_creator": "false",
            "cc": "afm@platforme.com",
            "key": "x2YBVDQAJqWjyLgQVzevx8v9",
            "receivers": [
                "hg@platforme.com"
            ],
            "subject": "DEMO SR Order Created: #{params[payload][number]}"
        }
    }
]
gcandal commented 3 years ago

@joaofsl you need to use:

joamag commented 3 years ago

Closing this as won't fix. This was a problem related to miss-usage of the technology.