fix(api): added mail cerberus validator to user_mail endpoint

darta 2022-05-24 20:26:39 +02:00
parent 267d1e26a1
commit 897da17dbd
3 changed files with 62 additions and 6 deletions

View File

@ -0,0 +1,34 @@
user_id:
type: string
required: true
name:
type: string
required: false
email:
type: string
required: true
regex: ^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$
inbound_host:
type: string
required: true
inbound_port:
type: integer
required: true
inbound_ssl_mode:
type: string
default: ssl
inbound_user:
type: string
required: true
outbound_host:
type: string
required: true
outbound_port:
type: integer
required: true
outbound_ssl_mode:
type: string
default: ssl
outbound_user:
type: string
required: true

View File

@ -267,6 +267,33 @@ def ddapi_group(id=None):
return json.dumps({}), 200, {"Content-Type": "application/json"}
@app.route("/ddapi/user_mail", methods=["POST"])
@app.route("/ddapi/user_mail/<id>", methods=["GET", "POST", "DELETE"])
@has_token
def ddapi_user_mail(id=None):
if request.method == "GET":
return (
json.dumps("Not implemented yet"),
200,
{"Content-Type": "application/json"},
)
if request.method == "POST":
data = request.get_json(force=True)
if not app.validators["mail"].validate(data):
raise Error(
"bad_request",
"Data validation for mail failed: "
+ str(app.validators["mail"].errors),
traceback.format_exc(),
)
return (
json.dumps("Not implemented yet"),
200,
{"Content-Type": "application/json"},
)
def user_parser(user):
return {
"keycloak_id": user["id"],

View File

@ -42,12 +42,7 @@ def socketio_disconnect():
@app.socketio.on("connect", namespace="/sio/events")
def socketio_connect():
try:
jwt = get_token_payload(request.args.get("jwt"))
except:
return Error("bad_request", "Missing websocket jwt authorization bearer token")
payload = get_token_payload(jwt)
jwt = get_token_payload(request.args.get("jwt"))
join_room("events")
app.socketio.emit(