Exemple #1
0
    def post(self, request, format=None):
        data = request.data
        serializer = CardSerializer(data=data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data, status=status.HTTP_201_CREATED)

        # Provide error message code with request header
        request.META['error_message'] = 'BAD_REQUEST'
Exemple #2
0
 def patch(self, request, pk):
     cardmodel = self.get_object(pk)
     serializer = CardSerializer(
         cardmodel, data=request.data,
         partial=True)  # set partial=True to update a data partially
     if serializer.is_valid():
         serializer.save()
         return Response(code=201, data=serializer.data)
     return Response(code=400, data="wrong parameters")
Exemple #3
0
    def post(self, request, **kwargs):

        new_card = Card.objects.create()
        new_card = self.update_card(request, new_card)
        new_card.save()
        self.context['data'] = CardSerializer(new_card).data
        return Response(self.context, self.status_code)
Exemple #4
0
class UserSerializer(ModelSerializer):
    # cards = CardSerializer(many=True, read_only=True, source='card_set')
    # cards = PrimaryKeyRelatedField(many=True, read_only=True)
    cards = CardSerializer(many=True, read_only=True)

    class Meta:
        model = User
        fields = ('id', 'username', 'cards')
Exemple #5
0
class ListSerializer(serializers.ModelSerializer):
    cards = CardSerializer(many=True, read_only=True)

    class Meta:
        model = List
        fields = '__all__'
        read_only_fields = [
            'created_by', 'modified_at', 'modified_by', 'archived'
        ]
Exemple #6
0
 def to_representation(self, instance):
     response = super().to_representation(instance)
     response['cards'] = CardSerializer(instance.cards,
                                        many=True,
                                        context={
                                            'request':
                                            self.context.get('request')
                                        }).data
     return response
Exemple #7
0
class UserSerializer(serializers.ModelSerializer):
    cards = CardSerializer(many=True, read_only=True)

    class Meta:
        model = User
        fields = (
            'id',
            'username',
            'cards',
        )
 def followed_users_cards(self, request):
     cards = Card.objects.filter(author__fans=self.request.user)
     page = self.paginate_queryset(cards)
     if page is not None:
         serializer = self.get_serializer(page, many=True)
         return self.get_paginated_response(serializer.data)
     serializer = CardSerializer(cards,
                                 many=True,
                                 context={'request': request})
     return Response(serializer.data)
Exemple #9
0
    def put(self, request, pk, format=None):
        card = self.get_object(pk)
        current_card_author = card.author.lower()
        data = request.data
        serializer = CardSerializer(card, data=data)

        if serializer.is_valid():

            # Check author field in request data and see whether it is provided or not.
            if 'author' in data:
                incoming_card_author = data['author'].lower()

                # Check card's author whether it is correct or not.
                if incoming_card_author == current_card_author:
                    serializer.save()
                    return Response(serializer.data)
                else:
                    request.META['error_message'] = 'FORBIDDEN'
                    return
        request.META['error_message'] = 'BAD_REQUEST'
    def my_cards(self, request):
        cards = request.user.cards.all()

        page = self.paginate_queryset(cards)
        if page is not None:
            serializer = self.get_serializer(page, many=True)
            return self.get_paginated_response(serializer.data)

        serializer = CardSerializer(cards,
                                    many=True,
                                    context={'request': request})
        return Response(serializer.data)
Exemple #11
0
class DeckCardSerializer(serializers.ModelSerializer):
    quantity = serializers.IntegerField(read_only=True)
    golden = serializers.BooleanField(read_only=True)
    card = CardSerializer(read_only=True)

    class Meta:
        model = DeckCard
        fields = [
            "quantity",
            "golden",
            "card",
        ]
Exemple #12
0
 def post(self, request, *args, **kwargs):
     search_query = self.request.POST.get('search_field', None)
     status_query = self.request.POST.get('search_status_field', None)
     cards_pk = Card.objects.filter(
         Q(card_series__icontains=search_query) | Q(card_number__icontains=search_query) | Q(
             card_issue_datetime__icontains=search_query) | Q(
             card_activity_end_datetime__icontains=search_query))
     if status_query:
         cards_pk = cards_pk.filter(Q(card_status=status_query))
     cards = Card.objects.filter(pk__in=cards_pk.distinct().values_list('pk', flat=True))
     self.context['data'] = CardSerializer(cards, many=True).data
     return Response(self.context, status=self.status_code)
Exemple #13
0
class UserCardSerializer(serializers.ModelSerializer):
    card = CardSerializer()
    user = UserSerializer()

    class Meta:
        model = UserCard
        fields = ('id', 'status', 'card', 'user')

    def update(self, instance, validated_data):
        instance.status = validated_data['status']
        instance.save()
        return instance
Exemple #14
0
class UserSerializer(serializers.ModelSerializer):
    card = CardSerializer(many=True, read_only=True, source='card_sets')
    content = ContentSerializer(many=True,
                                read_only=True,
                                source='content_sets')

    class Meta:
        model = User
        fields = ('id', 'username', 'email', 'card', 'content', 'password')
        extra_kwargs = {'password': {'write_only': True}}

    def create(self, validated_data):
        user = User(username=validated_data['username'])
        user.set_password(validated_data['password'])
        user.save()
        return user
Exemple #15
0
class UserSerializer(serializers.ModelSerializer):
    card = CardSerializer(
        source='card_set',
        many=True,
    )

    class Meta:
        model = User
        fields = [
            'id',
            'username',
            'password',
            'card',
            'email',
        ]

        extra_kwargs = {'password': {'write_only': True}}
 def get_cards(self, list):
     cards = list.card_set.all()
     serializers = CardSerializer(cards, many=True)
     return serializers.data
Exemple #17
0
class ListSerializer(serializers.ModelSerializer):
    cards = CardSerializer(many=True, required=False)

    class Meta:
        model = List
        fields = '__all__'
Exemple #18
0
 def get(self, request, pk, format=None):
     card = self.get_object(pk)
     serializer = CardSerializer(card)
     return Response(serializer.data)
Exemple #19
0
    def cards(self, request):
        mywallet = Wallet.objects.get(owner_id=request.user.id)
        mycards = Cards.objects.filter(wallet_id=mywallet.id)

        return Response([CardSerializer(card).data for card in mycards])
Exemple #20
0
 def get(self, request, format=None):
     cards = Card.objects.all()
     serializer = CardSerializer(cards, many=True)
     return Response(serializer.data)
Exemple #21
0
class ListSerializer(serializers.ModelSerializer):
    cards = CardSerializer(many=True, read_only=True)

    class Meta:
        model = List
        fields = ('id', 'name', 'cards_order', 'board', 'cards')
def load_cards():

    num_pagina = 1

    while True:

        url_pagina = "https://www.solosagrado.com.br/categorias/114/Avulso-Portugues/pagina/{}/view/vertical/ord/2/qtdview/36".format(
            num_pagina)

        page = requests.get(url_pagina)

        soup = BeautifulSoup(page.content.decode('utf-8', 'ignore'),
                             'html.parser')

        card_items = soup.find_all('div', class_='product_item')

        if card_items is None or len(card_items) == 0:

            break

        for card in card_items:

            card_data = {}

            a_tag = card.find('h5', class_='m_bottom_10').find('a')

            card_data['url_carta'] = "https://www.solosagrado.com.br{}".format(
                a_tag.get('href'))

            card_data[
                'url_imagem_carta'] = 'https://www.solosagrado.com.br/images/produtos/w200/h292/{}'.format(
                    card.find('img',
                              class_='tr_all_hover').get('src').split('/')[-1])

            card_data['titulo'] = a_tag.contents[0].strip()

            preco_div = card.find('div', class_='clearfix m_bottom_10')

            card_data['estoque'] = preco_div.find(
                'p', class_='produto-qtd').find('span').contents[0].strip()

            card_data['estoque'] = ''.join([
                estoque for estoque in card_data['estoque']
                if estoque != '\r' and estoque != '\n'
            ])

            card_data['estoque'] = ' '.join([
                estoque for estoque in card_data['estoque'].split(' ')
                if len(estoque) > 0
            ])

            card_data['disponivel'] = not 'indisponível' in card_data[
                'estoque'].lower()

            card_data['preco'] = preco_div.find(
                'p', class_='scheme_color f_size_large').find(
                    'span', class_='bold').contents[0].strip().split(' ')[-1]

            card_data['preco'] = '.'.join(card_data['preco'].split(','))

            serializer = CardSerializer(data=card_data)

            if serializer.is_valid():

                serializer.save()

        num_pagina += 1
Exemple #23
0
 def get(self, request):
     card = Card.objects.all()
     self.context['data'] = CardSerializer(card, many=True).data
     return Response(self.context, status=self.status_code)
    def test_create_card(self, expansion_1):
        values_error = {"expansion": {"id": 9}, "name": "Vellen", "cost": 2}
        serializer = CardSerializer(data=values_error)
        serializer.is_valid()
        with pytest.raises(Expansion.DoesNotExist):
            serializer.save()

        values = {
            "expansion": {
                "id": expansion_1.id
            },
            "name": "Vellen",
            "cost": 2
        }
        serializer = CardSerializer(data=values)

        assert serializer.is_valid()
        serializer.save()
        assert Card.objects.filter(name=values["name"])
Exemple #25
0
def cardqueryslug(request, slug):
    card = Card.objects.get(tarife_slug=slug)
    serializer = CardSerializer(card, many=False)
    return Response(serializer.data)