1
|
|
|
""" |
2
|
|
|
from flask import Flask, jsonify, request, abort, g |
3
|
|
|
from flask_restful import Api,Resource, reqparse |
4
|
|
|
from flask_httpauth import HTTPBasicAuth |
5
|
|
|
from passlib.apps import custom_app_context as pass_context |
6
|
|
|
|
7
|
|
|
|
8
|
|
|
from flask_jwt_extended import (create_access_token,create_refresh_token, |
9
|
|
|
jwt_required, jwt_refresh_token_required,get_jwt_identity, get_raw_jwt) |
10
|
|
|
|
11
|
|
|
auth = HTTPBasicAuth() |
12
|
|
|
|
13
|
|
|
#parsing incoming data |
14
|
|
|
parser = reqparse.RequestParser() |
15
|
|
|
parser.add_argument('username', help = 'Please fill in the username', required = True) |
16
|
|
|
parser.add_argument('password', help= 'This field cannot be blank', required = True) |
17
|
|
|
class UserResource(Resource): |
18
|
|
|
#get all registered users |
19
|
|
|
def get(self): |
20
|
|
|
return dtusers, 200 |
21
|
|
|
|
22
|
|
|
#create new user |
23
|
|
|
def post(self): |
24
|
|
|
#json_data = request.get_json(force=True) |
25
|
|
|
data = parser.parse_args() |
26
|
|
|
|
27
|
|
|
|
28
|
|
|
try: |
29
|
|
|
dtusers.append(data) |
30
|
|
|
access_token = create_access_token(identity = data['username']) |
31
|
|
|
refresh_token = create_refresh_token(identity = data['username']) |
32
|
|
|
|
33
|
|
|
return { |
34
|
|
|
'message': 'User {} was created'.format(data['username']), |
35
|
|
|
'access_token': access_token, |
36
|
|
|
'refresh_token': refresh_token |
37
|
|
|
} |
38
|
|
|
|
39
|
|
|
except: |
40
|
|
|
return {'message':'Somenthing went wrong'}, 500 |
41
|
|
|
|
42
|
|
|
return {"status":"success", "data": data }, 201 |
43
|
|
|
|
44
|
|
|
|
45
|
|
|
class User(Resource): |
46
|
|
|
#get user by id |
47
|
|
|
def get(self, uid): |
48
|
|
|
for user in dtusers: |
49
|
|
|
if (uid== user['id']): |
50
|
|
|
return user, 200 |
51
|
|
|
return "No record found", 404 |
52
|
|
|
|
53
|
|
|
#Modify / update an existing user |
54
|
|
|
def put(self, uid): |
55
|
|
|
json_data = request.get_json(force=True) |
56
|
|
|
for user in dtusers: |
57
|
|
|
if (uid == user['id']): |
58
|
|
|
user.update(json_data) |
59
|
|
|
return {"status":"success", "data": json_data }, 201 |
60
|
|
|
return "Request not found", 404 |
61
|
|
|
|
62
|
|
|
#Delete user |
63
|
|
|
def delete(self, uid): |
64
|
|
|
for user in dtusers: |
65
|
|
|
if (uid == user['id']): |
66
|
|
|
dtusers[:]=[user for user in dtusers if not(uid == user.get('id'))] |
67
|
|
|
return {"status":"Deleted successfuly", "data": user}, 201 |
68
|
|
|
return "Record not found", 404 |
69
|
|
|
""" |