| 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 од менито и негови нови детали кои ги предава на сервисот да ја доврши логиката |