Exemple #1
0
 def get(self, request, condition_id):
     try:
         patient = Patient.objects.get(email=request.user.email)
         condition = Condition.objects.get(id=condition_id, patient=patient)
         res = standard_response(data=ConditionSerializer(condition).data)
         return Response(res)
     except Condition.DoesNotExist:
         res = standard_response(
             errors={
                 'forbidden': 'You are not the owner of this condition'
             })
         return Response(res, status=status.HTTP_403_FORBIDDEN)
Exemple #2
0
 def post(self, request):
     """
     Creates new specialty for a user and returns it
     """
     serializer = SpecialtySerializer(data=request.data, many=True)
     if serializer.is_valid():
         medic = Medic.objects.get(email=request.user.email)
         serializer.save(medic=medic)
         res = standard_response(data=serializer.data)
         return Response(res, status=status.HTTP_201_CREATED)
     res = standard_response(errors=serializer.errors)
     return Response(res, status=status.HTTP_400_BAD_REQUEST)
Exemple #3
0
 def post(self, request):
     """
     Creates new condition for a user and returns it
     """
     serializer = ConditionSerializer(data=request.data)
     if serializer.is_valid():
         patient = Patient.objects.get(email=request.user.email)
         serializer.save(patient=patient)
         res = standard_response(data=serializer.data)
         return Response(res, status=status.HTTP_201_CREATED)
     res = standard_response(errors=serializer.errors)
     return Response(res, status=status.HTTP_400_BAD_REQUEST)
Exemple #4
0
 def delete(self, request, condition_id):
     try:
         patient = Patient.objects.get(email=request.user.email)
         condition = Condition.objects.get(id=condition_id, patient=patient)
         condition.delete()
         res = standard_response()
         return Response(res, status.HTTP_204_NO_CONTENT)
     except Condition.DoesNotExist:
         res = standard_response(
             errors={
                 'forbidden': 'You are not the owner of this condition'
             })
         return Response(res, status=status.HTTP_403_FORBIDDEN)
Exemple #5
0
 def put(self, request):
     """
     Updates password and returns token
     """
     serializer = ChangePasswordSerializer(data=request.data)
     if serializer.is_valid():
         password = serializer.data['password1']
         request.user.set_password(password)
         request.user.save()
         token = Token.objects.get(user=request.user)
         res = standard_response(data={'token': token.key})
         return Response(res)
     res = standard_response(errors=serializer.errors)
     return Response(res, status=status.HTTP_400_BAD_REQUEST)
Exemple #6
0
 def post(self, request):
     """
     Return token for logged user
     """
     serializer = LoginSerializer(data=request.data)
     if serializer.is_valid():
         data = {
             **serializer.data, 'types':
             Token.objects.get(key=serializer.data['token']).user.type
         }
         res = standard_response(data=data)
         return Response(res)
     res = standard_response(errors=serializer.errors)
     return Response(res, status=status.HTTP_400_BAD_REQUEST)
Exemple #7
0
  def delete(self, request, medic_id):
    """
    Delete existing PatientMedic relationship.
    """
    try:
      medic = Medic.objects.get(id=medic_id)
    except Medic.DoesNotExist:
      res = standard_response(errors={'medic': 'This medic does not exist'})
      return Response(res, status=status.HTTP_404_NOT_FOUND)

    patient = Patient.objects.get(email=request.user.email)
    patient.medics.remove(medic)
    res = standard_response()
    return Response(res, status.HTTP_204_NO_CONTENT)
Exemple #8
0
 def post(self, request):
     """
     Return token for newly created user
     """
     serializer = SignupSerializer(data=request.data)
     if serializer.is_valid():
         user = serializer.save()
         token = Token.objects.get(user=user)
         res = standard_response(data={
             'token': token.key,
             'types': user.type
         })
         return Response(res, status=status.HTTP_201_CREATED)
     res = standard_response(errors=serializer.errors)
     return Response(res, status=status.HTTP_400_BAD_REQUEST)
Exemple #9
0
 def post(self, request):
     serializer = ShareSerializer(data=request.data)
     if serializer.is_valid():
         try:
             patient = Patient.objects.get(email=request.user.email)
             medic = Medic.objects.get(
                 email=serializer.validated_data['email'])
             medic.patients.add(patient)
             res = standard_response(
                 data=MedicProfileSerializer(medic).data)
             return Response(res, status=status.HTTP_201_CREATED)
         except Medic.DoesNotExist:
             res = standard_response(
                 errors={'medic': 'This user does not exist.'})
             return Response(res, status=status.HTTP_404_NOT_FOUND)
     res = standard_response(errors=serializer.errors)
     return Response(res, status=status.HTTP_400_BAD_REQUEST)
Exemple #10
0
 def get(self, request):
     """
     Return a list of all background subtypes
     """
     background_subtypes = BackgroundSubtype.objects.all()
     serializer = BackgroundSubtypeSerializer(background_subtypes, many=True)
     res = standard_response(data=serializer.data)
     return Response(res)
Exemple #11
0
 def put(self, request, condition_id):
     try:
         patient = Patient.objects.get(email=request.user.email)
         condition = Condition.objects.get(id=condition_id,
                                           patient=request.user)
         serializer = ConditionSerializer(condition, data=request.data)
         if serializer.is_valid():
             serializer.save(patient=patient)
             res = standard_response(data=serializer.data)
             return Response(res)
         res = standard_response(errors=serializer.errors)
         return Response(res, status=status.HTTP_400_BAD_REQUEST)
     except Condition.DoesNotExist:
         res = standard_response(
             errors={
                 'forbidden': 'You are not the owner of this condition'
             })
         return Response(res, status=status.HTTP_403_FORBIDDEN)
Exemple #12
0
 def get(self, request):
     """
     Return a list of all medic's patients
     """
     medic = Medic.objects.get(email=request.user.email)
     query_set = PatientMedic.objects.filter(medic=medic).values('patient')
     patients = Patient.objects.filter(id__in=query_set)
     serializer = PatientProfileSerializer(patients, many=True)
     res = standard_response(data=serializer.data)
     return Response(res)
Exemple #13
0
 def get(self, request):
   """
   Return a list of all patient's medics
   """
   patient = Patient.objects.get(email=request.user.email)
   query_set = PatientMedic.objects.filter(patient=patient).values('medic')
   medics = Medic.objects.filter(id__in=query_set)
   serializer = MedicProfileSerializer(medics, many=True)
   res = standard_response(data=serializer.data)
   return Response(res)
Exemple #14
0
 def delete(self, request):
     try:
         medic = Medic.objects.get(email=request.user.email)
         specialties = Specialty.objects.filter(
             id__in=request.data['specialties'], medic=medic)
         if not specialties: raise Specialty.DoesNotExist
         specialties.delete()
         return Response(status=status.HTTP_204_NO_CONTENT)
     except Specialty.DoesNotExist:
         res = standard_response(
             errors={'specialty': 'The given specialties does not exist'})
         return Response(res, status=status.HTTP_404_NOT_FOUND)
Exemple #15
0
 def get(self, request):
     """
     Return a list of all conditions of patient
     """
     user = request.user
     if 'patient_id' in request.query_params:
         patient_id = request.query_params['patient_id']
         try:
             medic = Medic.objects.get(email=request.user.email)
             patient_medic = PatientMedic.objects.get(
                 medic=medic, patient__id=patient_id)
         except PatientMedic.DoesNotExist:
             res = standard_response(
                 errors={
                     'patient':
                     'This user has no access to the patient\'s information'
                 })
             return Response(res, status=status.HTTP_404_NOT_FOUND)
         user = patient_medic.patient
     patient_conditions = Condition.objects.filter(
         patient=user).order_by('-date_of_diagnosis')
     conditions = ConditionSerializer(patient_conditions, many=True)
     res = standard_response(data=conditions.data)
     return Response(res)
Exemple #16
0
 def get(self, request):
     """
     Return a list of user's type
     """
     res = standard_response(data={'types': request.user.type})
     return Response(res)