first commit
This commit is contained in:
commit
267bd9d888
|
@ -0,0 +1 @@
|
||||||
|
env/
|
|
@ -0,0 +1,8 @@
|
||||||
|
# VPN GOLEM
|
||||||
|
|
||||||
|
endpoint | method | body | description
|
||||||
|
---------+--------+------+-------------
|
||||||
|
/users | GET | | get list of users
|
||||||
|
/users | POST | ```{ "name": "johndoe" }``` | create new user
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,68 @@
|
||||||
|
import sqlite3
|
||||||
|
import sys
|
||||||
|
from flask import Flask, request, jsonify
|
||||||
|
app = Flask(__name__)
|
||||||
|
|
||||||
|
DATABASE='/data/database.sqlite3'
|
||||||
|
db = sqlite3.connect(DATABASE)
|
||||||
|
cu = db.cursor()
|
||||||
|
db.execute('SELECT name FROM sqlite_master')
|
||||||
|
if len(cu.fetchall()) == 0:
|
||||||
|
print('creating database schema...')
|
||||||
|
db.execute('CREATE TABLE IF NOT EXISTS user (id INTEGER PRIMARY KEY, name TEXT UNIQUE)')
|
||||||
|
db.execute('CREATE TABLE IF NOT EXISTS gateway (id INTEGER PRIMARY KEY, name TEXT UNIQUE, user INTEGER REFERENCES user(id))')
|
||||||
|
db.commit()
|
||||||
|
cu.close()
|
||||||
|
db.close()
|
||||||
|
|
||||||
|
@app.route('/')
|
||||||
|
def hello_world():
|
||||||
|
return 'It works!'
|
||||||
|
|
||||||
|
@app.route('/users', methods=['GET'])
|
||||||
|
def get_users():
|
||||||
|
db = sqlite3.connect(DATABASE)
|
||||||
|
cu = db.cursor()
|
||||||
|
|
||||||
|
users = []
|
||||||
|
for row in cu.execute('SELECT id, name FROM user'):
|
||||||
|
users.append({'id': row[0], 'name': row[1]})
|
||||||
|
|
||||||
|
cu.close()
|
||||||
|
db.close()
|
||||||
|
return jsonify(users)
|
||||||
|
|
||||||
|
@app.route('/users', methods=['POST'])
|
||||||
|
def post_users():
|
||||||
|
db = sqlite3.connect(DATABASE)
|
||||||
|
cu = db.cursor()
|
||||||
|
|
||||||
|
name = request.json['name']
|
||||||
|
print('creating ' + str(name))
|
||||||
|
|
||||||
|
try:
|
||||||
|
cu.execute('INSERT INTO user (name) VALUES (?)', (name,))
|
||||||
|
return jsonify({'status': 'ok'})
|
||||||
|
except sqlite3.Error as e:
|
||||||
|
return jsonify({'status': 'error', 'message': str(e)}), 409
|
||||||
|
finally:
|
||||||
|
db.commit()
|
||||||
|
cu.close()
|
||||||
|
db.close()
|
||||||
|
|
||||||
|
@app.route('/gateways', methods=['GET'])
|
||||||
|
def get_gateway():
|
||||||
|
db = sqlite3.connect(DATABASE)
|
||||||
|
cu = db.cursor()
|
||||||
|
|
||||||
|
gateways = []
|
||||||
|
for row in cu.execute('SELECT id, name, user FROM gateway'):
|
||||||
|
gateways.append({'id': row[0], 'name': row[1], 'user': row[2], 'network': row[3]})
|
||||||
|
|
||||||
|
cu.close()
|
||||||
|
db.close()
|
||||||
|
return jsonify(gateways)
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
app.run(host="::", port=5000, debug=True)
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
click==7.1.2
|
||||||
|
Flask==1.1.2
|
||||||
|
itsdangerous==1.1.0
|
||||||
|
Jinja2==2.11.2
|
||||||
|
MarkupSafe==1.1.1
|
||||||
|
pkg-resources==0.0.0
|
||||||
|
Werkzeug==1.0.1
|
Loading…
Reference in New Issue