Mercurial > prosody-modules
comparison mod_rest/example/app.py @ 3853:fb29d7cd698b
mod_rest: Add an examlpe Flask app
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sat, 25 Jan 2020 00:37:06 +0100 |
parents | |
children | 25c34c9f755c |
comparison
equal
deleted
inserted
replaced
3852:66f96b98d219 | 3853:fb29d7cd698b |
---|---|
1 from flask import Flask, Response, request, jsonify | |
2 | |
3 app = Flask("echobot") | |
4 | |
5 | |
6 @app.route("/api", methods=["POST"]) | |
7 def hello(): | |
8 print(request.data) | |
9 if request.is_json: | |
10 data = request.get_json() | |
11 | |
12 if "kind" not in data: | |
13 return Response(status=400) | |
14 | |
15 if data["kind"] == "message" and "body" in data: | |
16 return jsonify({"body": "Yes this is flask app"}) | |
17 | |
18 elif data["kind"] == "iq" and data["type"] == "get": | |
19 if "ping" in data: | |
20 return Response(status=204) | |
21 | |
22 elif "disco" in data: | |
23 return jsonify( | |
24 { | |
25 "disco": { | |
26 "identities": [ | |
27 { | |
28 "category": "component", | |
29 "type": "generic", | |
30 "name": "Flask app", | |
31 } | |
32 ], | |
33 "features": [ | |
34 "http://jabber.org/protocol/disco#info", | |
35 "http://jabber.org/protocol/disco#items", | |
36 "urn:xmpp:ping", | |
37 ], | |
38 } | |
39 } | |
40 ) | |
41 | |
42 elif "items" in data: | |
43 return jsonify( | |
44 {"items": [{"jid": "example.org", "name": "Example Dot Org"}]} | |
45 ) | |
46 | |
47 return Response(status=501) | |
48 | |
49 | |
50 if __name__ == "__main__": | |
51 app.run() |