340 | | |
| 340 | {{{#!java |
| 341 | public void createBusiness(Business business) { |
| 342 | em.persist(business); |
| 343 | } |
| 344 | }}} |
| 345 | Се креира нов бизнис во база |
| 346 | {{{#!java |
| 347 | public void createBusiness(Business business, long userId) { |
| 348 | User u = usersManager.findUserByID(userId); |
| 349 | business.setUser(u); |
| 350 | businessDao.createBusiness(business); |
| 351 | } |
| 352 | }}} |
| 353 | Креирање бизнис во сервисот, каде што се наоѓа корисникот кој сака да го креира |
| 354 | {{{#!java |
| 355 | @PostMapping(path = "/business/add") |
| 356 | public void addBusiness(@RequestBody Business business, @RequestParam(name = "userId") long userId) |
| 357 | { |
| 358 | businessManager.createBusiness(business, userId); |
| 359 | } |
| 360 | }}} |
| 361 | Контролерот каде се зима цел објект бизнис од Frontend, па се повикува функцијата од сервисот |
349 | | |
| 370 | {{{#!java |
| 371 | public void createHotel(Hotels hotel) { |
| 372 | em.persist(hotel); |
| 373 | } |
| 374 | }}} |
| 375 | Се креира нов хотел во база |
| 376 | {{{#!java |
| 377 | public void createHotel(Hotels hotels, long userId) { |
| 378 | User u = usersManager.findUserByID(userId); |
| 379 | hotels.setOwner(u); |
| 380 | hotelDao.createHotel(hotels); |
| 381 | } |
| 382 | }}} |
| 383 | Во сервисот се наоѓа корисникот кој сака да отвори хотел, и истиот се сетира за поседител на хотелот |
| 384 | {{{#!java |
| 385 | @PostMapping(path = "/hotel/add") |
| 386 | public void add(@RequestBody Hotels hotel, @RequestParam(name = "userId") long userId) { |
| 387 | hotelManager.createHotel(hotel, userId); |
| 388 | } |
| 389 | }}} |
| 390 | Хотелот се зима како цел објект преку frontend и се зима id на user и се повикува функцијата од сервисот |
| 397 | {{{#!java |
| 398 | public void createRoom(HotelRoom hotelRoom) { |
| 399 | em.persist(hotelRoom); |
| 400 | } |
| 401 | }}} |
| 402 | Се крериа нова соба за одреден хотел |
| 403 | {{{#!java |
| 404 | public void createRoom(Long hotel, String hotelRoomDescription, String hotelRoomName, Boolean kitchenAvailable, Boolean airConditioning, Boolean balcony, double price, int numOfBeds) { |
| 405 | Hotel hotel = findHotelByID(hotel); |
| 406 | HotelRoom hotelRoom = new HotelRoom(hotel, hotelRoomDescription, hotelRoomName, kitchenAvailable, airConditioning, balcony, price, numOfBeds); |
| 407 | hotelDao.createRoom(hotelRoom); |
| 408 | } |
| 409 | }}} |
| 410 | Се креира нова соба во сервисот притоа што се зима id на хотелот на кој ќе се креира новата соба |
| 411 | {{{#!java |
| 412 | @PostMapping(path = "/hotel/rooms/add") |
| 413 | public void addRoom(@RequestBody HotelRoom room, |
| 414 | @RequestParam(name = "hotelId") long hotelId) { |
| 415 | hotelManager.createRoom(hotelId, room.getHotelRoomDescription(), room.getHotelRoomName(), room.getKitchenAvailable(), room.getAirConditioning(), room.getBalcony(), room.getPrice(), room.getNumOfBeds()); |
| 416 | } |
| 417 | }}} |
| 418 | Во контролерот се зима цел објект HotelRoom и се зима id на хотелот и се повикува функцијата за креирање соба од сервисот |
| 421 | {{{#!java |
| 422 | public void createRoomAvailible(HotelRoomAvailable hra) { |
| 423 | em.persist(hra); |
| 424 | } |
| 425 | }}} |
| 426 | Се креира слободна соба за хотелот во база |
| 427 | {{{#!java |
| 428 | public void createRoomAvailible(Long id, Date dateFrom, Date dateTo, int numberOfBeds) { |
| 429 | HotelRoom hotelRoom = findRoomById(id); |
| 430 | HotelRoomAvailable hra = new HotelRoomAvailable(hotelRoom, dateFrom, dateTo, numberOfBeds); |
| 431 | hotelDao.createRoomAvailible(hra); |
| 432 | } |
| 433 | }}} |
| 434 | Во сервисот се зима претходно креирана соба и се креира нов објект од тип HotelRoomAVailable кој чува за која соба од кога до кога е слободна |
| 435 | {{{#!java |
| 436 | @PostMapping(path = "/hotel/rooms/available/{id}/add") |
| 437 | public void addRoomAvailible(@RequestBody HotelRoomAvailable hotelRoomAvailable, |
| 438 | @PathVariable long id) |
| 439 | { |
| 440 | hotelManager.createRoomAvailible(id, hotelRoomAvailable.getDateFrom(), hotelRoomAvailable.getDateTo(), hotelRoomAvailable.getNumberOfBeds()); |
| 441 | } |
| 442 | }}} |
| 443 | Во контролерот се повикува функцијата од сервисот за креирање на соба, а прима цел објект од типот преку frontend и id за која соба станува збор |
362 | | ---- |
363 | | '''Покрај додавање на соби има и опција да се листаат резервациите кои се резервирани од страна на корисници заедно со нивните детали.''' |
| 446 | {{{#!java |
| 447 | public void editRoomAvailible(long hotelRoomAvailableId, HotelRoom hotelRoom, Date dateFrom, Date dateTo, int numberOfBeds) { |
| 448 | HotelRoomAvailable hr = findAvailibleRoomById(hotelRoomAvailableId); |
| 449 | hr.setHotelRoom(hotelRoom); |
| 450 | hr.setDateFrom(dateFrom); |
| 451 | hr.setDateTo(dateTo); |
| 452 | hr.setNumberOfBeds(numberOfBeds); |
| 453 | hotelDao.createRoomAvailible(hr); |
| 454 | } |
| 455 | }}} |
| 456 | Креирањето и менувањето во база е исто затоа не се наведува, а во сервисот се менуваат сите ново наведени детали за самата соба |
| 457 | {{{#!java |
| 458 | @PostMapping(path = "/hotel/rooms/available/edit") |
| 459 | public void editRoomAvailible(@RequestBody HotelRoomAvailable hotelRoomAvailable) |
| 460 | { |
| 461 | hotelManager.editRoomAvailible(hotelRoomAvailable.getHotelRoomAvailableId(), hotelRoomAvailable.getHotelRoom(), hotelRoomAvailable.getDateFrom(), hotelRoomAvailable.getDateTo(), hotelRoomAvailable.getNumberOfBeds()); |
| 462 | } |
| 463 | }}} |
| 464 | Во Котнтролерот се зима цел објект за слободната соба и таа се повикува функцијата од сервисот |
366 | | |
| 467 | {{{#!java |
| 468 | public List<HotelRoomReservations> findReservationByHotel(Hotels hotel) { |
| 469 | List<HotelRoom> hotelRooms = getRoomsOfHotel(hotel); |
| 470 | return em.createQuery("select hr from HotelRoomReservations hr where hr.hotelRoom.hotel = :hotel").setParameter("hotel", hotel).getResultList(); |
| 471 | } |
| 472 | }}} |
| 473 | Се зимаат сите резервации за одреден хотел од база |
| 474 | {{{#!java |
| 475 | public List<HotelReservationDto> findVaidReseravtionsByHotel(Long hotelId) { |
| 476 | Hotels hotel = findHotelByID(hotelId); |
| 477 | List<HotelRoomReservations> reservations = hotelDao.findReservationByHotel(hotel); |
| 478 | return reservations.stream() |
| 479 | .map(x -> new HotelReservationDto( |
| 480 | x.getUser(), |
| 481 | x.getHotelRoom(), |
| 482 | x.getDateFrom(), |
| 483 | x.getDateTo(), |
| 484 | x.getNumberOfBeds() |
| 485 | )).toList(); |
| 486 | } |
| 487 | }}} |
| 488 | Исто како и претходно се користи Dto со кој се па се враќаат сите резервации за одреден хотел |
| 489 | {{{#!java |
| 490 | @GetMapping(path = "/hotel/{id}/reservations/active") |
| 491 | public List<HotelReservationDto> getActiveReservationsForHotel(@PathVariable Long id) |
| 492 | { |
| 493 | return hotelManager.findVaidReseravtionsByHotel(id); |
| 494 | } |
| 495 | }}} |
| 496 | Се праќа само id на хотелот и во сервисот се прави логиката. |
| 500 | {{{#!java |
| 501 | public void editHotel(long hotelId, String hotelName, String hotelDescripiton, String hotelLocation, String hotelEDBS, Boolean parking, Boolean petFriendly, Boolean internetAvailable) { |
| 502 | Hotels hotel = hotelDao.findHotelByID(hotelId); |
| 503 | hotel.setHotelName(hotelName); |
| 504 | hotel.setHotelDescripiton(hotelDescripiton); |
| 505 | hotel.setHotelLocation(hotelLocation); |
| 506 | hotel.setHotelEDBS(hotelEDBS); |
| 507 | hotel.setParking(parking); |
| 508 | hotel.setPetFriendly(petFriendly); |
| 509 | hotel.setInternetAvailable(internetAvailable); |
| 510 | hotelDao.editHotel(hotel); |
| 511 | } |
| 512 | }}} |
| 513 | Зачувување во база е исто како и креирање притоа што не го покажуваме, а менувањето на хотел во сервисот ги менува сите потребни детали за истиот |
| 514 | {{{#!java |
| 515 | @PostMapping(path = "/hotel/edit") |
| 516 | public void edit(@RequestBody Hotels hotel) |
| 517 | { |
| 518 | hotelManager.editHotel(hotel.getHotelId(), hotel.getHotelName(), hotel.getHotelDescripiton(), hotel.getHotelLocation(), hotel.getHotelEDBS(), hotel.getParking(), hotel.getPetFriendly(), hotel.getInternetAvailable()); |
| 519 | } |
| 520 | }}} |
| 521 | Во контролерот се зима цел објект преку frontend и истиот се препраќа во функцијата од сервисот |
| 528 | {{{#!java |
| 529 | public void createRestaurant(Restaurant restaurant) { |
| 530 | em.persist(restaurant); |
| 531 | } |
| 532 | }}} |
| 533 | Се креира ресторан во базата |
| 534 | {{{#!java |
| 535 | public void createRestaurant(Restaurant restaurant, long userId) { |
| 536 | User u = usersManager.findUserByID(userId); |
| 537 | Restaurant r = new Restaurant(restaurant.getRestaurantName(), restaurant.getRestaurantLocation(), restaurant.getCousineType(), restaurant.getRestaurantDescription(), restaurant.getRestaurantEdbs(), u); |
| 538 | restaurantDao.createRestaurant(r); |
| 539 | } |
| 540 | }}} |
| 541 | Во сервисот се наоѓа корисникот кој го креира и се става ресторанот под негово име |
| 542 | {{{#!java |
| 543 | @PostMapping(path = "/restaurant/add") |
| 544 | public List<Restaurant> add(@RequestBody Restaurant restaurant, @RequestParam(name = "userId") long userId) { |
| 545 | |
| 546 | restaurantManager.createRestaurant(restaurant, userId); |
| 547 | return restaurantManager.getRestaurants(); |
| 548 | } |
| 549 | }}} |
| 550 | Во контролерот се зима ресторанот како цел објект и id на корисникот кој го креира, па се повикува функцијата за креирање ресторан од сервисот |
| 554 | {{{#!java |
| 555 | public void editRestaurant(long restaurantID, String restaurantName, String restaurantLocation, String cousineType, String restaurantDescription, String restaurantEdbs, User restaurantOwner) { |
| 556 | Restaurant res = findRestaurantByID(restaurantID); |
| 557 | res.setRestaurantName(restaurantName); |
| 558 | res.setRestaurantLocation(restaurantLocation); |
| 559 | res.setRestaurantEdbs(restaurantEdbs); |
| 560 | res.setRestaurantDescription(restaurantDescription); |
| 561 | res.setRestaurantOwner(restaurantOwner); |
| 562 | res.setCousineType(cousineType); |
| 563 | restaurantDao.createRestaurant(res); |
| 564 | } |
| 565 | }}} |
| 566 | Исто е креирање и менување на ресторан во база, затоа не го покажуваме. Во сервисот се зима ресторанот и се менуваат сите негови детали што поседителот ги изменил |
| 567 | {{{#!java |
| 568 | @PostMapping(path = "/restaurant/edit") |
| 569 | public List<Restaurant> edit(@RequestBody Restaurant restaurant) { |
| 570 | restaurantManager.editRestaurant(restaurant.getRestaurantID(), restaurant.getRestaurantName(), restaurant.getRestaurantLocation(), restaurant.getCousineType(), restaurant.getRestaurantDescription(), restaurant.getRestaurantEdbs(), restaurant.getRestaurantOwner()); |
| 571 | return restaurantManager.getRestaurants(); |
| 572 | } |
| 573 | }}} |
| 574 | Во контролерот се зима целиот ресторан како објект од frontend и тој се препраќа во сервисот |
| 582 | {{{#!java |
| 583 | public void addMenuToRestaurant(Menu menu) { |
| 584 | em.persist(menu); |
| 585 | } |
| 586 | }}} |
| 587 | Менито се зачувува во база |
| 588 | {{{#!java |
| 589 | public void addMenuToRestaurant(long restaurantId, Menu menu) { |
| 590 | Restaurant r = findRestaurantByID(restaurantId); |
| 591 | menu.setRestaurant(r); |
| 592 | restaurantDao.addMenuToRestaurant(menu); |
| 593 | } |
| 594 | }}} |
| 595 | Во сервисот се ноѓа ресторанот на кого ќе се додава нова ставка од менито и истото се додава |
| 596 | {{{#!java |
| 597 | @PostMapping(path = "/restaurant/{id}/menu/add") |
| 598 | public void addMenu(@PathVariable(name = "id") long restaurantId, @RequestBody Menu menu) { |
| 599 | restaurantManager.addMenuToRestaurant(restaurantId, menu); |
| 600 | } |
| 601 | }}} |
| 602 | Во котрнолерот се зима id на ресторан и цел објект од менито, и истото се препраќа на сервисот да ја прави логиката |
| 605 | {{{#!java |
| 606 | public void editMenu(long menuId, String name, String ingredients, double price) { |
| 607 | Menu menu = findMenuById(menuId); |
| 608 | menu.setName(name); |
| 609 | menu.setIngredients(ingredients); |
| 610 | menu.setPrice(price); |
| 611 | menuDao.editMenu(menu); |
| 612 | } |
| 613 | }}} |
| 614 | Повторно дека менување и креирање е исто не се покажува тој дел. Во сервисот се зима менито според id и истото се менува според новите детали кои се внесени |
| 615 | {{{#!java |
| 616 | @PostMapping(path = "/menu/{id}/edit") |
| 617 | public void editMenu(@PathVariable Long id, |
| 618 | @RequestParam String name, |
| 619 | @RequestParam String ingredients, |
| 620 | @RequestParam double price) |
| 621 | { |
| 622 | menuManager.editMenu(id, name, ingredients, price); |
| 623 | } |
| 624 | }}} |
| 625 | Контролерот прима id од менито и негови нови детали кои ги предава на сервисот да ја доврши логиката |