예제 #1
0
def object_details(request, container, object, format=None):
    token = ObjectList.generate_token(request)

    if request.method == 'GET':
        r = requests.get(
            'http://10.129.103.86:8080/v1/AUTH_b3f70be8acad4ec197e2b5edf48d9e5a/'
            + container + '/' + object,
            headers={'X-Auth-Token': token})
        return Response(r.headers)
    if request.method == 'POST':
        t = {'X-Auth-Token': token}
        data = JSONParser().parse(request)
        data.update(t)
        requests.post(
            'http://10.129.103.86:8080/v1/AUTH_b3f70be8acad4ec197e2b5edf48d9e5a/'
            + container + '/' + object,
            headers=data)
        r = requests.get(
            'http://10.129.103.86:8080/v1/AUTH_b3f70be8acad4ec197e2b5edf48d9e5a/'
            + container + '/' + object,
            headers={'X-Auth-Token': token})
        return Response(r.headers)

    if request.method == 'DELETE':
        r = requests.delete(
            'http://10.129.103.86:8080/v1/AUTH_b3f70be8acad4ec197e2b5edf48d9e5a/'
            + container + '/' + object,
            headers={
                'X-Auth-Token': token
            }).text
        return Response(r)
예제 #2
0
def parse_request(request):

    content = {}

    # POST request from mobile client
    try:
        # fetch data from request object
        logger.debug("Trying to fetch data from request using JSONParser method")
        content = JSONParser().parse(request)

    except:

        # DRF panel
        try:
            # fetch data from _content parameter in drf request object
            logger.debug("Trying to fetch data from request.POST['_content']")
            content = json.loads(request.POST["_content"])

        except:
            # POST request through web-site ajax request
            logger.debug("Trying to fetch from request.POST")
            content = request.POST
            if request.FILES:
                content.update(request.FILES)

            # fetch data from request.data
            try:
                logger.debug("Trying to fetch data from request.data")
                content = request.data
            
            except:
                logger.debug("Unable to fetch data from request.")

    logger.debug("content in parse_request: %s" %content)
    return content
예제 #3
0
 def post(self, request, format=None):
     data = JSONParser().parse(request)
     serializer = UrlSerializer(data=data)
     current_url = request.build_absolute_uri('/')
     data.update({"tiny": current_url})
     if serializer.is_valid():
         serializer.save()
         return Response(serializer.data, status=status.HTTP_201_CREATED)
     return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
예제 #4
0
def addSubscriber(request):
    data = JSONParser().parse(request)
    now = datetime.now()
    dateJoined= {"date":now}
    data.update(dateJoined)
    serializer = SubscriberSerializer(data=data)
    if serializer.is_valid():
        serializer.save()
        return JsonResponse(serializer.data)
    return JsonResponse(serializer.errors, status=400)
예제 #5
0
 def post(self, request, container, format=None):
     token = self.generate_token(request)
     data = JSONParser().parse(request)
     data.update(t)
     requests.post(
         'http://10.129.103.86:8080/v1/AUTH_b3f70be8acad4ec197e2b5edf48d9e5a/'
         + container,
         headers=data)
     r = requests.get(
         'http://10.129.103.86:8080/v1/AUTH_b3f70be8acad4ec197e2b5edf48d9e5a/'
         + container,
         headers={'X-Auth-Token': token})
     return Response(r.headers)
예제 #6
0
def create_project(request, id):
    """
    :param request:
    :param id: user_id
    :return:
    """
    result = {"data": None, "msg": "success", "code": 200}
    owner_id = id
    receive_data = JSONParser().parse(request)
    developer = receive_data.pop("developer")

    if not developer:
        result['msg'] = "failed"
        result['code'] = 1001
        return JsonResponse(data=result['data'],
                            code=result['code'],
                            msg=result['msg'])

    for k in list(receive_data.keys()):
        if receive_data.get(k) is None:
            receive_data.pop(k)
    group_data = dict(create_or_delete=False, update=True)
    #创建组
    group = GroupSerializer(data=group_data)

    if not group.is_valid():
        result['msg'] = "failed"
        result['code'] = 1002
        return JsonResponse(data=result['data'],
                            code=result['code'],
                            msg=result['msg'])

    g = group.save()
    receive_data.update({'owner_id': owner_id})
    #建立每个用户和组之间的关系
    for user_id in developer:
        GroupUser.objects.create(uid=user_id, gid=g.gid)
    p = ProjectSerializer(data=receive_data)
    if not p.is_valid():
        result['msg'] = "failed"
        result['code'] = 1003
        return JsonResponse(data=result['data'],
                            code=result['code'],
                            msg=result['msg'])
    project = p.save()
    data = ProjectSerializer(instance=project).data
    #建立项目和组的关系
    ProjectGroup.objects.create(pid=project.pid, gid=g.gid)
    data.update(dict(developer=developer))
    return JsonResponse(data=data, code=200, msg="success")
예제 #7
0
파일: views.py 프로젝트: snubeaver/swpp
def user_login(request):
    print("Request is : ")
    print(request)
    data = JSONParser().parse(request)
    print("data check %s", data)
    user = authenticate(username=data['username'], password=data['password'])
    print(user)
    if user:
        print("auth in process")
        auth_login(request, user)
    else:
        return JSONResponse({}, status=status.HTTP_401_UNAUTHORIZED)
    serializer = UserSerializer(user)
    data = serializer.data.copy()
    data.update({
        'csrftoken': request.META['CSRF_COOKIE']
    })
    return JSONResponse(data, status=status.HTTP_200_OK)
예제 #8
0
def addUser(request):
    try:
        request_data = JSONParser().parse(request)
        pss = request_data.get("password")
        request_data.update(password=make_password(pss))
        serializer = UserSerializer(data=request_data)
        if serializer.is_valid():
            serializer.save()
            return JsonResponse(serializer.data,
                                safe=False,
                                status=status.HTTP_201_CREATED)
        else:
            return JsonResponse(serializer.errors,
                                safe=False,
                                status=status.HTTP_400_BAD_REQUEST)
    except Exception as e:
        return JsonResponse({'error': str(e)},
                            safe=False,
                            status=status.HTTP_500_INTERNAL_SERVER_ERROR)
예제 #9
0
def send(request):

    # accesstokenを調べる

    # name をもつuserが登録されているかを確認する。

    # PUT

    if request.method == 'PUT':
        data = JSONParser().parse(request)
        serializer = IoTSerializer(data=data)
        print("■■■■■■■■■■■■■■■■■■■■■■■■■", data)
        data.update({"pub_date": timezone.now()})
        if serializer.is_valid():
            serializer.save()
            return JsonResponse(serializer.data)
        return JsonResponse(serializer.errors, status=400)
    else:
        return JsonResponse(serializer.errors, status=400)
예제 #10
0
def object_list(request, account, container, format=None):
    url = 'http://10.129.103.86:5000/v3/auth/tokens'
    headers = {'content-type': 'application/json'}
    if (account == "swift"):
        data = '\n{ "auth": {\n    "identity": {\n      "methods": ["password"],\n      "password": {\n        "user": {\n          "name": "swift",\n          "domain": { "name": "default" },\n          "password": "******"\n        }\n      }\n    },\n    "scope": {\n      "project": {\n        "name": "service",\n        "domain": { "name": "default" }\n      }\n    }\n  }\n}'
        acc = "AUTH_b3f70be8acad4ec197e2b5edf48d9e5a"
    elif (account == "openedx"):
        data = '\n{ "auth": {\n    "identity": {\n      "methods": ["password"],\n      "password": {\n        "user": {\n          "name": "openedx",\n          "domain": { "name": "default" },\n          "password": "******"\n        }\n      }\n    },\n    "scope": {\n      "project": {\n        "name": "openedx",\n        "domain": { "name": "default" }\n      }\n    }\n  }\n}'
        acc = "AUTH_081223a854f54e37a0d6a1c383c5577e"
    else:
        data = '\n{ "auth": {\n    "identity": {\n      "methods": ["password"],\n      "password": {\n        "user": {\n          "name": "telemet",\n          "domain": { "name": "default" },\n          "password": "******"\n        }\n      }\n    },\n    "scope": {\n      "project": {\n        "name": "datastore",\n        "domain": { "name": "default" }\n      }\n    }\n  }\n}'
        acc = "AUTH_5b2bcbcb10f347aaa4c7b0e370c2c055"
    r = requests.post(url, headers=headers, data=data)
    token = r.headers.get('X-Subject-Token')

    if request.method == 'GET':
        r = requests.get('http://10.129.103.86:8080/v1/' + acc + '/' +
                         container,
                         headers={
                             'X-Auth-Token': token
                         }).text
        return Response(r)

    if request.method == 'DELETE':
        r = requests.delete('http://10.129.103.86:8080/v1/' + acc + '/' +
                            container,
                            headers={
                                'X-Auth-Token': token
                            }).text
        return Response("Successfully Deleted Container")
    if request.method == 'POST':
        t = {'X-Auth-Token': token}
        print(request.body)
        data = JSONParser().parse(request)

        data.update(t)
        requests.post('http://10.129.103.86:8080/v1/' + acc + '/' + container,
                      headers=data)
        r = requests.get('http://10.129.103.86:8080/v1/' + acc + '/' +
                         container,
                         headers={'X-Auth-Token': token})
        return Response(r.headers)
예제 #11
0
def register(request):
    if request.method == 'POST':

        json = BytesIO(request.body)
        data = JSONParser().parse(json)
        data.update({
            'created_at': datetime.datetime.now(tz=timezone.utc),
            'last_update': datetime.datetime.now(tz=timezone.utc),
            'last_login': datetime.datetime.now(tz=timezone.utc),
            'token': generate_key()
        })
        user = UserSerializer(data=data)

        if user.is_valid():

            if user_exists(data["email"]):
                response = {'Failed': 'email is already used'}
                return JsonResponse(response)

            elif card_exists(data["card_id"]):
                response = {'Failed': 'card id is already used'}
                return JsonResponse(response)

            else:
                user.save()
                data['user'] = int(User.objects.get(email=data['email']).id)
                personal_info = PersonalInfoSerializer(data=data)
                personal_info.is_valid()
                personal_info.save()
                data['eur_balance'], data['bitcoin_balance'], data[
                    'ethereum_balance'], data['cardano_balance'], data[
                        'litecoin_balance'], data[
                            'polkadot_balance'] = 0, 0, 0, 0, 0, 0
                wallet = WalletSerializer(data=data)
                wallet.is_valid()
                wallet.save()
                return JsonResponse({'response': 'Registered succesfuly'})

        return JsonResponse({'response': 'wrong request'})
예제 #12
0
파일: views.py 프로젝트: deancha/freePJT
def counselinsert(request):
    if request.method == "POST":
        data = JSONParser().parse(request)
        # 암호화
        counselor = Counselor.objects.filter(
            counselor_pk=data['counselor_pk']).values()
        key = dict(counselor[0])['key']
        text = data['counsel_detail'].encode('utf-8')
        data.update({"counsel_detail": Fernet(key).encrypt(text)})
        try:
            obj = CounselReservation.objects.filter(
                counselReservation_pk=data['counselReservation_pk'])
            obj.update(done=True)
            Counsel.objects.create(
                user_pk=data['user_pk'],
                counselor_pk=data['counselor_pk'],
                counsel_startdate=data['counsel_startdate'],
                counselReservation_pk=data['counselReservation_pk'],
                counsel_enddate=data['counsel_enddate'],
                counsel_detail=data['counsel_detail'],
                counsel_fee=data['counsel_fee'])
            return JsonResponse({"result": "success"}, status=200, safe=False)
        except:
            return JsonResponse({"result": "fail"}, status=500, safe=False)
예제 #13
0
def parse_request(request):

    content = {}

    # POST request from mobile client
    try:
        # fetch data from request object
        #logger.debug("Trying to fetch data from request using JSONParser method")
        content = JSONParser().parse(request)

    except:

        # DRF panel
        try:
            # fetch data from _content parameter in drf request object
            #logger.debug("Trying to fetch data from request.POST['_content']")
            content = json.loads(request.POST["_content"])

        except:
            # POST request through web-site ajax request
            #logger.debug("Trying to fetch from request.POST")
            content = request.POST
            if request.FILES:
                content.update(request.FILES)

            # fetch data from request.data
            try:
                #logger.debug("Trying to fetch data from request.data")
                content = request.data

            except:
                logger.exception("Unable to fetch data from request.")

    logger.debug("content in parse_request: %s\ttype: %s" %
                 (content, type(content)))
    return content
예제 #14
0
파일: views.py 프로젝트: MrIceman/joberia
 def post(self, request, *args, **kwargs):
     comment_data = JSONParser().parse(request)
     user = kwargs.get(REQUEST_KEY_USER)
     platform = kwargs.get(REQUEST_KEY_PLATFORM)
     job = Job.objects.filter(pk=comment_data['job_id'],
                              created_by=user.pk,
                              platform=platform.pk).first()
     if job is None:
         return JsonResponse(create_data_does_not_exist_response())
     comment_data.update({'job': comment_data['job_id']})
     comment_data.update({'platform': platform.pk})
     comment_data.update({'author': user.pk})
     serializer = CommentSerializer(data=comment_data)
     if serializer.is_valid():
         instance = serializer.save()
         return JsonResponse(serializer.data)
     else:
         return JsonResponse(create_failed_message(serializer.errors))
예제 #15
0
def create_rq(request, routine):
    try:
        if request.method == 'POST':
            serializer = routine_to_serializer(routine)
            rq_data = JSONParser().parse(request)
            rq_data.update(entry_time=timezone.now())
            rq_data.update(routine=routine)

            ##supplementary info depending on the routine
            if routine in [
                    "create_rider", "race", "national_all_champs",
                    "national_one_champ"
            ]:
                rq_data.update(item_id="Q1")

            request_serializer = serializer(data=rq_data)
            return serial_save(request_serializer, request, rq_data)
        else:
            return JsonResponse({'error': 'no POST request'},
                                status=status.HTTP_400_BAD_REQUEST)
    except:
        return JsonResponse({'status create': 'failed'},
                            status=status.HTTP_417_EXPECTATION_FAILED)
예제 #16
0
def snippet_list(request, format=None):
    neuron = MODELS

    if request.method == 'GET':
        snippets = CheckText.objects.all()
        serializer = CheckTextSerializer(snippets, many=True)
        return JsonResponse(serializer.data, safe=False)

    elif request.method == 'POST':

        data = JSONParser().parse(request)
        data.update({"percent": neuron.isBulling(data["text"])})
        print(data["percent"])
        print(data)
        if data["percent"] >= 0.4:
            data.update({"isBulling": True})
        else:
            data.update({"isBulling": False})

        serializer = CheckTextSerializer(data=data)
        if serializer.is_valid():
            serializer.save()
            return JsonResponse(serializer.data, status=201)
        return JsonResponse(serializer.errors, status=400)
예제 #17
0
def data_list(request):
    if request.method == 'GET':
        datas = DataArticle.objects.all().order_by('-id')        
        data_serializer = HistorySerializer(datas, many=True)
        return JsonResponse(data_serializer.data, safe=False)
        # 'safe=False' for objects serialization
 
    elif request.method == 'POST':
        post_data = JSONParser().parse(request)
        myurl = post_data['url']
        mytimedelta = post_data['timedelta']
        post_data.pop('url', None)
        post_data.pop('timedelta', None)

        i = 0
        obj = np.array([])
        for element in post_data:
            obj = np.insert(obj,i,post_data[element])
            i += 1

        loaded_model = pickle.load(open('Prediction/finalized_modelLogistic2.sav', 'rb'))
        result = loaded_model.predict(obj.reshape(1, -1))
        print(result[0])
        post_data.update({"popularity": result[0]})
        post_data.update({"url": myurl})
        post_data.update({"timedelta": mytimedelta})

        post_serializer = HistorySerializer(data=post_data)
        if post_serializer.is_valid():
            post_serializer.save()
            return JsonResponse(post_serializer.data, status=status.HTTP_201_CREATED)
        return JsonResponse(post_serializer.errors, status=status.HTTP_400_BAD_REQUEST)
    
    elif request.method == 'DELETE':
        count = DataArticle.objects.all().delete()
        return JsonResponse({'message': '{} All data were deleted successfully!'.format(count[0])}, status=status.HTTP_204_NO_CONTENT)
예제 #18
0
def object_list(request, account, container, format=None):
    url = 'http://10.129.103.86:5000/v3/auth/tokens'
    headers = {'content-type': 'application/json'}
    if (account == "swift"):
        data = '\n{ "auth": {\n    "identity": {\n      "methods": ["password"],\n      "password": {\n        "user": {\n          "name": "swift",\n          "domain": { "name": "default" },\n          "password": "******"\n        }\n      }\n    },\n    "scope": {\n      "project": {\n        "name": "service",\n        "domain": { "name": "default" }\n      }\n    }\n  }\n}'
        acc = "AUTH_b3f70be8acad4ec197e2b5edf48d9e5a"
    elif (account == "openedx"):
        data = '\n{ "auth": {\n    "identity": {\n      "methods": ["password"],\n      "password": {\n        "user": {\n          "name": "openedx",\n          "domain": { "name": "default" },\n          "password": "******"\n        }\n      }\n    },\n    "scope": {\n      "project": {\n        "name": "openedx",\n        "domain": { "name": "default" }\n      }\n    }\n  }\n}'
        acc = "AUTH_081223a854f54e37a0d6a1c383c5577e"
    else:
        data = '\n{ "auth": {\n    "identity": {\n      "methods": ["password"],\n      "password": {\n        "user": {\n          "name": "telemet",\n          "domain": { "name": "default" },\n          "password": "******"\n        }\n      }\n    },\n    "scope": {\n      "project": {\n        "name": "datastore",\n        "domain": { "name": "default" }\n      }\n    }\n  }\n}'
        acc = "AUTH_5b2bcbcb10f347aaa4c7b0e370c2c055"
    r = requests.post(url, headers=headers, data=data)
    token = r.headers.get('X-Subject-Token')
    if request.method == 'GET':
        r = requests.get(
            'http://10.129.103.86:8080/v1/AUTH_b3f70be8acad4ec197e2b5edf48d9e5a/'
            + container,
            headers={
                'X-Auth-Token': token
            }).text
        obj_arr = r.split("\n")
        obj_arr.pop()
        rows = len(obj_arr)
        columns = 3
        Matrix = [[0 for x in range(columns)] for x in range(rows)]
        for i in range(rows):
            Matrix[i][0] = obj_arr[i]
            Matrix[i][1] = reverse('files:obj_info',
                                   kwargs={
                                       'account': account,
                                       'container': container,
                                       'object': obj_arr[i]
                                   },
                                   request=request,
                                   format=format)
            Matrix[i][2] = reverse('files:obj_download',
                                   kwargs={
                                       'account': account,
                                       'container': container,
                                       'object': obj_arr[i]
                                   },
                                   request=request,
                                   format=format)
        return Response(Matrix)
    if request.method == 'POST':
        t = {'X-Auth-Token': token}
        data = JSONParser().parse(request)
        data.update(t)
        requests.post('http://10.129.103.86:8080/v1/' + acc + '/' + container,
                      headers=data)
        r = requests.get('http://10.129.103.86:8080/v1/' + acc + '/' +
                         container,
                         headers={'X-Auth-Token': token})
        return Response(r.headers)
    if request.method == 'DELETE':
        r = requests.delete('http://10.129.103.86:8080/v1/' + acc + '/' +
                            container,
                            headers={
                                'X-Auth-Token': token
                            }).text
        return Response(r)
예제 #19
0
def actions_orders(request, user_uid):
    """
    GET /api/v1/orders/{userUid} – get all user orders.
    POST /api/v1/orders/{userUid} – place an order on behalf of the user.
    DELETE /api/v1/orders/{orderUid} – return order.
    :param request: request for data in JSON
    :param user_uid: User Uid
    :return: 1) Get all user's orders 2) Create and return order_uid 3) Delete order and close warranty
    """

    try:
        if request.method == 'GET':
            orders = Orders.objects.all().filter(user_uid=user_uid)
            filterReq = FunctionsOrders.filter_response(orders)
            return JsonResponse(filterReq,
                                status=status.HTTP_200_OK,
                                safe=False)

        if not FunctionsOrders.pingServices(1):
            return JsonResponse({'message': 'Server Warranty/Warehouse close'},
                                status=status.HTTP_404_NOT_FOUND)

        if request.method == 'POST':
            parseDict = JSONParser().parse(request)
            if FunctionsOrders.regularExp(parseDict, 1) is False:
                return JsonResponse({'message': 'Error validation reason'},
                                    status=status.HTTP_406_NOT_ACCEPTABLE)
            order = dict(status='PAID', user_uid=user_uid)
            order_serializer = OrdersSerializer(data=order)

            if order_serializer.is_valid():
                order_serializer.save()
            parseDict.update({
                'orderUid': order_serializer.data["order_uid"],
                'orderItemUid': order_serializer.data["item_uid"]
            })
            warrantyResp = requests.post(
                'https://warranty-ivan.herokuapp.com/api/v1/warranty/{}'.
                format(order_serializer.data["item_uid"]))
            # RabbitMQ
            if not warrantyResp.status_code == 204:
                connection = pika.BlockingConnection(
                    pika.URLParameters(
                        'amqps://*****:*****@crow.rmq.cloudamqp.com/waxtnnui'
                    ))
                channel = connection.channel()
                channel.queue_declare(queue='warranty')  # Put in the queue
                channel.basic_publish(exchange='',
                                      routing_key='warranty',
                                      body=order_serializer.data["item_uid"])
                connection.close()

            warehouseResp = requests.post(
                'https://warehouse-ivan.herokuapp.com/api/v1/warehouse/',
                json=parseDict)
            if warehouseResp.status_code == 200:
                return JsonResponse(
                    {"orderUid": order_serializer.data["order_uid"]},
                    status=status.HTTP_200_OK)
            # rolling back the operation
            else:
                initOrder = Orders.objects.get(order_uid=parseDict['orderUid'])
                requests.delete(
                    'https://orders-ivan.herokuapp.com/api/v1/orders/{}'.
                    format(parseDict['orderUid']))
                requests.delete(
                    'https://warranty-ivan.herokuapp.com/api/v1/warranty/{}'.
                    format(initOrder))
                requests.delete(
                    'https://warehouse-ivan.herokuapp.com/api/v1/warehouse/{}'.
                    format(initOrder))
                return JsonResponse({'message': 'Rolling back operation'},
                                    status=status.HTTP_409_CONFLICT)

        if request.method == 'DELETE':
            try:
                itemUid = order = Orders.objects.get(order_uid=user_uid)
                itemUid = itemUid.item_uid
                warrantySave = requests.get(
                    'https://warranty-ivan.herokuapp.com/api/v1/warranty/{}'.
                    format(itemUid))
                warrantyRes = requests.delete(
                    'https://warranty-ivan.herokuapp.com/api/v1/warranty/{}'.
                    format(itemUid))
                wareRes = requests.delete(
                    'https://warehouse-ivan.herokuapp.com/api/v1/warehouse/{}'.
                    format(itemUid))
                if wareRes.status_code == 204 and warrantyRes.status_code == 204:
                    order.delete()
                    return JsonResponse(1,
                                        status=status.HTTP_204_NO_CONTENT,
                                        safe=False)
                else:
                    warrantySave = warrantySave.json()
                    requests.post(
                        'https://warranty-ivan.herokuapp.com/api/v1/warranty/{}'
                        .format(itemUid),
                        json=warrantySave)
                    return JsonResponse(
                        {'message': 'Rolling back operation'.format(user_uid)},
                        status=status.HTTP_404_NOT_FOUND)
            except Orders.DoesNotExist:
                return JsonResponse(
                    {'message': 'Order {} not found'.format(user_uid)},
                    status=status.HTTP_404_NOT_FOUND)
    except Exception as e:
        return JsonResponse({'message': '{}'.format(e)},
                            status=status.HTTP_400_BAD_REQUEST)