feat: basic mocking setup

This commit is contained in:
silver 2024-11-22 23:40:56 +00:00
parent 95fe298ae1
commit 82d909693d
Signed by: silver
GPG key ID: 36F93D61BAD3FD7D
2 changed files with 196 additions and 1 deletions

View file

@ -1,3 +1,11 @@
# wolves-oxidised
Rust library to interact with the UL Wolves API
## Mockoon
Mockoon is a tool that is able to mock an api.
The responses from Woles are mocked using this tool and are stored in ``mocking``.
``nix-shell -p mockoon``
Then load up teh config in ``mocking``

187
mocking/wolves_api.json Normal file
View file

@ -0,0 +1,187 @@
{
"uuid": "5b065de8-1360-4d55-aba4-c0f919f3669e",
"lastMigration": 32,
"name": "Wolves API",
"endpointPrefix": "",
"latency": 0,
"port": 3001,
"hostname": "",
"folders": [],
"routes": [
{
"uuid": "b8a7a9df-6d18-46ca-9f55-87385b1654cd",
"type": "http",
"documentation": "",
"method": "post",
"endpoint": "get_cns",
"responses": [
{
"uuid": "55d1e82e-ea35-4929-b8ce-2b1fe6e2f962",
"body": "{\n \"success\": 1,\n \"result\": {{data 'WolvesCommittees'}}\n}",
"latency": 0,
"statusCode": 200,
"label": "",
"headers": [],
"bodyType": "INLINE",
"filePath": "",
"databucketID": "pwev",
"sendFileAsBody": false,
"rules": [],
"rulesOperator": "OR",
"disableTemplating": false,
"fallbackTo404": false,
"default": true,
"crudKey": "id",
"callbacks": []
}
],
"responseMode": null
},
{
"uuid": "3d598a24-8088-43b4-a221-2296a7d7dc0b",
"type": "http",
"documentation": "",
"method": "post",
"endpoint": "get_members",
"responses": [
{
"uuid": "808c8312-66f6-4498-ac60-9fcf15211a6a",
"body": "{\n \"success\": 1,\n \"result\": {{data 'WolvesMembers'}}\n}",
"latency": 0,
"statusCode": 200,
"label": "",
"headers": [],
"bodyType": "INLINE",
"filePath": "",
"databucketID": "",
"sendFileAsBody": false,
"rules": [],
"rulesOperator": "OR",
"disableTemplating": false,
"fallbackTo404": false,
"default": true,
"crudKey": "id",
"callbacks": []
}
],
"responseMode": null
},
{
"uuid": "18a929f9-e616-4cf6-a67e-0950e1248ce8",
"type": "http",
"documentation": "",
"method": "post",
"endpoint": "get_member",
"responses": [
{
"uuid": "f4b77b66-4e4b-4429-b5ca-7bd3cd06cd04",
"body": "{\n \"success\": 1,\n \"result\": {{data 'WolvesMember'}}\n}",
"latency": 0,
"statusCode": 200,
"label": "",
"headers": [],
"bodyType": "INLINE",
"filePath": "",
"databucketID": "",
"sendFileAsBody": false,
"rules": [],
"rulesOperator": "OR",
"disableTemplating": false,
"fallbackTo404": false,
"default": true,
"crudKey": "id",
"callbacks": []
},
{
"uuid": "84af1b80-9b7c-48e9-a555-ed22f4652e75",
"body": "{\n \"success\": 1,\n \"result\": null\n}",
"latency": 0,
"statusCode": 200,
"label": "",
"headers": [],
"bodyType": "INLINE",
"filePath": "",
"databucketID": "",
"sendFileAsBody": false,
"rules": [],
"rulesOperator": "OR",
"disableTemplating": false,
"fallbackTo404": false,
"default": false,
"crudKey": "id",
"callbacks": []
}
],
"responseMode": "RANDOM"
}
],
"rootChildren": [
{
"type": "route",
"uuid": "b8a7a9df-6d18-46ca-9f55-87385b1654cd"
},
{
"type": "route",
"uuid": "3d598a24-8088-43b4-a221-2296a7d7dc0b"
},
{
"type": "route",
"uuid": "18a929f9-e616-4cf6-a67e-0950e1248ce8"
}
],
"proxyMode": false,
"proxyHost": "",
"proxyRemovePrefix": false,
"tlsOptions": {
"enabled": false,
"type": "CERT",
"pfxPath": "",
"certPath": "",
"keyPath": "",
"caPath": "",
"passphrase": ""
},
"cors": true,
"headers": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"proxyReqHeaders": [
{
"key": "",
"value": ""
}
],
"proxyResHeaders": [
{
"key": "",
"value": ""
}
],
"data": [
{
"uuid": "44f1e367-1b0c-4008-bb76-2f2547adeea2",
"id": "pwev",
"name": "WolvesCommittees",
"documentation": "",
"value": "[\n {{#repeat 1 20}}\n {{setVar 'name' (faker 'internet.userName')}}\n {\n \"id\": \"{{int 100 500}}\",\n \"name\": \"{{@name}}\",\n \"link\": \"https://ulwolves.ie/society/{{@name}}\",\n \"committee\": [\n {{#repeat 1 10}}\n \"{{int 1000 5000}}\",\n {{/repeat}}\n ]\n }\n {{/repeat}}\n]"
},
{
"uuid": "58843751-e03b-49e0-96d5-c9449deae514",
"id": "nejb",
"name": "WolvesMembers",
"documentation": "",
"value": "\n[\n \n {{#repeat 1 20}} \n {\n {{! Name of the Club/Soc}}\n \"committee\": \"Computer\",\n \"member_id\": \"{{int 100 500}}\",\n \"first_name\": \"{{firstName}}\",\n \"last_name\": \"{{lastName}}\",\n \"contact_email\": \"{{email}}\",\n \"opt_in_email\": \"{{oneOf (array '0' '1')}}\",\n \"student_id\": {{{oneOf (array 'null' '\"24123456\"' )}}},\n \"note\": {{{oneOf (array 'null' '\"note\"')}}},\n \"expiry\": \"{{date '2020-11-20' '2026-11-25' 'yyyy-MM-dd HH:mm:ss'}}\",\n \"requested\": \"{{date '2020-11-20' '2026-11-25' 'yyyy-MM-dd HH:mm:ss'}}\",\n \"approved\": \"{{date '2020-11-20' '2026-11-25' 'yyyy-MM-dd HH:mm:ss'}}\",\n \"sitename\":\"UL Wolves\",\n \"domain\":\"ulwolves.ie\"\n }\n {{/repeat}}\n]\n"
},
{
"uuid": "208bfc7f-ef60-4fdd-be8d-44bcfe48d264",
"id": "ef36",
"name": "WolvesMember",
"documentation": "",
"value": "{\n \"member_id\": \"{{int 100 500}}\",\n \"contact_email\": \"{{email}}\"\n}\n"
}
],
"callbacks": []
}