2024-05-12 02:29:59 +07:00
# 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/.
2025-01-02 15:12:48 +07:00
from bottle import Bottle , route , request , response
2024-05-12 02:18:32 +07:00
from config import directory
2023-12-15 16:58:00 +07:00
2025-01-02 15:12:48 +07:00
import json
2024-06-05 23:27:52 +07:00
import templates . plain . main as template_public
2024-05-12 02:18:32 +07:00
import modules . public . home as public_home
2025-01-02 15:12:48 +07:00
import modules . api . item as api_invlab_item
import modules . api . price as api_invlab_price
import modules . api . inventory as api_invlab_inventory
2023-12-15 16:58:00 +07:00
2024-05-12 02:18:32 +07:00
app = Bottle ( )
2022-03-16 11:06:52 +07:00
2024-05-12 02:18:32 +07:00
@app.route ( ' / ' )
def index ( ) :
params = {
" mako " : {
" website " : template_public . main ( directory . page [ " public " ] , " home " )
2024-01-13 12:01:14 +07:00
}
2024-05-12 02:18:32 +07:00
}
return public_home . main ( ) . html ( params )
2025-01-02 15:12:48 +07:00
@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 ( )