101 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			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()
 |