mirror of
https://gitlab1.ptb.de/waltem01/Matrix
synced 2024-12-26 03:51:45 +00:00
create instruction list endpoint
This commit is contained in:
parent
84fb7963d8
commit
fc8c2d292d
65
API/main.py
65
API/main.py
@ -11,7 +11,7 @@ from flask_cors import CORS, cross_origin
|
|||||||
from dotenv import load_dotenv
|
from dotenv import load_dotenv
|
||||||
from waitress import serve
|
from waitress import serve
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
import os, time, threading
|
import os, time, threading, json
|
||||||
|
|
||||||
|
|
||||||
env_path = Path('..') / '.env'
|
env_path = Path('..') / '.env'
|
||||||
@ -20,6 +20,69 @@ load_dotenv(dotenv_path=env_path)
|
|||||||
api = Flask(__name__)
|
api = Flask(__name__)
|
||||||
cors = CORS(api)
|
cors = CORS(api)
|
||||||
|
|
||||||
|
@api.route('/instructions', methods=['POST'])
|
||||||
|
@cross_origin()
|
||||||
|
def instructions():
|
||||||
|
# prepare response data
|
||||||
|
response = { 'success': True }
|
||||||
|
try:
|
||||||
|
global matrix
|
||||||
|
assert matrix is not None
|
||||||
|
|
||||||
|
# receive client data
|
||||||
|
data = request.form
|
||||||
|
# try unpacking instruction list
|
||||||
|
instructions = data.get('instructions')
|
||||||
|
|
||||||
|
# parse json data from instructions string
|
||||||
|
ins_set = json.loads(instructions)
|
||||||
|
|
||||||
|
# call respective matrix methods with corresponding data
|
||||||
|
for ins in ins_set:
|
||||||
|
if ins['endpoint'] == 'upload':
|
||||||
|
url = ins['url']
|
||||||
|
matrix.set_image(url)
|
||||||
|
elif ins['endpoint'] == 'image':
|
||||||
|
x = int(ins['x'])
|
||||||
|
y = int(ins['y'])
|
||||||
|
matrix.display_image(x, y)
|
||||||
|
elif ins['endpoint'] == 'text':
|
||||||
|
x = int(ins['x'])
|
||||||
|
y = int(ins['y'])
|
||||||
|
matrix.text(x, y, ins['text'])
|
||||||
|
elif ins['endpoint'] == 'pixel':
|
||||||
|
x = int(ins['x'])
|
||||||
|
y = int(ins['y'])
|
||||||
|
matrix.pixel(x, y)
|
||||||
|
elif ins['endpoint'] == 'circle':
|
||||||
|
x = int(ins['x'])
|
||||||
|
y = int(ins['y'])
|
||||||
|
r = int(ins['r'])
|
||||||
|
matrix.circle(x, y, r)
|
||||||
|
elif ins['endpoint'] == 'rectangle':
|
||||||
|
x = int(ins['x'])
|
||||||
|
y = int(ins['y'])
|
||||||
|
w = int(ins['w'])
|
||||||
|
h = int(ins['h'])
|
||||||
|
matrix.rectangle(x, y, w, h)
|
||||||
|
elif ins['endpoint'] == 'line':
|
||||||
|
x1 = int(ins['x1'])
|
||||||
|
y1 = int(ins['y1'])
|
||||||
|
x2 = int(ins['x2'])
|
||||||
|
y2 = int(ins['y2'])
|
||||||
|
matrix.line(x1, y1, x2, y2)
|
||||||
|
elif ins['endpoint'] == 'clear':
|
||||||
|
matrix.clear()
|
||||||
|
elif ins['endpoint'] == 'update':
|
||||||
|
matrix.update()
|
||||||
|
except Exception as e:
|
||||||
|
# error handling
|
||||||
|
print(e)
|
||||||
|
response['success'] = False
|
||||||
|
|
||||||
|
# respond to client
|
||||||
|
return jsonify(response)
|
||||||
|
|
||||||
@api.route('/upload', methods=['POST'])
|
@api.route('/upload', methods=['POST'])
|
||||||
@cross_origin()
|
@cross_origin()
|
||||||
def set_image():
|
def set_image():
|
||||||
|
Loading…
Reference in New Issue
Block a user