add CRUD with variables
This commit is contained in:
parent
53beac9893
commit
17f05894bb
59
handler.py
59
handler.py
@ -5,7 +5,8 @@
|
|||||||
# 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.
|
# 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/.
|
# 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
|
import json
|
||||||
|
from bottle import Bottle, route, response, request
|
||||||
from config import directory
|
from config import directory
|
||||||
|
|
||||||
import templates.plain.main as template_public
|
import templates.plain.main as template_public
|
||||||
@ -13,6 +14,14 @@ import modules.public.home as public_home
|
|||||||
|
|
||||||
app = Bottle()
|
app = Bottle()
|
||||||
|
|
||||||
|
data = {
|
||||||
|
"foods": [
|
||||||
|
"Pizza",
|
||||||
|
"Burger",
|
||||||
|
"Pasta",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
@app.route('/')
|
@app.route('/')
|
||||||
def index():
|
def index():
|
||||||
params = {
|
params = {
|
||||||
@ -22,6 +31,50 @@ def index():
|
|||||||
}
|
}
|
||||||
return public_home.main().html(params)
|
return public_home.main().html(params)
|
||||||
|
|
||||||
@app.route('/api/<crud>')
|
@app.route('/api/<crud>', methods=['GET', 'POST', 'PUT', 'DELETE'])
|
||||||
def index(crud):
|
def index(crud):
|
||||||
return f'api {crud}'
|
response.content_type = 'application/json'
|
||||||
|
result = {
|
||||||
|
"status": "error",
|
||||||
|
"message": f"API endpoint for /api/{crud} is not implemented yet."
|
||||||
|
}
|
||||||
|
|
||||||
|
payload = request.json
|
||||||
|
if crud == "create":
|
||||||
|
data["foods"].append(payload["food"])
|
||||||
|
id = len(data["foods"]) - 1
|
||||||
|
|
||||||
|
result["status"] = "success"
|
||||||
|
result["message"] = f'{payload["food"]} is added to the list.'
|
||||||
|
result["data"] = {
|
||||||
|
"id": id,
|
||||||
|
"food": data["foods"][id]
|
||||||
|
}
|
||||||
|
|
||||||
|
elif crud == "read":
|
||||||
|
result["status"] = "success"
|
||||||
|
result["message"] = "Reading foods."
|
||||||
|
result["data"] = data["foods"]
|
||||||
|
|
||||||
|
elif crud == "update":
|
||||||
|
food_id = payload["id"]
|
||||||
|
food = payload["food"]
|
||||||
|
data["foods"][food_id] = food
|
||||||
|
|
||||||
|
result["status"] = "success"
|
||||||
|
result["message"] = f'{food} is updated.'
|
||||||
|
result["data"] = {
|
||||||
|
"food": data["foods"][food_id]
|
||||||
|
}
|
||||||
|
|
||||||
|
elif crud == "delete":
|
||||||
|
food_id = payload["id"]
|
||||||
|
food = data["foods"].pop(food_id)
|
||||||
|
|
||||||
|
result["status"] = "success"
|
||||||
|
result["message"] = f'{food} is deleted'
|
||||||
|
result["data"] = {
|
||||||
|
"food": food
|
||||||
|
}
|
||||||
|
|
||||||
|
return json.dumps(result, indent = 2).encode()
|
Loading…
Reference in New Issue
Block a user