Exemple #1
0
 def post(self, request):
     serializer = StoreSerializer(data=request.data)
     if serializer.is_valid():
         serializer.save()
         return Response(serializer.data, status=status.HTTP_201_CREATED)
     return Response(serializer.errors,
                     status=status.HTTP_500_INTERNAL_SERVER_ERROR)
Exemple #2
0
 def put(self, request, pk):
     store = self.get_object(pk)
     serializer = StoreSerializer(instance=store, data=request.data)
     if serializer.is_valid():
         serializer.save()
         return Response(serializer.data, status=status.HTTP_201_CREATED)
     return Response(serializer.errors,
                     status=status.HTTP_500_INTERNAL_SERVER_ERROR)
Exemple #3
0
    def post(self, request):
        try:
            user = request.user
            store_name = request.data.get('name')
            store_category = request.data.get('category')
            open_time = request.data.get('open_time')
            close_time = request.data.get('close_time')
            image_base64 = request.data.get('image')
            user_store_category = StoreCategory.objects.filter(
                id=store_category).first()
            if user.role.name != 'seller':
                response = Response(
                    helpers.fail_context(message="Permission denied"),
                    status=status.HTTP_403_FORBIDDEN)
            elif store_name is None or len(store_name) < 4:
                response = Response(
                    helpers.fail_context(message="Nama toko tidak valid"),
                    status=status.HTTP_200_OK)
            elif user_store_category is None:
                response = Response(
                    helpers.fail_context(message="Kategori toko tidak valid"),
                    status=status.HTTP_200_OK)
            elif open_time is None or close_time is None:
                response = Response(helpers.fail_context(
                    message="Jam operasional toko tidak valid"),
                                    status=status.HTTP_200_OK)
            else:
                image = None
                if image_base64 is not None:
                    image_data = b64decode(image_base64)
                    image_name = "store-" + str(uuid.uuid4()) + ".jpg"
                    file = ContentFile(image_data, image_name)
                    image = Image.objects.create(filename=image_name,
                                                 file=file)

                store_status = StoreStatus.objects.filter(name="open").first()
                if store_status is None:
                    store_status = StoreStatus.objects.create(name="open")
                Store.objects.filter(id=user.store.id).update(
                    name=store_name,
                    status=store_status,
                    open_time=open_time,
                    close_time=close_time,
                    category=user_store_category,
                    image=image)
                store = Store.objects.filter(id=user.store.id).first()

                data = StoreSerializer(store).data
                response = Response(helpers.success_context(store=data),
                                    status=status.HTTP_200_OK)
        except Exception as e:
            print(str(e))
            response = Response(helpers.fatal_context(),
                                status=status.HTTP_500_INTERNAL_SERVER_ERROR)
        return response
Exemple #4
0
    def test_retrieve_store_list(self):
        """Test on all store"""
        sample_store(user=self.user)
        sample_store(user=self.user)

        res = self.client.get(STORE_URL)
        stores = Store.objects.all().order_by("-id")
        serializer = StoreSerializer(stores, many=True)

        self.assertEqual(res.status_code, status.HTTP_200_OK)
        self.assertEqual(res.data, serializer.data)
Exemple #5
0
def coldstart(request):
    startpoint = [[
        148912, 305741, 161207, 35736, 154632, 236604, 214585, 100791, 261913,
        97851, 314528, 3898, 73522, 176721, 68900, 121543, 276131, 278687,
        252755, 70953, 83525, 46319, 239444, 304420, 323242, 334509, 138460,
        296624
    ],
                  [
                      145030, 346836, 160799, 320057, 319442, 329194, 157481,
                      239920, 303270, 106124, 119088, 271833, 229027, 166870,
                      121556, 76200, 353580, 309336, 160821, 117711, 241525,
                      321485, 307939, 165925, 194238, 195025, 266128, 90383
                  ],
                  [
                      147432, 145030, 309336, 321390, 297934, 305906, 267510,
                      36441, 229027, 288945, 275702, 26012, 119088, 227258,
                      321485, 348398, 239920, 106124, 43727, 335278, 319442,
                      132516, 187601, 172674, 134200, 232883, 346836, 353580
                  ],
                  [
                      145030, 26012, 187601, 305906, 150885, 317547, 321485,
                      335279, 106124, 160821, 206721, 36441, 249091, 177298,
                      322993, 309336, 251106, 312290, 104405, 66900, 61406,
                      282527, 61747, 40626, 267181, 359300, 213774, 284308
                  ],
                  [
                      213774, 187601, 309336, 61406, 168430, 26012, 145030,
                      70803, 319884, 73001, 332467, 187613, 348398, 203418,
                      283888, 302264, 29609, 45445, 152068, 20936, 137024,
                      329491, 296060, 305906, 317547, 147555, 232883, 282973
                  ],
                  [
                      327509, 166193, 213577, 2515, 336589, 288140, 179945,
                      250658, 94409, 173666, 642, 62920, 286236, 187168,
                      166871, 164392, 280629, 241692, 170604, 186418, 267206,
                      197226, 164208, 62012, 86697, 106098, 81939, 166898
                  ]]
    User = get_user_model()
    user = get_object_or_404(User, pk=request.user.pk)
    now = datetime.datetime.now()
    nowDate = now.strftime('%Y')
    agecode = (int(nowDate) - int(user.age)) // 10
    agecode -= 1
    if agecode < 0:
        agecode = 0
    if agecode > 5:
        agecode = 5
    rstore = get_object_or_404(Store,
                               id=startpoint[agecode][random.randrange(0, 28)])
    serializer = StoreSerializer(rstore)
    return Response(serializer.data)
class RecommendSerializer(serializers.ModelSerializer):
    store = StoreSerializer(required=False)

    class Meta:
        model = Meeting
        fields = '__all__'
Exemple #7
0
 def get(self, request, pk):
     store = self.get_object(pk)
     serializer = StoreSerializer(store)
     return Response(serializer.data)
Exemple #8
0
 def get(self, request):
     storeList = Store.objects.all()
     serializer = StoreSerializer(storeList, many=True)
     return Response(serializer.data, status=status.HTTP_200_OK)