You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

64 lines
1.6 KiB

import os
import json
from flask import Flask, request
from flask_restful import Resource, Api, abort
app = Flask(__name__)
api = Api(app)
with open(os.path.join(app.root_path, 'users.json'), 'r') as f:
users = json.load(f)
class Users(Resource):
def get(self):
user = [
{
'id' : v['id'],
'username': v['username']
}
for v in users
]
return user
def post(self):
"""
Example POST Data:
username=<username>&
realname=<realname>& # OPTIONAL
avatar=<avatar_url>& # OPTIONAL
"""
args = request.form
user_id = len(users) + 1
user = {
'id': user_id,
'username': args['username'],
'realname': args.get('realname'),
'avatar' : args.get('avatar'),
'stats': {
'bus_usage_week': 0,
'bus_usage_month': 0,
'bus_usage_year': 0
},
'points': 0
}
users.append(user)
with open(os.path.join(app.root_path, 'users.json'), 'w') as f:
json.dump(users, f, indent=4)
return user
class User(Resource):
def get(self, user_id):
try:
return users[user_id - 1]
except:
abort(404, error="User {} doesn't exist".format(voting_id))
if __name__ == '__main__':
api.add_resource(Users, '/users', '/users/')
api.add_resource(User, '/users/<int:user_id>', '/users/<int:user_id>/')
app.run(host='0.0.0.0', port=5000)