def update_user_info(request): if request.method == 'POST': body_unicode = request.body.decode('utf-8') body = json.loads(body_unicode) user = get_user(request) if user == False: return JsonResponse({ 'error': 'A sua conta não é reconhecida ou a sua sessão terminou, por favor faça login novamente' }) if 'first_name' in body: user.userprofile.saved_shipping.first_name = body['first_name'] if 'last_name' in body: user.userprofile.saved_shipping.last_name = body['last_name'] if 'country' in body: user.userprofile.saved_shipping.country = body['country'] if 'address' in body: user.userprofile.saved_shipping.adress = body['address'] if 'city' in body: user.userprofile.saved_shipping.city = body['city'] if 'zip_code' in body: user.userprofile.saved_shipping.zip = body['zip_code'] if 'localidade' in body: user.userprofile.saved_shipping.localidade = body['localidade'] if 'cell_number' in body: user.userprofile.saved_shipping.phone_number = body['cell_number'] if 'email' in body: user.userprofile.saved_shipping.email = body['email'] user.userprofile.saved_shipping.save() return JsonResponse({'error': ''})
def product_is_fav(request, id): user = get_user(request) if user == False: return JsonResponse({ 'error': 'A sua conta não é reconhecida ou a sua sessão terminou, por favor faça login novamente' }) for product in user.userprofile.favourite_products.all(): if (product.id == id): return JsonResponse({'isFavourite': True}) return JsonResponse({'isFavourite': False})
def get_previous_orders(request): if request.method == 'GET': user = get_user(request) if user == False: return JsonResponse({ 'error': 'A sua conta não é reconhecida ou a sua sessão terminou, por favor faça login novamente' }) orders = user.userprofile.previous_orders.order_by('-date_ordered') serializer = OderSerializer(orders, many=True) return JsonResponse(serializer.data, safe=False)
def get_user_details(request): user = get_user(request) if user == False: return JsonResponse({ 'error': 'A sua conta não é reconhecida ou a sua sessão terminou, por favor faça login novamente' }) queryset = None try: queryset = user.userprofile.saved_shipping except: return JsonResponse({ 'error': 'Erro ao encontrar as suas informações, por favor recarregue a página' }) serializer = ShippingDetailsSerializer(queryset, many=False) return JsonResponse(serializer.data, safe=False)
def get_favourites(request): user = get_user(request) if user == False: return JsonResponse({ 'error': 'A sua conta não é reconhecida ou a sua sessão terminou, por favor faça login novamente' }) queryset = None try: queryset = user.userprofile.favourite_products.all() except: return JsonResponse({ 'error': 'Erro ao procurar os seus produtos preferidos, por favor recarregue a página' }) serializer = ProductSerializer(queryset, many=True) return JsonResponse(serializer.data, safe=False)
def create_product(request): if request.method == 'POST': user = get_user(request) if user == False: return JsonResponse({ 'error': 'A sua conta não é reconhecida ou a sua sessão terminou, por favor faça login novamente' }) if user.is_superuser: body_unicode = request.body.decode('utf-8') body = json.loads(body_unicode) data = None try: data = body['image'] format, imgstr = data.split(';base64,') ext = format.split('/')[-1] data = ContentFile(base64.b64decode(imgstr), name='temp.' + ext) except: return JsonResponse({ 'error': 'Erro ao carregar a imagem. Carregou no botão "crop"?' }) try: product = Product( name=body['name'], description=body['description'], price=body['price'], image=data, product_type=ProductType.objects.get(name=body['type']), available_quantity=body['quantity'], ) product.save() except: return JsonResponse({ 'error': 'Erro ao criar o produto, por favor verifique que todas as informações estão corretas' }) return JsonResponse({'error': ''}) else: return JsonResponse( {'error': 'Tem de ser admin para criar um produto'})
def remove_multiple_from_favourites(request): if request.method == 'POST': body_unicode = request.body.decode('utf-8') body = json.loads(body_unicode) user = get_user(request) if user == False: return JsonResponse({ 'error': 'A sua conta não é reconhecida ou a sua sessão terminou, por favor faça login novamente' }) for product in body: try: user.userprofile.favourite_products.remove( Product.objects.get(id=product['id'])) except: return JsonResponse( {'error': 'Problema ao encontrar o produto selecionado'}) return JsonResponse({'error': ''})
def add_to_favourites(request): if request.method == 'POST': body_unicode = request.body.decode('utf-8') body = json.loads(body_unicode) user = get_user(request) if user == False: return JsonResponse({ 'error': 'A sua conta não é reconhecida ou a sua sessão terminou, por favor faça login novamente' }) try: user.userprofile.favourite_products.add( Product.objects.get(id=body['id'])) except: return JsonResponse( {'error': 'Problema ao encontrar o produto selecionado'}) return JsonResponse({ 'error': 'Problema ao adicionar o produto aos favoritos, por favor tente mais tarde' })