inventory/handler.py
2025-01-02 15:12:48 +07:00

101 lines
4.4 KiB
Python

# 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/<crud>', 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/<crud>', 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/<crud>', 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()