# CostaPy # Copyright (C) 2022 Dita Aji Pratama # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. # This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. # You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/. from bottle import Bottle, route, request, response from config import directory import json import templates.plain.main as template_public import modules.public.home as public_home import modules.api.item as api_invlab_item import modules.api.price as api_invlab_price import modules.api.inventory as api_invlab_inventory app = Bottle() @app.route('/') def index(): params = { "mako":{ "website" : template_public.main(directory.page["public"], "home") } } return public_home.main().html(params) @app.route('/api/invlab/item/', method=['OPTIONS', 'POST']) def index(crud): try: if request.method == 'OPTIONS': return None else: response.content_type = 'application/json' params = request.json if crud == 'list': return json.dumps(api_invlab_item.item().list(params), indent = 2).encode() elif crud == 'detail': return json.dumps(api_invlab_item.item().detail(params), indent = 2).encode() elif crud == 'add': return json.dumps(api_invlab_item.item().add(params), indent = 2).encode() elif crud == 'edit': return json.dumps(api_invlab_item.item().edit(params), indent = 2).encode() elif crud == 'remove': return json.dumps(api_invlab_item.item().remove(params), indent = 2).encode() else: return json.dumps({}, indent = 2).encode() except Exception as e: print(str(e),flush=True) return json.dumps({}, indent = 2).encode() @app.route('/api/invlab/price/', method=['OPTIONS', 'POST']) def index(crud): try: if request.method == 'OPTIONS': return None else: response.content_type = 'application/json' params = request.json if crud == 'list': return json.dumps(api_invlab_price.price().list(params), indent = 2).encode() elif crud == 'detail': return json.dumps(api_invlab_price.price().detail(params), indent = 2).encode() elif crud == 'add': return json.dumps(api_invlab_price.price().add(params), indent = 2).encode() elif crud == 'edit': return json.dumps(api_invlab_price.price().edit(params), indent = 2).encode() elif crud == 'remove': return json.dumps(api_invlab_price.price().remove(params), indent = 2).encode() else: return json.dumps({}, indent = 2).encode() except Exception as e: print(str(e),flush=True) return json.dumps({}, indent = 2).encode() @app.route('/api/invlab/inventory/', method=['OPTIONS', 'POST']) def index(crud): try: if request.method == 'OPTIONS': return None else: response.content_type = 'application/json' params = request.json if crud == 'list': return json.dumps(api_invlab_inventory.inventory().list(params), indent = 2).encode() elif crud == 'detail': return json.dumps(api_invlab_inventory.inventory().detail(params), indent = 2).encode() elif crud == 'add': return json.dumps(api_invlab_inventory.inventory().add(params), indent = 2).encode() elif crud == 'edit': return json.dumps(api_invlab_inventory.inventory().edit(params), indent = 2).encode() elif crud == 'remove': return json.dumps(api_invlab_inventory.inventory().remove(params), indent = 2).encode() else: return json.dumps({}, indent = 2).encode() except Exception as e: print(str(e),flush=True) return json.dumps({}, indent = 2).encode()