diff --git a/README.md b/README.md index b40cbd8..5f3861b 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,11 @@ # wolves-oxidised -Rust library to interact with the UL Wolves API \ No newline at end of file +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`` \ No newline at end of file diff --git a/mocking/wolves_api.json b/mocking/wolves_api.json new file mode 100644 index 0000000..f5c22ed --- /dev/null +++ b/mocking/wolves_api.json @@ -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": [] +} \ No newline at end of file