build.resources.user   A
last analyzed

Complexity

Total Complexity 14

Size/Duplication

Total Lines 68
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 14
eloc 48
dl 0
loc 68
rs 10
c 0
b 0
f 0

5 Methods

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