Exemple #1
0
    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)
Exemple #2
0
    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)
Exemple #3
0
    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)
Exemple #4
0
 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)
Exemple #5
0
 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)
Exemple #6
0
 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)
Exemple #7
0
    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)