@@ -41,6 +41,31 @@ def get_queryset(self):
4141 logger .debug (f"Ошибка при получении типов номеров: { error } " , exc_info = True )
4242 return RoomType .objects .none ()
4343
44+ def perform_create (self , serializer ):
45+ try :
46+ serializer .save ()
47+ logger .info (f"Создан новый тип номера: { serializer .instance .name } " )
48+ except Exception as error :
49+ logger .error (f"Ошибка при создании типа номера: { error } " , exc_info = True )
50+ raise serializers .ValidationError ({"error" : "Не удалось создать тип номера" })
51+
52+ def perform_update (self , serializer ):
53+ try :
54+ serializer .save ()
55+ logger .info (f"Обновлеен тип номера: { serializer .instance .name } " )
56+ except Exception as error :
57+ logger .error (f"Ошибка при обновлении типа номера: { error } " , exc_info = True )
58+ raise serializers .ValidationError ({"error" : "Не удалось обновить тип номера" })
59+
60+ def perform_destroy (self , instance ):
61+ try :
62+ room_type_name = instance .name
63+ instance .delete ()
64+ logger .info (f"Удален тип номера: { room_type_name } " )
65+ except Exception as error :
66+ logger .error (f"Ошибка при удалении типа номера: { error } " , exc_info = True )
67+ raise serializers .ValidationError ({"error" : "Не удалось удалить тип номера" })
68+
4469
4570@extend_schema (tags = ["RoomImage" ])
4671class RoomImageViewSet (viewsets .ModelViewSet ):
@@ -65,6 +90,35 @@ def get_serializer_class(self):
6590 )
6691 return RoomImageWriteSerializer
6792
93+ def perform_create (self , serializer ):
94+ try :
95+ serializer .save ()
96+ logger .info (
97+ f"Загружена новая фотография id = { serializer .instance .id } для номера { serializer .instance .room } "
98+ )
99+ except Exception as error :
100+ logger .error (f"Ошибка при загрузке фотогрвфии: { error } " , exc_info = True )
101+ raise serializers .ValidationError (
102+ {"error" : "Не удалось загрузить фотографию" }
103+ )
104+
105+ def perform_update (self , serializer ):
106+ try :
107+ serializer .save ()
108+ logger .info (f"Фотография обновлена id = { serializer .instance .id } " )
109+ except Exception as error :
110+ logger .error (f"Ошибка при обновлении фотографии: { error } " , exc_info = True )
111+ raise serializers .ValidationError ({"error" : "Не удалось обновить фотографию" })
112+
113+ def perform_destroy (self , instance ):
114+ try :
115+ image_name = instance .image
116+ instance .delete ()
117+ logger .info (f"Фотография удалена: { image_name } " )
118+ except Exception as error :
119+ logger .error (f"Ошибка при удалении фотографии: { error } " , exc_info = True )
120+ raise serializers .ValidationError ({"error" : "Не удалось удалить фотографию" })
121+
68122
69123@extend_schema (
70124 tags = ["Room" ],
@@ -117,6 +171,31 @@ def get_queryset(self):
117171 logger .error (f"Ошибка при получении списка номеров: { error } " , exc_info = True )
118172 return Room .objects .none ()
119173
174+ def perform_create (self , serializer ):
175+ try :
176+ serializer .save ()
177+ logger .info (f"Добавлен новый номер: { serializer .instance .title } " )
178+ except Exception as error :
179+ logger .error (f"Ошибка при добавлении номера: { error } " , exc_info = True )
180+ raise serializers .ValidationError ({"error" : "Не удалось добавить номер" })
181+
182+ def perform_update (self , serializer ):
183+ try :
184+ serializer .save ()
185+ logger .info (f"Номер обновлен { serializer .instance .title } " )
186+ except Exception as error :
187+ logger .error (f"Ошибка при обновлении номера: { error } " , exc_info = True )
188+ raise serializers .ValidationError ({"error" : "Не удалось обновить номер" })
189+
190+ def perform_destroy (self , instance ):
191+ try :
192+ room_name = instance .title
193+ instance .delete ()
194+ logger .info (f"Номер { room_name } удален" )
195+ except Exception as error :
196+ logger .error (f"Ошибка при удалении номера: { error } " , exc_info = True )
197+ raise serializers .ValidationError ({"error" : "Не удалось удалить номер" })
198+
120199
121200@extend_schema (tags = ["Booking" ], summary = "Работа с бронированиями" )
122201class BookingViewSet (viewsets .ModelViewSet ):
@@ -170,10 +249,33 @@ def perform_create(self, serializer):
170249 try :
171250 serializer .save (user = self .request .user )
172251 logger .info (
173- f"Пользователь { self .request .user } создал бронирование для номера { serializer .instance .room } "
252+ f"Пользователь { self .request .user } создал бронирование для номера: { serializer .instance .room } "
174253 )
175254 except Exception as error :
176255 logger .error (f"Не удалось создать бронирование: { error } " , exc_info = True )
177256 raise serializers .ValidationError (
178257 {"error" : "Не Удалось создать бронирование" }
179258 )
259+
260+ def perform_update (self , serializer ):
261+ try :
262+ serializer .save (user = self .request .user )
263+ logger .info (
264+ f"Пользователь { self .request .user } обновил бронирование для номера: { serializer .instance .room } "
265+ )
266+ except Exception as error :
267+ logger .error (f"Ошибка при обновлении бронирования: { error } " , exc_info = True )
268+ raise serializers .ValidationError (
269+ {"error" : "Не удалось обновить бронирование" }
270+ )
271+
272+ def perform_destroy (self , instance ):
273+ try :
274+ booking_for_room = instance .room
275+ instance .delete ()
276+ logger .info (f"Бронирование для номера { booking_for_room } удалено" )
277+ except Exception as error :
278+ logger .error (f"Ошибка при удалении бронирования: { error } " , exc_info = True )
279+ raise serializers .ValidationError (
280+ {"error" : "Не удалось удалить бронирование" }
281+ )
0 commit comments