diff options
Diffstat (limited to 'mock-cds/app')
-rw-r--r-- | mock-cds/app/app.py | 22 | ||||
-rw-r--r-- | mock-cds/app/routes.py | 22 | ||||
-rw-r--r-- | mock-cds/app/views.py | 51 |
3 files changed, 95 insertions, 0 deletions
diff --git a/mock-cds/app/app.py b/mock-cds/app/app.py new file mode 100644 index 0000000..a15dbea --- /dev/null +++ b/mock-cds/app/app.py @@ -0,0 +1,22 @@ +""" + Copyright 2023 Deutsche Telekom AG, Orange + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +""" +from aiohttp import web +from routes import setup_routes + +app = web.Application() + +setup_routes(app) +web.run_app(app)
\ No newline at end of file diff --git a/mock-cds/app/routes.py b/mock-cds/app/routes.py new file mode 100644 index 0000000..10da668 --- /dev/null +++ b/mock-cds/app/routes.py @@ -0,0 +1,22 @@ +""" + Copyright 2023 Deutsche Telekom AG, Orange + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +""" +from views import blueprint_enrich, blueprint_publish, dictionary, dictionary_get + +def setup_routes(app): + app.router.add_post('/api/v1/blueprint-model/enrich', blueprint_enrich) + app.router.add_post('/api/v1/blueprint-model/publish', blueprint_publish) + app.router.add_post('/api/v1/dictionary', dictionary) + app.router.add_get('/api/v1/dictionary/{name}', dictionary_get)
\ No newline at end of file diff --git a/mock-cds/app/views.py b/mock-cds/app/views.py new file mode 100644 index 0000000..b6d9f37 --- /dev/null +++ b/mock-cds/app/views.py @@ -0,0 +1,51 @@ +""" + Copyright 2023 Deutsche Telekom AG, Orange + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +""" +import json + +from aiohttp import web + +BYTES = b'Response in bytes' +DICTIONARY = { + "message": "Response in JSON", + "success": True + } +DICTIONARIES = {} + +async def blueprint_enrich(request): + """ Blueprint enrichment """ + return web.Response(body=BYTES, status=200) + +async def blueprint_publish(request): + """ Blueprint publishing """ + return web.Response(body=BYTES, status=200) + +async def dictionary(request): + """ Data dictionary """ + try: + body = await request.json() + DICTIONARIES[body["name"]] = body + except ValueError: + print("No JSON sent! Leave it because we used that endpoint during " + "the availability and we won't break the integration tests") + return web.json_response(data=DICTIONARY, status=200) + +async def dictionary_get(request): + """ Data dictionary get """ + name = request.match_info["name"] + try: + return web.json_response(data=DICTIONARIES[name], status=200) + except KeyError: + return web.Response(status=404)
\ No newline at end of file |