Esempio n. 1
0
    async def cansel_wish(self,request):

        try:
            data = await request.json()
            vk_id = data['vk_id']
            token = data['app_token']
            access_token = data['access_token']
            product_id = data['product'] 
        except:
            response = jsoner(status=400)
            return web.json_response(response)

        correct = await self.auth_.authorize(user_id = vk_id, access_token = access_token,sign=token)
        if correct.decode() == 'False':
            response = jsoner(status=403)
            return web.json_response(response)

        try: 
            await bd_handler.delete_wish(vk_id=vk_id,product_id=product_id)
        except:
            response = jsoner(status=400)
            return web.json_response(response)

        
        response = jsoner(status=200)
        return web.json_response(response)
Esempio n. 2
0
    async def search(self,request):

        try:
            data = await request.json()
            vk_id = data['vk_id']
            token = data['app_token']
            access_token = data['access_token']
            search_querry = str(data['search']) 
        except:
            response = jsoner(status=400)
            return web.json_response(response)

        correct = await self.auth_.authorize(user_id = vk_id, access_token = access_token,sign=token)
        if correct.decode() == 'False':
            response = jsoner(status=403)
            return web.json_response(response)

        data = []
        try:
            async with Elasticsearch(elastic_settings) as es:
                    res = await es.search(index='obi',doc_type='product', body={"query":{"terms":{"name":[search_querry]}}})
                    if len(res['hits']['hits']) == 0:
                        res = await es.search(index='obi',doc_type='product', body={"query":{"match":{"name":'name2 name3'}}})
                    for prod in res['hits']['hits']:
                        dic={"product_id":prod['_id']}
                        dic.update(prod['_source'])
                        data.append(dic)
        except: 
            return web.json_response({'status':'404','text':'NOT FOUND'})
        
        response = jsoner(status=200,searchlist=data)
        return web.json_response(response)
Esempio n. 3
0
    async def adding_wish(self,request):

        try:
            data = await request.json()
            vk_id = data['vk_id']
            token = data['app_token']
            access_token = data['access_token']
            product_id = data['product'] 
        except:
            response = jsoner(status=400)
            return web.json_response(response)

        correct = await self.auth_.authorize(user_id = vk_id, access_token = access_token,sign=token)
        if correct.decode() == 'False':
            response = jsoner(status=403)
            return web.json_response(response)

        try: 
            await bd_handler.add_wish_to_list(vk_id=vk_id, product_id=product_id)
        except asyncpg.exceptions.DuplicateObjectError:
            return web.json_response({'status':'409','text':'Conflict'})
        except:
            response = jsoner(status=400)
            return web.json_response(response)
            
        response = jsoner(status=200)
        return web.json_response(response)
Esempio n. 4
0
    async def giftlist(self, request):

        try:
            data = await request.json()
            vk_id = data['vk_id']
            token = data['app_token']
            access_token = data['access_token']
        except:
            response = jsoner(status=400)
            return web.json_response(response)

        correct = await self.auth_.authorize(user_id=vk_id,
                                             access_token=access_token,
                                             sign=token)
        if correct.decode() == 'False':
            response = jsoner(status=403)
            return web.json_response(response)

        try:
            result = await bd_handler.watch_gift_list(my_id=vk_id,
                                                      friend_id=None)
            print('all', result)
        except:
            response = jsoner(status=400)
            return web.json_response(response)
        try:
            data = {}
            result = {'15987669': ['678']}
            async with Elasticsearch(elastic_settings) as es:
                for user, lst in result.items():
                    prod_list = []
                    for prod_id in lst:
                        prod = {"product_id": prod_id}
                        res = await es.get(index='obi',
                                           doc_type='product',
                                           id=prod_id)
                        prod.update(res['_source'])
                        prod_list.append(prod)
                    data[user] = prod_list
        except:
            return web.json_response({'status': '404', 'text': 'NOT FOUND'})

        response = jsoner(status=200, giftlist=data)
        return web.json_response(response)
Esempio n. 5
0
    async def my_wishlist(self, request):

        try:
            data = await request.json()
            vk_id = data['vk_id']
            token = data['app_token']
            access_token = data['access_token']
        except:
            response = jsoner(status=400)
            return web.json_response(response)

        correct = await self.auth_.authorize(user_id=vk_id,
                                             access_token=access_token,
                                             sign=token)
        if correct.decode() == 'False':
            response = jsoner(status=403)
            return web.json_response(response)

        try:
            result = await bd_handler.get_list_of_products(vk_id=vk_id)
        except:
            response = jsoner(status=400)
            return web.json_response(response)

        data = []
        # async with Elasticsearch([{'host': 'localhost', 'port': 9200}]) as es:
        try:
            async with Elasticsearch(elastic_settings) as es:
                for rec in result:
                    prod = {
                        'product_id': rec['product_id'],
                        'gift': rec['gift_id']
                    }
                    res = await es.get(index='obi',
                                       doc_type='product',
                                       id=rec['product_id'])
                    prod.update(res['_source'])
                    data.append(prod)
        except:
            return web.json_response({'status': '404', 'text': 'NOT FOUND'})

        response = jsoner(status=200, wishlist=data)
        return web.json_response(response)
Esempio n. 6
0
    async def user_gftlist(self, request):

        try:
            data = await request.json()
            vk_id = data['vk_id']
            token = data['app_token']
            access_token = data['access_token']
            friend_id = data['friend_id']

        except:
            response = jsoner(status=400)
            return web.json_response(response)

        correct = await self.auth_.authorize(user_id=vk_id,
                                             access_token=access_token,
                                             sign=token)
        if correct.decode() == 'False':
            response = jsoner(status=403)
            return web.json_response(response)

        try:
            result = await bd_handler.watch_gift_list(my_id=vk_id,
                                                      friend_id=friend_id)
        except:
            response = jsoner(status=400)
            return web.json_response(response)
        print('friend', result)

        try:
            data = []
            async with Elasticsearch(elastic_settings) as es:
                for rec in result:
                    prod = {'product_id': rec}
                    res = await es.get(index='obi', doc_type='product', id=rec)
                    prod.update(res['_source'])
                    data.append(prod)
        except:
            return web.json_response({'status': '404', 'text': 'NOT FOUND'})

        response = jsoner(status=200, user_giftlist=data)
        return web.json_response(response)
Esempio n. 7
0
    async def auth(self,request):
        try:
            data = await request.json()
            vk_id = data['vk_id']
            access_token = data['access_token']
        except:
            response = jsoner(status=400)
            return web.json_response(response)

        token = await self.auth_.register(user_id = vk_id, access_token = access_token)
        token = token.decode()

        try: 
            await bd_handler.authorisation(vk_id=vk_id)
        except:
            response = jsoner(status=400)
            return web.json_response(response)

        # response = jsoner(status=200,token=token)
        response = jsoner(status=200,token=token)
        return web.json_response(response)
Esempio n. 8
0
def test_status400():
    response = {'status': 400, 'text': 'Bad Request'}
    assert response == json_handler.jsoner(status=400)
Esempio n. 9
0
def test_func_noargs():

    with pytest.raises(KeyError):
        json_handler.jsoner()
Esempio n. 10
0
def test_status200_noargs():
    response = {'status': 200, 'text': 'OK'}
    assert response == json_handler.jsoner(status=200)
Esempio n. 11
0
def test_status403():
    response = {'status': 403, 'text': 'Forbidden'}
    assert response == json_handler.jsoner(status=403)