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)
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)
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
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)
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__'
def get(self, request, pk): store = self.get_object(pk) serializer = StoreSerializer(store) return Response(serializer.data)
def get(self, request): storeList = Store.objects.all() serializer = StoreSerializer(storeList, many=True) return Response(serializer.data, status=status.HTTP_200_OK)