def post(self, request): data = request.data logger.info( '{_class} {method} {object} {data}'.format( method=stack()[0][3], _class=self.__class__.__name__, object=model, data=data) ) authorization = get_authorization_header(request) if authorization: context = { 'message': 'THERE IS CURRENTLY A USER HAS ALREADY LOGGED IN.', 'status': 400 } return make_response(context) is_valid = UserSerializer(data=data).is_valid() if not is_valid: email = data.get('email', '') user = User.objects.filter(email=email).first() if user and user.is_active: context = { 'status': 400, 'message': 'THIS EMAIL IS ALREADY IN USED.' } return make_response(context) data['password'] = make_password(data['password']) user, _ = User.objects.update_or_create( email=data.get('email', ''), defaults=data ) user.is_active = True user.save() user_serialized = UserSerializer(user, many=False) context = { 'data': user_serialized.data, 'message': 'OK', 'status': 200 } return make_response(context)
def post(self, request): data = request.data email = data.get('email', '').lower() password = data.get('password', '') logger.info( '{_class} {method} {object} {data}'.format( method=stack()[0][3], _class=self.__class__.__name__, object=model, data=data) ) user = User.objects.filter(email=email).first() if not user.check_password(password): context = { 'message': 'INVALID LOGIN INFORMATION', 'status': 400 } return make_response(context) if user.is_online: context = { 'message': 'THERE IS CURRENTLY A USER HAS ALREADY LOGGED IN.', 'status': 400 } return make_response(context) previous_token, _ = Token.objects.get_or_create(user=user) previous_token.delete() # create token objects validated by user token = Token.objects.create(user=user) # save the same token into user_token using the same validation is user payload = jwt_payload_handler(user) token = jwt_encode_handler(payload) user.user_token = token user.is_active = True user.is_online = True user.save() context = { 'message': 'OK', 'status': 200, 'data': UserSerializer(user).data } return make_response(context)
def delete(self, request): # data = request.data logger.info( '{_class} {method} {object}'.format( method=stack()[0][3], _class=self.__class__.__name__, object=model) ) current_user = request.user if current_user.is_anonymous: context = { 'message': 'ANONYMOUS USER.', 'status': 400 } return make_response(context) user = User.objects.filter(pk=current_user.pk).first() if not user: context = { 'message': 'USER IS NOT IN DB :O.', 'status': 500 } if not user.is_online: context = { 'message': 'ANONYMOUS USER.', 'status': 400 } return make_response(context) user.is_active = False user.is_online = False user.save() context = { 'message': 'DELETE USER SUCCESSFULLY.', 'status': 204 } return make_response(context)
def get(self, request): data = request.data logger.info( '{_class} {method} {object} {data}'.format( method=stack()[0][3], _class=self.__class__.__name__, object=model, data=data) ) user_list = User.objects.filter(is_active=True) user_list_serialized = UserSerializer(user_list, many=True) if not user_list: context = { 'message': 'NO USERS', 'status': 204 } return make_response(context) context = { 'message': 'OK', 'status': 200, 'data': user_list_serialized.data } return make_response(context)
def get(self, request, *args, **kwargs): logger.info( '{_class} {method} {object}'.format( method=stack()[0][3], _class=self.__class__.__name__, object=model) ) authorization = get_authorization_header(request) current_token = '' if authorization: current_token = authorization.split()[1] if not current_token: context = { 'message': "ANONYMOUS USER.", 'status': 400 } return make_response(context) user = request.user if user.is_anonymous: context = { 'message': 'ANONYMOUS USER.', 'status': 404, } return make_response(context) if not user.is_online: context = { 'message': 'ANONYMOUS USER.', 'status': 404, } return make_response(context) context = { 'message': 'OK', 'status': 200, 'data': UserSerializer(user).data } return make_response(context)
def get(self, request): logger.info( '{_class} {method} {object}'.format( method=stack()[0][3], _class=self.__class__.__name__, object=model) ) authorization = get_authorization_header(request) current_token = '' if authorization: current_token = authorization.split()[1] if not current_token: context = { 'message': "ANONYMOUS USER.", 'status': 400 } return make_response(context) current_user = request.user user = User.objects.filter(pk=current_user.pk).first() if not user.is_online: context = { 'message': "ANONYMOUS USER.", 'status': 400 } return make_response(context) token = Token.objects.filter(user=user).first() token.delete() user.is_online = False user.save() context = { 'message': "LOGOUT SUCCESSFULLY.", 'status': 200, 'data': UserSerializer(user).data } return make_response(context)
def put(self, request): data = request.data logger.info( '{_class} {method} {object} {data}'.format( method=stack()[0][3], _class=self.__class__.__name__, object=model, data=data) ) authorization = get_authorization_header(request) current_token = '' if authorization: current_token = authorization.split()[1] if not current_token: context = { 'message': "ANONYMOUS USER.", 'status': 400 } return make_response(context) current_user = request.user if current_user.is_anonymous: context = { 'message': 'ANONYMOUS USER.', 'status': 400 } return make_response(context) user = User.objects.filter(pk=current_user.pk).first() if not user.is_online: context = { 'message': 'ANONYMOUS USER.', 'status': 400 } return make_response(context) email = data.get('email', '') if user.email != email and len(User.objects.filter(email=email)) == 1: context = { 'message': 'THIS EMAIL IS ALREADY IN USED.', 'status': 400, 'data': data } return make_response(context) password = make_password(data.get('password', user.password)) first_name = data.get('first_name', user.first_name) last_name = data.get('last_name', user.last_name) user.update(email=email, password=password, first_name=first_name, last_name=last_name) user_serialized = UserSerializer(user) context = { 'message': 'OK', 'status': 200, 'data': user_serialized.data } return make_response(context)