def __get_user_services(self, request, resp): user = utils.get_user_from_headers(request.headers) if user is None: return Response("Unauthorized", status=401) auth = user.get('auth_service', {}) services_name = [] for key in auth.keys(): services_name.append(key) services = [] for service in resp: if service['name'] not in services_name: service["connected"] = False service["auth_required"] = auth.get(service["name"], {}).get( "auth_required", True) services.append(service) else: service["connected"] = auth.get(service["name"], {})["connected"] service["auth_required"] = auth.get(service["name"], {}).get( "auth_required", True) services.append(service) return Response({'results': services}, status=200)
def delete(self, request, *args, **kwargs): name = kwargs.get('service_name', None) if name is None: return HttpResponse('Service not found', status=404) user = utils.get_user_from_headers(request.headers) if user is None: return Response("Unauthorized", status=401) if user["auth_service"][name] is None: return Response(None, status=200) token = request.headers['Authorization'].split("Bearer ")[1] auth = user["auth_service"] auth[name] = { "connected": False, "auth_required": user["auth_service"][name]["auth_required"] } resp = requests.put("http://parse-server:1337/parse/users/" + user["objectId"], data=json.dumps({"auth_service": auth}), headers={ "X-Parse-Application-Id": "", "X-Parse-REST-API-Key": "", "X-Parse-Session-Token": token, "Content-Type": "application/json" }) return Response(resp.json(), status=resp.status_code)
def delete(self, request, *args, **kwargs): user = utils.get_user_from_headers(request.headers) if user is None: return Response("Unauthorized", status=401) area_id = kwargs.get('area_id', None) if area_id is None: return Response('Need area id', status=400) resp = requests.get("http://parse-server:1337/parse/classes/Area", params={'where': json.dumps({"user_id": user['objectId'], "objectId": area_id})}, headers={ "X-Parse-Application-Id": "", "X-Parse-REST-API-Key": "", } ) if resp.status_code != 200: return Response(resp.json(), status=resp.status_code) if len(resp.json()['results']) == 0: return Response("Unauthorized action", status=401) resp = requests.delete("http://parse-server:1337/parse/classes/Area/" + area_id, headers={ "X-Parse-Application-Id": "", "X-Parse-REST-API-Key": "", } ) return Response(resp.json(), status=resp.status_code)
def get(self, request, format=None): user = utils.get_user_from_headers(request.headers) if user is None: return Response("Unauthorized", status=401) areas = self.__get_list_area(user['objectId']) if areas is None: return Response("Data not found", status=404) to_return = [] for area in areas['results']: reactions = [] for reac in area['reaction']: reactions.append(reac['id']) to_return.append({"objectId": area['objectId'], "is_actif": area['is_actif'], "trigger": area['trigger']['id'], "reactions": reactions}) return Response(to_return, status=200)
def put(self, request, *args, **kwargs): user = utils.get_user_from_headers(request.headers) if user is None: print("User Connection failed") return Response("Unauthorized", status=401) area_id = kwargs.get('area_id', None) if area_id is None: return Response("Bad reaquest", status=400) if self.__check_user_area(area_id, user['objectId']) is None: print("User/Area are not ok !") return Response("Unauthorized", status=401) is_actif = request.data.get('is_actif', None) if is_actif is not None: return self.__active_desactive_area(area_id, is_actif) return self.__update_area(request.data, area_id)
def delete(self, request, *args, **kwargs): auth = request.headers.get('Authorization', None) if auth is None: return Response(None, status=401) user = utils.get_user_from_headers(request.headers) if user is None: return Response("Unauthorized", status=401) token = auth.split("Bearer ")[1] resp = requests.delete("http://parse-server:1337/parse/users/" + user['objectId'], headers={ "X-Parse-Application-Id": "", "X-Parse-REST-API-Key": "", "X-Parse-Session-Token": token, }) return Response(resp.json(), status=resp.status_code)
def post(self, request, format=None): user = utils.get_user_from_headers(request.headers) if user is None: return Response("Unauthorized", status=401) services = request.data.get('services', None) trigger = request.data.get('trigger', None) reaction = request.data.get('reaction', None) if services is None or trigger is None or reaction is None: return Response("Body mal formated", status=400) try: parameters = self.__get_parameters(services, trigger.get('id'), reaction.get('id')) except ValueError as err: return Response(err, status=400) body = None try: body = self.__fill_body_request(user, trigger, reaction, parameters) except ValueError as err: return Response(err, status=400) return self.__send_area_creation(body)