From b35503970d7806073069f8e4b3ee2198c6a8c2b9 Mon Sep 17 00:00:00 2001 From: Gunjan Mistry Date: Sat, 27 Mar 2021 12:03:00 +0530 Subject: [PATCH 01/20] add hotelier and shopier seed --- app/helpers/queries.py | 17 +++++++++++++++ app/routers/business/__init__.py | 5 ++++- app/routers/business/agency.py | 16 ++++++++++++++ app/routers/business/hotel.py | 16 ++++++++++++++ app/routers/business/shop.py | 16 ++++++++++++++ app/seed/seed.py | 13 ++++++++---- app/seed/seed_relations.py | 36 ++++++++++++++++++++++++++++++++ 7 files changed, 114 insertions(+), 5 deletions(-) create mode 100644 app/routers/business/agency.py create mode 100644 app/routers/business/hotel.py create mode 100644 app/routers/business/shop.py diff --git a/app/helpers/queries.py b/app/helpers/queries.py index 51acd42..40974ca 100644 --- a/app/helpers/queries.py +++ b/app/helpers/queries.py @@ -165,3 +165,20 @@ ORDER BY datetime DESC LIMIT $n """ + +GET_OWNED_HOTELS = """ +MATCH + (hotel:Hotel)-[:LOCATED_IN]->(city:City), + (hotel)-[:OWNS_HOTEL]-(hotelOwner:HotelOwner {uid:$hotelierId}) +OPTIONAL MATCH + (hotel)-[review:REVIEWED_HOTEL]-() +RETURN + hotel.uid AS id, + hotel.photos[0] AS coverUri, + hotel.name AS name, + city.name AS city, + AVG(review.rating) as rating, + hotel.locality AS locality, + hotel.price AS price +ORDER BY rating DESC +""" diff --git a/app/routers/business/__init__.py b/app/routers/business/__init__.py index 2d4a183..1ecbd3b 100644 --- a/app/routers/business/__init__.py +++ b/app/routers/business/__init__.py @@ -1,7 +1,10 @@ from fastapi import APIRouter -from . import auth +from . import agency, auth, hotel, shop router = APIRouter() router.include_router(auth.router, prefix="/auth") +router.include_router(hotel.router, prefix="/hotel") +router.include_router(shop.router, prefix="/shop") +router.include_router(agency.router, prefix="/agency") diff --git a/app/routers/business/agency.py b/app/routers/business/agency.py new file mode 100644 index 0000000..4ebe65e --- /dev/null +++ b/app/routers/business/agency.py @@ -0,0 +1,16 @@ +from fastapi import APIRouter, Depends, HTTPException, status +from neomodel import db +from pydantic import AnyUrl, BaseModel, confloat, constr + +from ...helpers.db_query import get_query_response +from ...helpers.queries import GET_OWNED_HOTELS +from ...models.database import Hotel, HotelOwner +from .auth import get_business + +router = APIRouter() + + +# user=Depends(get_business) +@router.get("/owned") +async def get_hotels(hotelier=Depends(get_business)): + return get_query_response(GET_OWNED_HOTELS, {"hotelierId": hotelier.uid}) diff --git a/app/routers/business/hotel.py b/app/routers/business/hotel.py new file mode 100644 index 0000000..4ebe65e --- /dev/null +++ b/app/routers/business/hotel.py @@ -0,0 +1,16 @@ +from fastapi import APIRouter, Depends, HTTPException, status +from neomodel import db +from pydantic import AnyUrl, BaseModel, confloat, constr + +from ...helpers.db_query import get_query_response +from ...helpers.queries import GET_OWNED_HOTELS +from ...models.database import Hotel, HotelOwner +from .auth import get_business + +router = APIRouter() + + +# user=Depends(get_business) +@router.get("/owned") +async def get_hotels(hotelier=Depends(get_business)): + return get_query_response(GET_OWNED_HOTELS, {"hotelierId": hotelier.uid}) diff --git a/app/routers/business/shop.py b/app/routers/business/shop.py new file mode 100644 index 0000000..4ebe65e --- /dev/null +++ b/app/routers/business/shop.py @@ -0,0 +1,16 @@ +from fastapi import APIRouter, Depends, HTTPException, status +from neomodel import db +from pydantic import AnyUrl, BaseModel, confloat, constr + +from ...helpers.db_query import get_query_response +from ...helpers.queries import GET_OWNED_HOTELS +from ...models.database import Hotel, HotelOwner +from .auth import get_business + +router = APIRouter() + + +# user=Depends(get_business) +@router.get("/owned") +async def get_hotels(hotelier=Depends(get_business)): + return get_query_response(GET_OWNED_HOTELS, {"hotelierId": hotelier.uid}) diff --git a/app/seed/seed.py b/app/seed/seed.py index 8cd22e2..044b49e 100644 --- a/app/seed/seed.py +++ b/app/seed/seed.py @@ -8,13 +8,15 @@ ) from .seed_blogs import seed_blog from .seed_bookings import seed_hotel, seed_package -from .seed_locations import seed_attraction, seed_city +from .seed_locations import seed_attraction, seed_city, seed_shops from .seed_relations import ( seed_city_review_relation, seed_hotel_city_relations, seed_hotel_like_relation, seed_hotel_review_relation, + seed_hotelier_relations, seed_package_review_relation, + seed_shopier_relation, ) from .seed_topic import seed_topic from .seed_users import seed_agency, seed_hotel_owner, seed_shop_owner, seed_traveller @@ -34,9 +36,10 @@ def seed_db(): packages = seed_package() seed_attraction() cities = seed_city() - seed_agency() - seed_hotel_owner() - seed_shop_owner() + shops = seed_shops() + agencies = seed_agency() + hotelier = seed_hotel_owner() + shopiers = seed_shop_owner() travellers = seed_traveller() blogs = seed_blog() topics = seed_topic() @@ -53,4 +56,6 @@ def seed_db(): ) # EXTRA: locations=cities+attractions seed_blog_comment_relation(travellers, blogs) seed_hotel_like_relation(travellers, hotels) + seed_hotelier_relations(hotelier, hotels) + seed_shopier_relation(shopiers, shops) print("Done.") diff --git a/app/seed/seed_relations.py b/app/seed/seed_relations.py index 21b9c30..472930e 100644 --- a/app/seed/seed_relations.py +++ b/app/seed/seed_relations.py @@ -309,3 +309,39 @@ def seed_hotel_like_relation(travellers, hotels): travellers["Selena"].likes_hotel.connect(hotels["hotel2"]) travellers["Selena"].likes_hotel.connect(hotels["hotel1"]) travellers["Selena"].likes_hotel.connect(hotels["hotel5"]) + + +def seed_hotelier_relations(hoteliers, hotels): + hoteliers["Sanjiv"].owns_hotel.connect(hotels["hotel1"]) + hoteliers["Sanjiv"].owns_hotel.connect(hotels["hotel2"]) + hoteliers["Sanjiv"].owns_hotel.connect(hotels["hotel3"]) + hoteliers["Sanjiv"].owns_hotel.connect(hotels["hotel5"]) + hoteliers["Vikas"].owns_hotel.connect(hotels["hotel6"]) + hoteliers["Vikas"].owns_hotel.connect(hotels["hotel7"]) + hoteliers["Vikas"].owns_hotel.connect(hotels["hotel8"]) + hoteliers["Vikas"].owns_hotel.connect(hotels["hotel9"]) + hoteliers["Ranveer"].owns_hotel.connect(hotels["hotel10"]) + hoteliers["Ranveer"].owns_hotel.connect(hotels["hotel11"]) + hoteliers["Ranveer"].owns_hotel.connect(hotels["hotel12"]) + hoteliers["Ranveer"].owns_hotel.connect(hotels["hotel13"]) + hoteliers["Ranveer"].owns_hotel.connect(hotels["hotel14"]) + hoteliers["Ranveer"].owns_hotel.connect(hotels["hotel15"]) + hoteliers["Ranveer"].owns_hotel.connect(hotels["hotel16"]) + + +def seed_shopier_relation(shopiers, shops): + shopiers["Mittal"].owns_shop.connect(shops["shop1"]) + shopiers["Mittal"].owns_shop.connect(shops["shop2"]) + shopiers["Mittal"].owns_shop.connect(shops["shop3"]) + shopiers["Mittal"].owns_shop.connect(shops["shop4"]) + shopiers["Mittal"].owns_shop.connect(shops["shop5"]) + shopiers["Adani"].owns_shop.connect(shops["shop6"]) + shopiers["Adani"].owns_shop.connect(shops["shop7"]) + shopiers["Adani"].owns_shop.connect(shops["shop8"]) + shopiers["Adani"].owns_shop.connect(shops["shop9"]) + shopiers["Adani"].owns_shop.connect(shops["shop10"]) + shopiers["Ambani"].owns_shop.connect(shops["shop11"]) + shopiers["Ambani"].owns_shop.connect(shops["shop12"]) + shopiers["Ambani"].owns_shop.connect(shops["shop13"]) + shopiers["Ambani"].owns_shop.connect(shops["shop14"]) + shopiers["Ambani"].owns_shop.connect(shops["shop15"]) From da1166600123b44421daf4e6b7021a5245cf26f7 Mon Sep 17 00:00:00 2001 From: Gunjan Mistry Date: Sat, 27 Mar 2021 12:50:50 +0530 Subject: [PATCH 02/20] add shop seed and hotel owned route --- app/helpers/queries.py | 32 +++++++++++++++----------------- app/routers/business/hotel.py | 2 +- app/seed/seed.py | 19 +------------------ app/seed/seed_relations.py | 5 ++--- app/seed/seed_users.py | 6 +++--- 5 files changed, 22 insertions(+), 42 deletions(-) diff --git a/app/helpers/queries.py b/app/helpers/queries.py index df3eca5..568a1ef 100644 --- a/app/helpers/queries.py +++ b/app/helpers/queries.py @@ -167,14 +167,6 @@ LIMIT $n """ -<<<<<<< HEAD -GET_OWNED_HOTELS = """ -MATCH - (hotel:Hotel)-[:LOCATED_IN]->(city:City), - (hotel)-[:OWNS_HOTEL]-(hotelOwner:HotelOwner {uid:$hotelierId}) -OPTIONAL MATCH - (hotel)-[review:REVIEWED_HOTEL]-() -======= GET_ALL_CITIES_QUERY = """ MATCH (city:City) RETURN @@ -194,19 +186,11 @@ toLower(hotel.name) CONTAINS $query AND hotel.price >= $budgetMin AND hotel.price <= $budgetMax ->>>>>>> origin/master RETURN hotel.uid AS id, hotel.photos[0] AS coverUri, hotel.name AS name, city.name AS city, -<<<<<<< HEAD - AVG(review.rating) as rating, - hotel.locality AS locality, - hotel.price AS price -ORDER BY rating DESC -""" -======= rating, hotel.locality AS locality, round(distance( @@ -256,6 +240,21 @@ date: booking.booking_date } AS booking """ +GET_OWNED_HOTELS_QUERY = """ +MATCH (hotelowner:HotelOwner {uid:"243c20dfea6e482c9d1930434c8a713f"})-[:OWNS_HOTEL]-(hotel:Hotel), + (hotel)-[:LOCATED_IN]-(city:City) +OPTIONAL MATCH + (hotel)-[review:REVIEWED_HOTEL]-() +RETURN + hotel.uid AS id, + hotel.photos[0] AS coverUri, + hotel.name AS name, + city.name AS city, + AVG(review.rating) as rating, + hotel.locality AS locality, + hotel.price AS price +ORDER BY rating DESC +""" GET_PACKAGE_DETAILS_QUERY = """ MATCH @@ -408,4 +407,3 @@ } AS booking, agency """ ->>>>>>> origin/master diff --git a/app/routers/business/hotel.py b/app/routers/business/hotel.py index 4ebe65e..feaffc0 100644 --- a/app/routers/business/hotel.py +++ b/app/routers/business/hotel.py @@ -3,7 +3,7 @@ from pydantic import AnyUrl, BaseModel, confloat, constr from ...helpers.db_query import get_query_response -from ...helpers.queries import GET_OWNED_HOTELS +from ...helpers.queries import GET_OWNED_HOTELS_QUERY from ...models.database import Hotel, HotelOwner from .auth import get_business diff --git a/app/seed/seed.py b/app/seed/seed.py index 2126e95..e6f8b0e 100644 --- a/app/seed/seed.py +++ b/app/seed/seed.py @@ -7,23 +7,15 @@ seed_blog_topic_relation, ) from .seed_blogs import seed_blog -<<<<<<< HEAD -from .seed_bookings import seed_hotel, seed_package -from .seed_locations import seed_attraction, seed_city, seed_shops -======= from .seed_bookings import seed_hotel, seed_package, seed_package_day -from .seed_locations import seed_attraction, seed_city ->>>>>>> origin/master +from .seed_locations import seed_attraction, seed_city, seed_shops from .seed_relations import ( seed_city_review_relation, seed_hotel_city_relations, seed_hotel_like_relation, seed_hotel_review_relation, -<<<<<<< HEAD seed_hotelier_relations, -======= seed_package_agency, ->>>>>>> origin/master seed_package_review_relation, seed_shopier_relation, ) @@ -45,16 +37,10 @@ def seed_db(): packages = seed_package() seed_attraction() cities = seed_city() -<<<<<<< HEAD shops = seed_shops() agencies = seed_agency() hotelier = seed_hotel_owner() shopiers = seed_shop_owner() -======= - agencies = seed_agency() - seed_hotel_owner() - seed_shop_owner() ->>>>>>> origin/master travellers = seed_traveller() blogs = seed_blog() topics = seed_topic() @@ -72,10 +58,7 @@ def seed_db(): ) # EXTRA: locations=cities+attractions seed_blog_comment_relation(travellers, blogs) seed_hotel_like_relation(travellers, hotels) -<<<<<<< HEAD seed_hotelier_relations(hotelier, hotels) seed_shopier_relation(shopiers, shops) -======= seed_package_agency(packages, agencies) ->>>>>>> origin/master print("Done.") diff --git a/app/seed/seed_relations.py b/app/seed/seed_relations.py index 7bb5929..ee34081 100644 --- a/app/seed/seed_relations.py +++ b/app/seed/seed_relations.py @@ -311,7 +311,6 @@ def seed_hotel_like_relation(travellers, hotels): travellers["Selena"].likes_hotel.connect(hotels["hotel5"]) -<<<<<<< HEAD def seed_hotelier_relations(hoteliers, hotels): hoteliers["Sanjiv"].owns_hotel.connect(hotels["hotel1"]) hoteliers["Sanjiv"].owns_hotel.connect(hotels["hotel2"]) @@ -346,7 +345,8 @@ def seed_shopier_relation(shopiers, shops): shopiers["Ambani"].owns_shop.connect(shops["shop13"]) shopiers["Ambani"].owns_shop.connect(shops["shop14"]) shopiers["Ambani"].owns_shop.connect(shops["shop15"]) -======= + + def seed_package_agency(packages, agencies): packages["package1"].offered_by.connect(agencies["DNO"]) packages["package2"].offered_by.connect(agencies["Manish"]) @@ -354,4 +354,3 @@ def seed_package_agency(packages, agencies): packages["package4"].offered_by.connect(agencies["DNO"]) packages["package5"].offered_by.connect(agencies["Manish"]) packages["package6"].offered_by.connect(agencies["Lohana"]) ->>>>>>> origin/master diff --git a/app/seed/seed_users.py b/app/seed/seed_users.py index f4692db..08aa57f 100644 --- a/app/seed/seed_users.py +++ b/app/seed/seed_users.py @@ -155,7 +155,7 @@ def seed_hotel_owner(): is_verified=True, latitude=28.644800, longitude=77.216721, - ), + ).save(), Ranveer=HotelOwner( name="Ranveer Bhar", phone="+919930989222", @@ -163,7 +163,7 @@ def seed_hotel_owner(): is_verified=True, latitude=19.076090, longitude=72.877426, - ), + ).save(), Vikas=HotelOwner( name="Vikas Khaana", phone="+919930989233", @@ -174,5 +174,5 @@ def seed_hotel_owner(): is_verified=True, latitude=19.076090, longitude=72.877426, - ), + ).save(), ) From 5246b111161968fa08c569f02a7f22aba1a4ff72 Mon Sep 17 00:00:00 2001 From: Gunjan Mistry Date: Sat, 27 Mar 2021 14:13:14 +0530 Subject: [PATCH 03/20] add agency owned route --- app/helpers/queries.py | 26 +++++++++++++++++++++++++- app/routers/business/agency.py | 6 +++--- app/routers/business/hotel.py | 2 +- 3 files changed, 29 insertions(+), 5 deletions(-) diff --git a/app/helpers/queries.py b/app/helpers/queries.py index 568a1ef..b04e247 100644 --- a/app/helpers/queries.py +++ b/app/helpers/queries.py @@ -241,7 +241,7 @@ } AS booking """ GET_OWNED_HOTELS_QUERY = """ -MATCH (hotelowner:HotelOwner {uid:"243c20dfea6e482c9d1930434c8a713f"})-[:OWNS_HOTEL]-(hotel:Hotel), +MATCH (hotelowner:HotelOwner {uid:$hotelierId})-[:OWNS_HOTEL]-(hotel:Hotel), (hotel)-[:LOCATED_IN]-(city:City) OPTIONAL MATCH (hotel)-[review:REVIEWED_HOTEL]-() @@ -407,3 +407,27 @@ } AS booking, agency """ + + +GET_OFFERED_PACKAGES_QUERY = """ +MATCH + (agency:Agency {uid:$agencyId})-[:OFFERS_PACKAGE]-(package) +OPTIONAL MATCH + (package)-[review:REVIEWED_PACKAGE]-() +CALL { + WITH package + MATCH + (package)-[dayRel:HAS_DAY]-(packageDay:PackageDay) + WITH dayRel.day AS day, packageDay + ORDER BY day + RETURN + COUNT(day) AS days +} +RETURN + package.uid as id, + package.name as name, + package.price as price, + package.photos[0] as coverUri, + AVG(review.rating) as rating, + days +""" diff --git a/app/routers/business/agency.py b/app/routers/business/agency.py index 4ebe65e..67f7956 100644 --- a/app/routers/business/agency.py +++ b/app/routers/business/agency.py @@ -3,7 +3,7 @@ from pydantic import AnyUrl, BaseModel, confloat, constr from ...helpers.db_query import get_query_response -from ...helpers.queries import GET_OWNED_HOTELS +from ...helpers.queries import GET_OFFERED_PACKAGES_QUERY from ...models.database import Hotel, HotelOwner from .auth import get_business @@ -12,5 +12,5 @@ # user=Depends(get_business) @router.get("/owned") -async def get_hotels(hotelier=Depends(get_business)): - return get_query_response(GET_OWNED_HOTELS, {"hotelierId": hotelier.uid}) +async def get_offered_packages(agency=Depends(get_business)): + return get_query_response(GET_OFFERED_PACKAGES_QUERY, {"agencyId": agency.uid}) diff --git a/app/routers/business/hotel.py b/app/routers/business/hotel.py index feaffc0..9c74f02 100644 --- a/app/routers/business/hotel.py +++ b/app/routers/business/hotel.py @@ -12,5 +12,5 @@ # user=Depends(get_business) @router.get("/owned") -async def get_hotels(hotelier=Depends(get_business)): +async def get_owned_hotels(hotelier=Depends(get_business)): return get_query_response(GET_OWNED_HOTELS, {"hotelierId": hotelier.uid}) From 157300bd8e9e4d8aca92cbbdccca39589ceaa02c Mon Sep 17 00:00:00 2001 From: Gunjan Mistry Date: Sat, 27 Mar 2021 16:07:46 +0530 Subject: [PATCH 04/20] shop relation seed --- app/seed/seed.py | 4 ++ app/seed/seed_relations.py | 126 +++++++++++++++++++++++++++++++++++++ 2 files changed, 130 insertions(+) diff --git a/app/seed/seed.py b/app/seed/seed.py index e6f8b0e..ddefc04 100644 --- a/app/seed/seed.py +++ b/app/seed/seed.py @@ -17,6 +17,8 @@ seed_hotelier_relations, seed_package_agency, seed_package_review_relation, + seed_shop_like_relation, + seed_shop_review_relation, seed_shopier_relation, ) from .seed_topic import seed_topic @@ -61,4 +63,6 @@ def seed_db(): seed_hotelier_relations(hotelier, hotels) seed_shopier_relation(shopiers, shops) seed_package_agency(packages, agencies) + seed_shop_review_relation(travellers, shops) + seed_shop_like_relation(travellers, shops) print("Done.") diff --git a/app/seed/seed_relations.py b/app/seed/seed_relations.py index ee34081..29f557c 100644 --- a/app/seed/seed_relations.py +++ b/app/seed/seed_relations.py @@ -354,3 +354,129 @@ def seed_package_agency(packages, agencies): packages["package4"].offered_by.connect(agencies["DNO"]) packages["package5"].offered_by.connect(agencies["Manish"]) packages["package6"].offered_by.connect(agencies["Lohana"]) + + +def seed_shop_review_relation(travellers, shops): + travellers["Selena"].reviewed_shop.connect( + shops["shop1"], + { + "rating": 3, + "review": "nice shop, really polite customer service, cute stuff", + "photos": ["https://picsum.photos/1090"], + }, + ) + travellers["Justin"].reviewed_shop.connect( + shops["shop15"], + { + "rating": 4, + "review": "nice shop, really polite customer service, cute stuff", + "photos": ["https://picsum.photos/1090"], + }, + ) + travellers["Justin"].reviewed_shop.connect( + shops["shop2"], + { + "rating": 5, + "review": "nice shop, really polite customer service, cute stuff", + "photos": ["https://picsum.photos/1090"], + }, + ) + travellers["Lucifer"].reviewed_shop.connect( + shops["shop14"], + { + "rating": 4, + "review": "nice shop, really polite customer service, cute stuff", + "photos": ["https://picsum.photos/1090"], + }, + ) + travellers["Selena"].reviewed_shop.connect( + shops["shop13"], + { + "rating": 4, + "review": "nice shop, really polite customer service, cute stuff", + "photos": ["https://picsum.photos/1090"], + }, + ) + travellers["Selena"].reviewed_shop.connect( + shops["shop12"], + { + "rating": 5, + "review": "nice shop, really polite customer service, cute stuff", + "photos": ["https://picsum.photos/1090"], + }, + ) + travellers["Ester"].reviewed_shop.connect( + shops["shop11"], + { + "rating": 3, + "review": "nice shop, really polite customer service, cute stuff", + "photos": ["https://picsum.photos/1090"], + }, + ) + travellers["Ester"].reviewed_shop.connect( + shops["shop10"], + { + "rating": 3, + "review": "nice shop, really polite customer service, cute stuff", + "photos": ["https://picsum.photos/1090"], + }, + ) + travellers["Justin"].reviewed_shop.connect( + shops["shop4"], + { + "rating": 3, + "review": "nice shop, really polite customer service, cute stuff", + "photos": ["https://picsum.photos/1090"], + }, + ) + travellers["Selena"].reviewed_shop.connect( + shops["shop9"], + { + "rating": 5, + "review": "nice shop, really polite customer service, cute stuff", + "photos": ["https://picsum.photos/1090"], + }, + ) + travellers["Selena"].reviewed_shop.connect( + shops["shop5"], + { + "rating": 4, + "review": "nice shop, really polite customer service, cute stuff", + "photos": ["https://picsum.photos/1090"], + }, + ) + travellers["Justin"].reviewed_shop.connect( + shops["shop8"], + { + "rating": 5, + "review": "nice shop, really polite customer service, cute stuff", + "photos": ["https://picsum.photos/1090"], + }, + ) + travellers["Justin"].reviewed_shop.connect( + shops["shop6"], + { + "rating": 4, + "review": "nice shop, really polite customer service, cute stuff", + "photos": ["https://picsum.photos/1090"], + }, + ) + travellers["Ester"].reviewed_shop.connect( + shops["shop6"], + { + "rating": 5, + "review": "nice shop, really polite customer service, cute stuff", + "photos": ["https://picsum.photos/1090"], + }, + ) + + +def seed_shop_like_relation(travellers, shops): + travellers["Justin"].likes_shop.connect(shops["shop1"]) + travellers["Justin"].likes_shop.connect(shops["shop3"]) + travellers["Lucifer"].likes_shop.connect(shops["shop5"]) + travellers["Lucifer"].likes_shop.connect(shops["shop6"]) + travellers["Selena"].likes_shop.connect(shops["shop2"]) + travellers["Selena"].likes_shop.connect(shops["shop1"]) + travellers["Selena"].likes_shop.connect(shops["shop5"]) + travellers["Selena"].likes_shop.connect(shops["shop4"]) From 60c8f1d358fa529e5d366331a44cf84922664db3 Mon Sep 17 00:00:00 2001 From: Gunjan Mistry Date: Sat, 27 Mar 2021 16:44:39 +0530 Subject: [PATCH 05/20] add shop owned route --- app/helpers/queries.py | 11 +++++++++++ app/routers/business/hotel.py | 1 - app/routers/business/shop.py | 7 +++---- app/seed/seed_locations.py | 30 +++++++++++++++--------------- 4 files changed, 29 insertions(+), 20 deletions(-) diff --git a/app/helpers/queries.py b/app/helpers/queries.py index b04e247..bb19fe8 100644 --- a/app/helpers/queries.py +++ b/app/helpers/queries.py @@ -431,3 +431,14 @@ AVG(review.rating) as rating, days """ + +GET_OWNED_SHOPS_QUERY = """ +MATCH (shopier:ShopOwner {uid:$shopierId})-[:OWNS_SHOP]-(shop:Shop) +OPTIONAL MATCH (shop)-[review:REVIEWED_SHOP]-() +RETURN + shop.uid as id, + shop.name as name, + avg(review.rating) as rating, + shop.photos[0] as coverUri +ORDER BY rating DESC +""" diff --git a/app/routers/business/hotel.py b/app/routers/business/hotel.py index 9c74f02..aa7adac 100644 --- a/app/routers/business/hotel.py +++ b/app/routers/business/hotel.py @@ -4,7 +4,6 @@ from ...helpers.db_query import get_query_response from ...helpers.queries import GET_OWNED_HOTELS_QUERY -from ...models.database import Hotel, HotelOwner from .auth import get_business router = APIRouter() diff --git a/app/routers/business/shop.py b/app/routers/business/shop.py index 4ebe65e..d3605ad 100644 --- a/app/routers/business/shop.py +++ b/app/routers/business/shop.py @@ -3,8 +3,7 @@ from pydantic import AnyUrl, BaseModel, confloat, constr from ...helpers.db_query import get_query_response -from ...helpers.queries import GET_OWNED_HOTELS -from ...models.database import Hotel, HotelOwner +from ...helpers.queries import GET_OWNED_SHOPS_QUERY from .auth import get_business router = APIRouter() @@ -12,5 +11,5 @@ # user=Depends(get_business) @router.get("/owned") -async def get_hotels(hotelier=Depends(get_business)): - return get_query_response(GET_OWNED_HOTELS, {"hotelierId": hotelier.uid}) +async def get_owned_shops(shopier=Depends(get_business)): + return get_query_response(GET_OWNED_SHOPS_QUERY, {"shopierId": shopier.uid}) diff --git a/app/seed/seed_locations.py b/app/seed/seed_locations.py index 8236aba..6828882 100644 --- a/app/seed/seed_locations.py +++ b/app/seed/seed_locations.py @@ -218,91 +218,91 @@ def seed_shops(): description="Best Food ever", latitude=18.2204, longitude=72.5301, - photos=[], + photos=["https://picsum.photos/1099"], ).save(), shop2=Shop( name="Fast and Furios Fashion", description="Best Fashion Ever", latitude=19.1288, longitude=72.9182, - photos=[], + photos=["https://picsum.photos/1099"], ).save(), shop3=Shop( name="Beauty and Beat", description="Best glamourous fashion store", latitude=19.99356, longitude=72.16344, - photos=[], + photos=["https://picsum.photos/1099"], ).save(), shop4=Shop( name="Memories Artical Shop", description="Artical Shop for Art", latitude=28.56473, longitude=77.42943, - photos=[], + photos=["https://picsum.photos/1099"], ).save(), shop5=Shop( name="Gabrail Choor Gift Shop", description="Gift Shop from famous choor lane", latitude=28.266, longitude=77.091, - photos=[], + photos=["https://picsum.photos/1099"], ).save(), shop6=Shop( name="Fire Food", description="Most Spicy Food Ever", latitude=23.512, longitude=72.055, - photos=[], + photos=["https://picsum.photos/1099"], ).save(), shop7=Shop( name="Fcuk Fashion", description="Exclusive Fcuk store", latitude=22.960, longitude=72.997, - photos=[], + photos=["https://picsum.photos/1099"], ).save(), shop8=Shop( name="Free Gift Shop", description="Free Gift Shops", latitude=23.90022, longitude=72.604, - photos=[], + photos=["https://picsum.photos/1099"], ).save(), shop9=Shop( name="Esctasy Food", description="A Spine Tingling Food", latitude=18.5181, longitude=73.8533, - photos=[], + photos=["https://picsum.photos/1099"], ).save(), shop10=Shop( name="depresso", description="A differnet Coffee Shop", latitude=18.5523, longitude=73.9015, - photos=[], + photos=["https://picsum.photos/1099"], ).save(), shop11=Shop( name="Bang Bang Gift Shop", description="Gift Shop for those who bang", latitude=18.098, longitude=73.535, - photos=[], + photos=["https://picsum.photos/1099"], ).save(), shop12=Shop( name="Smash Street", description="Smashing Street Food", latitude=26.6267, longitude=76.2089, - photos=[], + photos=["https://picsum.photos/1099"], ).save(), shop13=Shop( name="Mark 42 Gift Shop", description="A Future Tech Gift Shop", latitude=26.258, longitude=75.237, - photos=[], + photos=["https://picsum.photos/1099"], ).save(), shop14=Shop( name="Jantar Mantar Gift Shop", @@ -312,13 +312,13 @@ def seed_shops(): ), latitude=26.9248, longitude=75.8246, - photos=[], + photos=["https://picsum.photos/1099"], ).save(), shop15=Shop( name="Sinhagad Fort Gift Shop", description="Sinhagad is a hill fortress Gift Shop", latitude=18.21563, longitude=73.451897, - photos=[], + photos=["https://picsum.photos/1099"], ).save(), ) From cd9dc84000b938d73880a1a3af58fbee82d2bd46 Mon Sep 17 00:00:00 2001 From: Gunjan Mistry Date: Sun, 28 Mar 2021 14:16:50 +0530 Subject: [PATCH 06/20] add new seed --- app/seed/seed.py | 6 +- app/seed/seed_blog_relation.py | 62 +++---- app/seed/seed_bookings.py | 8 +- app/seed/seed_locations.py | 100 ++++++++--- app/seed/seed_relations.py | 307 +++++++++++++++++++-------------- app/seed/seed_topic.py | 8 +- app/seed/seed_users.py | 38 ++-- 7 files changed, 316 insertions(+), 213 deletions(-) diff --git a/app/seed/seed.py b/app/seed/seed.py index ddefc04..65fe454 100644 --- a/app/seed/seed.py +++ b/app/seed/seed.py @@ -10,6 +10,7 @@ from .seed_bookings import seed_hotel, seed_package, seed_package_day from .seed_locations import seed_attraction, seed_city, seed_shops from .seed_relations import ( + seed_attraction_city_relation, seed_city_review_relation, seed_hotel_city_relations, seed_hotel_like_relation, @@ -17,6 +18,7 @@ seed_hotelier_relations, seed_package_agency, seed_package_review_relation, + seed_shop_city_relation, seed_shop_like_relation, seed_shop_review_relation, seed_shopier_relation, @@ -37,7 +39,7 @@ def seed_db(): print("Seeding Nodes...") hotels = seed_hotel() packages = seed_package() - seed_attraction() + attractions = seed_attraction() cities = seed_city() shops = seed_shops() agencies = seed_agency() @@ -65,4 +67,6 @@ def seed_db(): seed_package_agency(packages, agencies) seed_shop_review_relation(travellers, shops) seed_shop_like_relation(travellers, shops) + seed_attraction_city_relation(attractions, cities) + seed_shop_city_relation(shops, cities) print("Done.") diff --git a/app/seed/seed_blog_relation.py b/app/seed/seed_blog_relation.py index 0742a25..dbfef3b 100644 --- a/app/seed/seed_blog_relation.py +++ b/app/seed/seed_blog_relation.py @@ -1,72 +1,72 @@ def seed_blog_relations(travellers, blogs): - travellers["Jenovah"].author_of.connect(blogs["blog1"]) - travellers["Ester"].author_of.connect(blogs["blog2"]) - travellers["Ester"].author_of.connect(blogs["blog3"]) - travellers["Jenovah"].author_of.connect(blogs["blog4"]) - travellers["Ester"].author_of.connect(blogs["blog5"]) - travellers["Lucifer"].author_of.connect(blogs["blog6"]) + travellers["traveller1"].author_of.connect(blogs["blog1"]) + travellers["traveller1"].author_of.connect(blogs["blog2"]) + travellers["traveller1"].author_of.connect(blogs["blog3"]) + travellers["traveller1"].author_of.connect(blogs["blog4"]) + travellers["traveller1"].author_of.connect(blogs["blog5"]) + travellers["traveller3"].author_of.connect(blogs["blog6"]) - travellers["Justin"].likes_blog.connect(blogs["blog1"]) - travellers["Justin"].likes_blog.connect(blogs["blog3"]) - travellers["Justin"].likes_blog.connect(blogs["blog5"]) - travellers["Justin"].likes_blog.connect(blogs["blog6"]) + travellers["traveller4"].likes_blog.connect(blogs["blog1"]) + travellers["traveller4"].likes_blog.connect(blogs["blog3"]) + travellers["traveller4"].likes_blog.connect(blogs["blog5"]) + travellers["traveller4"].likes_blog.connect(blogs["blog6"]) - travellers["Selena"].likes_blog.connect(blogs["blog2"]) - travellers["Selena"].likes_blog.connect(blogs["blog3"]) - travellers["Selena"].likes_blog.connect(blogs["blog4"]) + travellers["traveller4"].likes_blog.connect(blogs["blog2"]) + travellers["traveller4"].likes_blog.connect(blogs["blog3"]) + travellers["traveller4"].likes_blog.connect(blogs["blog4"]) def seed_blog_topic_relation(topics, blogs): - blogs["blog1"].tagged_topic.connect(topics["adventure"]) - blogs["blog2"].tagged_topic.connect(topics["cuisine"]) - blogs["blog3"].tagged_topic.connect(topics["adventure"]) - blogs["blog4"].tagged_topic.connect(topics["adventure"]) - blogs["blog5"].tagged_topic.connect(topics["cuisine"]) - blogs["blog6"].tagged_topic.connect(topics["history"]) + blogs["blog1"].tagged_topic.connect(topics["topic1"]) + blogs["blog2"].tagged_topic.connect(topics["topic2"]) + blogs["blog3"].tagged_topic.connect(topics["topic1"]) + blogs["blog4"].tagged_topic.connect(topics["topic1"]) + blogs["blog5"].tagged_topic.connect(topics["topic2"]) + blogs["blog6"].tagged_topic.connect(topics["topic3"]) def seed_blog_location_relation(cities, blogs): - blogs["blog1"].tagged_location.connect(cities["Mumbai"]) - blogs["blog2"].tagged_location.connect(cities["Pune"]) - blogs["blog3"].tagged_location.connect(cities["Pune"]) - blogs["blog4"].tagged_location.connect(cities["Mumbai"]) - blogs["blog5"].tagged_location.connect(cities["Delhi"]) - blogs["blog6"].tagged_location.connect(cities["Delhi"]) + blogs["blog1"].tagged_location.connect(cities["city1"]) + blogs["blog2"].tagged_location.connect(cities["city2"]) + blogs["blog3"].tagged_location.connect(cities["city2"]) + blogs["blog4"].tagged_location.connect(cities["city1"]) + blogs["blog5"].tagged_location.connect(cities["city3"]) + blogs["blog6"].tagged_location.connect(cities["city3"]) def seed_blog_comment_relation(travellers, blogs): blogs["blog1"].commented_by.connect( - travellers["Selena"], + travellers["traveller4"], { "content": "Nice Blog was really helpful and informative got know alot of in and out" }, ) blogs["blog6"].commented_by.connect( - travellers["Justin"], + travellers["traveller4"], { "content": "Nice Blog was really helpful and informative got know alot of in and out" }, ) blogs["blog5"].commented_by.connect( - travellers["Lucifer"], + travellers["traveller3"], { "content": "Nice Blog was really helpful and informative got know alot of in and out" }, ) blogs["blog4"].commented_by.connect( - travellers["Ester"], + travellers["traveller1"], { "content": "Nice Blog was really helpful and informative got know alot of in and out" }, ) blogs["blog3"].commented_by.connect( - travellers["Justin"], + travellers["traveller4"], { "content": "Nice Blog was really helpful and informative got know alot of in and out" }, ) blogs["blog2"].commented_by.connect( - travellers["Lucifer"], + travellers["traveller3"], { "content": "Nice Blog was really helpful and informative got know alot of in and out" }, diff --git a/app/seed/seed_bookings.py b/app/seed/seed_bookings.py index 476eb4c..00e109c 100644 --- a/app/seed/seed_bookings.py +++ b/app/seed/seed_bookings.py @@ -456,10 +456,10 @@ def seed_package_day(packages, cities): description="Return to pune in flight", ).save() - day1.visits_city.connect(cities["Pune"]) - day3.visits_city.connect(cities["Mumbai"]) - day4.visits_city.connect(cities["Mumbai"]) - day5.visits_city.connect(cities["Pune"]) + day1.visits_city.connect(cities["city2"]) + day3.visits_city.connect(cities["city1"]) + day4.visits_city.connect(cities["city1"]) + day5.visits_city.connect(cities["city2"]) packages["package1"].has_day.connect(day1, {"day": 1}) packages["package1"].has_day.connect(day2, {"day": 2}) diff --git a/app/seed/seed_locations.py b/app/seed/seed_locations.py index 6828882..e9145d4 100644 --- a/app/seed/seed_locations.py +++ b/app/seed/seed_locations.py @@ -3,21 +3,21 @@ def seed_city(): return dict( - Mumbai=City( + city1=City( name="Mumbai", description="A city of dreams that never sleeps", latitude=19.076090, longitude=72.877426, photos=["https://picsum.photos/1099"], ).save(), - Delhi=City( + city2=City( name="Delhi", description="Dillbar Dilli", latitude=28.644800, longitude=77.216721, photos=["https://picsum.photos/1100"], ).save(), - Ahmedabad=City( + city3=City( name="Ahmedabad", description="Aapnu amdavad", latitude=23.033863, @@ -26,14 +26,14 @@ def seed_city(): "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQB-L9mqh5Eo2Zpdh7IfnLlPXj6BQSTnR20Gw&usqp=CAU" ], ).save(), - Jaipur=City( + city4=City( name="Jaipur", description="Padharo mhare desh", latitude=26.922070, longitude=75.778885, photos=["https://picsum.photos/1102"], ).save(), - Pune=City( + city5=City( name="Pune", description="Punari parimano", latitude=18.516726, @@ -47,7 +47,7 @@ def seed_city(): def seed_attraction(): return dict( - GOI=Attraction( + attraction1=Attraction( name="Gateway of India", description=( "Gateway of India, the best place to visit in Mumbai, " @@ -58,7 +58,7 @@ def seed_attraction(): longitude=72.8301, photos=[], ).save(), - sgnp=Attraction( + attraction2=Attraction( name="Sanjay Gandhi National Park", description=( "Sprawling over an area of 104 sq. km. of land, this is one of " @@ -69,7 +69,7 @@ def seed_attraction(): longitude=72.9182, photos=[], ).save(), - rcwm=Attraction( + attraction3=Attraction( name="Red Carpet Wax Museum", description=( "The array of wax statues displayed at The Red Carpet wax " @@ -79,7 +79,7 @@ def seed_attraction(): longitude=72.916344, photos=[], ).save(), - trf=Attraction( + attraction4=Attraction( name="The Red Fort", description=( "The beautiful Red Fort was built by Shah Jahan in 1648 and " @@ -89,7 +89,7 @@ def seed_attraction(): longitude=77.242943, photos=[], ).save(), - qm=Attraction( + attraction5=Attraction( name=" Qutub Minar", description=( 'Qutab Minar, is a minaret and "victory tower" that forms part of ' @@ -100,7 +100,7 @@ def seed_attraction(): longitude=77.2091, photos=[], ).save(), - dhnv=Attraction( + attraction6=Attraction( name="Dada Hari Ni Vav", description=( "Built around 500 years ago under the reign of Mehmud Begda, " @@ -110,7 +110,7 @@ def seed_attraction(): longitude=72.6055, photos=[], ).save(), - sr=Attraction( + attraction7=Attraction( name="Sarkhej Roza", description=( "Located 7 kilometres southwest of Ahmedabad in the village " @@ -121,7 +121,7 @@ def seed_attraction(): longitude=72.4997, photos=[], ).save(), - Balvatika=Attraction( + attraction8=Attraction( name="Balvatika", description=( "Located on top of a hill in Ahmedabad, Balvatika is a " @@ -131,7 +131,7 @@ def seed_attraction(): longitude=72.3604, photos=[], ).save(), - swp=Attraction( + attraction9=Attraction( name="Shaniwar Wada Palace", description=( "A prominent historical landmark in Pune is Shaniwarwada which " @@ -141,7 +141,7 @@ def seed_attraction(): longitude=73.8533, photos=[], ).save(), - akp=Attraction( + attraction10=Attraction( name="Aga Khan Palace", description=( "Aga Khan Palace which was built by Sultan Muhammed Shah Aga " @@ -151,7 +151,7 @@ def seed_attraction(): longitude=73.9015, photos=[], ).save(), - dht=Attraction( + attraction11=Attraction( name="Dagdusheth Halwai Temple", description=( "A famous Ganesha temple in Pune is Shreemath Dagdusheth " @@ -161,7 +161,7 @@ def seed_attraction(): longitude=73.8535, photos=[], ).save(), - gbs=Attraction( + attraction12=Attraction( name="Gurudwara Bangle Sahib", description=( "Gurudwara Bangla Sahib is one of the most prominent Sikh " @@ -171,7 +171,7 @@ def seed_attraction(): longitude=77.2089, photos=[], ).save(), - cp=Attraction( + attraction13=Attraction( name="City Palace", description=( "City Palace has stood at the heart of the Old City of Jaipur " @@ -185,7 +185,7 @@ def seed_attraction(): longitude=75.8237, photos=[], ).save(), - jm=Attraction( + attraction14=Attraction( name="Jantar Mantar", description=( "Jantar Mantar may look to be nothing more than a bunch ", @@ -198,7 +198,7 @@ def seed_attraction(): longitude=75.8246, photos=[], ).save(), - sf=Attraction( + attraction15=Attraction( name="Sinhagad Fort", description=( "Sinhagad is a hill fortress located at around 35 km southwest of " @@ -219,6 +219,10 @@ def seed_shops(): latitude=18.2204, longitude=72.5301, photos=["https://picsum.photos/1099"], + phone="+919757266106", + address="Shop No #, Bulguia Complex, City", + locality="No Head Drangon Marg", + postal_code=400360, ).save(), shop2=Shop( name="Fast and Furios Fashion", @@ -226,6 +230,10 @@ def seed_shops(): latitude=19.1288, longitude=72.9182, photos=["https://picsum.photos/1099"], + phone="+919757266107", + address="Shop No #, Bulguia Complex, City", + locality="No Head Drangon Marg", + postal_code=400361, ).save(), shop3=Shop( name="Beauty and Beat", @@ -233,6 +241,10 @@ def seed_shops(): latitude=19.99356, longitude=72.16344, photos=["https://picsum.photos/1099"], + phone="+919757266108", + address="Shop No #, Bulguia Complex, City", + locality="No Head Drangon Marg", + postal_code=400362, ).save(), shop4=Shop( name="Memories Artical Shop", @@ -240,6 +252,10 @@ def seed_shops(): latitude=28.56473, longitude=77.42943, photos=["https://picsum.photos/1099"], + phone="+919757266109", + address="Shop No #, Bulguia Complex, City", + locality="No Head Drangon Marg", + postal_code=400363, ).save(), shop5=Shop( name="Gabrail Choor Gift Shop", @@ -247,6 +263,10 @@ def seed_shops(): latitude=28.266, longitude=77.091, photos=["https://picsum.photos/1099"], + phone="+919757266101", + address="Shop No #, Bulguia Complex, City", + locality="No Head Drangon Marg", + postal_code=400364, ).save(), shop6=Shop( name="Fire Food", @@ -254,6 +274,10 @@ def seed_shops(): latitude=23.512, longitude=72.055, photos=["https://picsum.photos/1099"], + phone="+919757266102", + address="Shop No #, Bulguia Complex, City", + locality="No Head Drangon Marg", + postal_code=400365, ).save(), shop7=Shop( name="Fcuk Fashion", @@ -261,6 +285,10 @@ def seed_shops(): latitude=22.960, longitude=72.997, photos=["https://picsum.photos/1099"], + phone="+919757266103", + address="Shop No #, Bulguia Complex, City", + locality="No Head Drangon Marg", + postal_code=400366, ).save(), shop8=Shop( name="Free Gift Shop", @@ -268,6 +296,10 @@ def seed_shops(): latitude=23.90022, longitude=72.604, photos=["https://picsum.photos/1099"], + phone="+919757266104", + address="Shop No #, Bulguia Complex, City", + locality="No Head Drangon Marg", + postal_code=400367, ).save(), shop9=Shop( name="Esctasy Food", @@ -275,6 +307,10 @@ def seed_shops(): latitude=18.5181, longitude=73.8533, photos=["https://picsum.photos/1099"], + phone="+919757266105", + address="Shop No #, Bulguia Complex, City", + locality="No Head Drangon Marg", + postal_code=400368, ).save(), shop10=Shop( name="depresso", @@ -282,6 +318,10 @@ def seed_shops(): latitude=18.5523, longitude=73.9015, photos=["https://picsum.photos/1099"], + phone="+919757266111", + address="Shop No #, Bulguia Complex, City", + locality="No Head Drangon Marg", + postal_code=400369, ).save(), shop11=Shop( name="Bang Bang Gift Shop", @@ -289,6 +329,10 @@ def seed_shops(): latitude=18.098, longitude=73.535, photos=["https://picsum.photos/1099"], + phone="+919757266112", + address="Shop No #, Bulguia Complex, City", + locality="No Head Drangon Marg", + postal_code=400370, ).save(), shop12=Shop( name="Smash Street", @@ -296,6 +340,10 @@ def seed_shops(): latitude=26.6267, longitude=76.2089, photos=["https://picsum.photos/1099"], + phone="+919757266113", + address="Shop No #, Bulguia Complex, City", + locality="No Head Drangon Marg", + postal_code=400371, ).save(), shop13=Shop( name="Mark 42 Gift Shop", @@ -303,6 +351,10 @@ def seed_shops(): latitude=26.258, longitude=75.237, photos=["https://picsum.photos/1099"], + phone="+919757266114", + address="Shop No #, Bulguia Complex, City", + locality="No Head Drangon Marg", + postal_code=400372, ).save(), shop14=Shop( name="Jantar Mantar Gift Shop", @@ -313,6 +365,10 @@ def seed_shops(): latitude=26.9248, longitude=75.8246, photos=["https://picsum.photos/1099"], + phone="+919757266115", + address="Shop No #, Bulguia Complex, City", + locality="No Head Drangon Marg", + postal_code=400373, ).save(), shop15=Shop( name="Sinhagad Fort Gift Shop", @@ -320,5 +376,9 @@ def seed_shops(): latitude=18.21563, longitude=73.451897, photos=["https://picsum.photos/1099"], + phone="+919757266117", + address="Shop No #, Bulguia Complex, City", + locality="No Head Drangon Marg", + postal_code=400374, ).save(), ) diff --git a/app/seed/seed_relations.py b/app/seed/seed_relations.py index 29f557c..4a62ac4 100644 --- a/app/seed/seed_relations.py +++ b/app/seed/seed_relations.py @@ -1,27 +1,27 @@ def seed_hotel_city_relations(hotels, cities): - hotels["hotel1"].located_in.connect(cities["Mumbai"]) - hotels["hotel2"].located_in.connect(cities["Mumbai"]) - hotels["hotel3"].located_in.connect(cities["Mumbai"]) + hotels["hotel1"].located_in.connect(cities["city1"]) + hotels["hotel2"].located_in.connect(cities["city1"]) + hotels["hotel3"].located_in.connect(cities["city1"]) - hotels["hotel5"].located_in.connect(cities["Delhi"]) - hotels["hotel6"].located_in.connect(cities["Delhi"]) - hotels["hotel7"].located_in.connect(cities["Delhi"]) + hotels["hotel5"].located_in.connect(cities["city3"]) + hotels["hotel6"].located_in.connect(cities["city3"]) + hotels["hotel7"].located_in.connect(cities["city3"]) - hotels["hotel8"].located_in.connect(cities["Pune"]) - hotels["hotel9"].located_in.connect(cities["Pune"]) - hotels["hotel10"].located_in.connect(cities["Pune"]) + hotels["hotel8"].located_in.connect(cities["city2"]) + hotels["hotel9"].located_in.connect(cities["city2"]) + hotels["hotel10"].located_in.connect(cities["city2"]) - hotels["hotel11"].located_in.connect(cities["Jaipur"]) - hotels["hotel12"].located_in.connect(cities["Jaipur"]) - hotels["hotel13"].located_in.connect(cities["Jaipur"]) + hotels["hotel11"].located_in.connect(cities["city4"]) + hotels["hotel12"].located_in.connect(cities["city4"]) + hotels["hotel13"].located_in.connect(cities["city4"]) - hotels["hotel14"].located_in.connect(cities["Ahmedabad"]) - hotels["hotel15"].located_in.connect(cities["Ahmedabad"]) - hotels["hotel16"].located_in.connect(cities["Ahmedabad"]) + hotels["hotel14"].located_in.connect(cities["city5"]) + hotels["hotel15"].located_in.connect(cities["city5"]) + hotels["hotel16"].located_in.connect(cities["city5"]) def seed_package_review_relation(travellers, packages): - travellers["Selena"].reviewed_package.connect( + travellers["traveller1"].reviewed_package.connect( packages["package1"], { "rating": 3, @@ -29,7 +29,7 @@ def seed_package_review_relation(travellers, packages): "photos": ["https://picsum.photos/1090"], }, ) - travellers["Justin"].reviewed_package.connect( + travellers["traveller2"].reviewed_package.connect( packages["package1"], { "rating": 4, @@ -37,7 +37,7 @@ def seed_package_review_relation(travellers, packages): "photos": ["https://picsum.photos/1090"], }, ) - travellers["Justin"].reviewed_package.connect( + travellers["traveller2"].reviewed_package.connect( packages["package2"], { "rating": 5, @@ -45,7 +45,7 @@ def seed_package_review_relation(travellers, packages): "photos": ["https://picsum.photos/1090"], }, ) - travellers["Lucifer"].reviewed_package.connect( + travellers["traveller3"].reviewed_package.connect( packages["package2"], { "rating": 4, @@ -53,7 +53,7 @@ def seed_package_review_relation(travellers, packages): "photos": ["https://picsum.photos/1090"], }, ) - travellers["Selena"].reviewed_package.connect( + travellers["traveller1"].reviewed_package.connect( packages["package2"], { "rating": 4, @@ -61,7 +61,7 @@ def seed_package_review_relation(travellers, packages): "photos": ["https://picsum.photos/1090"], }, ) - travellers["Selena"].reviewed_package.connect( + travellers["traveller4"].reviewed_package.connect( packages["package3"], { "rating": 5, @@ -69,7 +69,7 @@ def seed_package_review_relation(travellers, packages): "photos": ["https://picsum.photos/1090"], }, ) - travellers["Ester"].reviewed_package.connect( + travellers["traveller5"].reviewed_package.connect( packages["package3"], { "rating": 3, @@ -77,7 +77,7 @@ def seed_package_review_relation(travellers, packages): "photos": ["https://picsum.photos/1090"], }, ) - travellers["Ester"].reviewed_package.connect( + travellers["traveller5"].reviewed_package.connect( packages["package3"], { "rating": 3, @@ -85,7 +85,7 @@ def seed_package_review_relation(travellers, packages): "photos": ["https://picsum.photos/1090"], }, ) - travellers["Justin"].reviewed_package.connect( + travellers["traveller2"].reviewed_package.connect( packages["package4"], { "rating": 3, @@ -93,7 +93,7 @@ def seed_package_review_relation(travellers, packages): "photos": ["https://picsum.photos/1090"], }, ) - travellers["Selena"].reviewed_package.connect( + travellers["traveller4"].reviewed_package.connect( packages["package4"], { "rating": 5, @@ -101,7 +101,7 @@ def seed_package_review_relation(travellers, packages): "photos": ["https://picsum.photos/1090"], }, ) - travellers["Selena"].reviewed_package.connect( + travellers["traveller4"].reviewed_package.connect( packages["package5"], { "rating": 4, @@ -109,7 +109,7 @@ def seed_package_review_relation(travellers, packages): "photos": ["https://picsum.photos/1090"], }, ) - travellers["Justin"].reviewed_package.connect( + travellers["traveller2"].reviewed_package.connect( packages["package5"], { "rating": 5, @@ -117,7 +117,7 @@ def seed_package_review_relation(travellers, packages): "photos": ["https://picsum.photos/1090"], }, ) - travellers["Justin"].reviewed_package.connect( + travellers["traveller2"].reviewed_package.connect( packages["package6"], { "rating": 4, @@ -125,7 +125,7 @@ def seed_package_review_relation(travellers, packages): "photos": ["https://picsum.photos/1090"], }, ) - travellers["Ester"].reviewed_package.connect( + travellers["traveller5"].reviewed_package.connect( packages["package6"], { "rating": 5, @@ -136,70 +136,70 @@ def seed_package_review_relation(travellers, packages): def seed_city_review_relation(travellers, cities): - travellers["Selena"].reviewed_city.connect( - cities["Mumbai"], + travellers["traveller4"].reviewed_city.connect( + cities["city1"], {"rating": 3, "review": "sweet city", "photos": ["https://picsum.photos/1666"]}, ) - travellers["Justin"].reviewed_city.connect( - cities["Mumbai"], + travellers["traveller2"].reviewed_city.connect( + cities["city1"], {"rating": 3, "review": "sweet city", "photos": ["https://picsum.photos/1666"]}, ) - travellers["Lucifer"].reviewed_city.connect( - cities["Mumbai"], + travellers["traveller3"].reviewed_city.connect( + cities["city1"], {"rating": 5, "review": "sweet city", "photos": ["https://picsum.photos/1666"]}, ) - travellers["Justin"].reviewed_city.connect( - cities["Pune"], + travellers["traveller2"].reviewed_city.connect( + cities["city2"], {"rating": 5, "review": "sweet city", "photos": ["https://picsum.photos/1666"]}, ) - travellers["Lucifer"].reviewed_city.connect( - cities["Pune"], + travellers["traveller3"].reviewed_city.connect( + cities["city2"], {"rating": 5, "review": "sweet city", "photos": ["https://picsum.photos/1666"]}, ) - travellers["Selena"].reviewed_city.connect( - cities["Pune"], + travellers["traveller4"].reviewed_city.connect( + cities["city2"], {"rating": 5, "review": "sweet city", "photos": ["https://picsum.photos/1666"]}, ) - travellers["Lucifer"].reviewed_city.connect( - cities["Delhi"], + travellers["traveller3"].reviewed_city.connect( + cities["city3"], {"rating": 4, "review": "sweet city", "photos": ["https://picsum.photos/1666"]}, ) - travellers["Justin"].reviewed_city.connect( - cities["Delhi"], + travellers["traveller2"].reviewed_city.connect( + cities["city3"], {"rating": 4, "review": "sweet city", "photos": ["https://picsum.photos/1666"]}, ) - travellers["Selena"].reviewed_city.connect( - cities["Delhi"], + travellers["traveller4"].reviewed_city.connect( + cities["city3"], {"rating": 3, "review": "sweet city", "photos": ["https://picsum.photos/1666"]}, ) - travellers["Jelena"].reviewed_city.connect( - cities["Jaipur"], + travellers["traveller4"].reviewed_city.connect( + cities["city4"], {"rating": 5, "review": "sweet city", "photos": ["https://picsum.photos/1666"]}, ) - travellers["Ester"].reviewed_city.connect( - cities["Jaipur"], + travellers["traveller5"].reviewed_city.connect( + cities["city4"], {"rating": 4, "review": "sweet city", "photos": ["https://picsum.photos/1666"]}, ) - travellers["Lucifer"].reviewed_city.connect( - cities["Jaipur"], + travellers["traveller3"].reviewed_city.connect( + cities["city4"], {"rating": 4, "review": "sweet city", "photos": ["https://picsum.photos/1666"]}, ) - travellers["Selena"].reviewed_city.connect( - cities["Ahmedabad"], + travellers["traveller4"].reviewed_city.connect( + cities["city5"], {"rating": 5, "review": "sweet city", "photos": ["https://picsum.photos/1666"]}, ) - travellers["Lucifer"].reviewed_city.connect( - cities["Ahmedabad"], + travellers["traveller3"].reviewed_city.connect( + cities["city5"], {"rating": 5, "review": "sweet city", "photos": ["https://picsum.photos/1666"]}, ) - travellers["Ester"].reviewed_city.connect( - cities["Ahmedabad"], + travellers["traveller5"].reviewed_city.connect( + cities["city5"], {"rating": 3, "review": "sweet city", "photos": ["https://picsum.photos/1666"]}, ) def seed_hotel_review_relation(travellers, hotels): - travellers["Selena"].reviewed_hotel.connect( + travellers["traveller4"].reviewed_hotel.connect( hotels["hotel1"], { "rating": 5, @@ -209,7 +209,7 @@ def seed_hotel_review_relation(travellers, hotels): ], }, ) - travellers["Justin"].reviewed_hotel.connect( + travellers["traveller2"].reviewed_hotel.connect( hotels["hotel1"], { "rating": 3, @@ -219,7 +219,7 @@ def seed_hotel_review_relation(travellers, hotels): ], }, ) - travellers["Lucifer"].reviewed_hotel.connect( + travellers["traveller3"].reviewed_hotel.connect( hotels["hotel2"], { "rating": 5, @@ -229,7 +229,7 @@ def seed_hotel_review_relation(travellers, hotels): ], }, ) - travellers["Jelena"].reviewed_hotel.connect( + travellers["traveller4"].reviewed_hotel.connect( hotels["hotel3"], { "rating": 5, @@ -239,7 +239,7 @@ def seed_hotel_review_relation(travellers, hotels): ], }, ) - travellers["Justin"].reviewed_hotel.connect( + travellers["traveller2"].reviewed_hotel.connect( hotels["hotel3"], { "rating": 4, @@ -249,7 +249,7 @@ def seed_hotel_review_relation(travellers, hotels): ], }, ) - travellers["Selena"].reviewed_hotel.connect( + travellers["traveller4"].reviewed_hotel.connect( hotels["hotel7"], { "rating": 5, @@ -259,7 +259,7 @@ def seed_hotel_review_relation(travellers, hotels): ], }, ) - travellers["Lucifer"].reviewed_hotel.connect( + travellers["traveller3"].reviewed_hotel.connect( hotels["hotel7"], { "rating": 5, @@ -269,7 +269,7 @@ def seed_hotel_review_relation(travellers, hotels): ], }, ) - travellers["Lucifer"].reviewed_hotel.connect( + travellers["traveller3"].reviewed_hotel.connect( hotels["hotel5"], { "rating": 4, @@ -279,7 +279,7 @@ def seed_hotel_review_relation(travellers, hotels): ], }, ) - travellers["Selena"].reviewed_hotel.connect( + travellers["traveller4"].reviewed_hotel.connect( hotels["hotel5"], { "rating": 4, @@ -289,7 +289,7 @@ def seed_hotel_review_relation(travellers, hotels): ], }, ) - travellers["Justin"].reviewed_hotel.connect( + travellers["traveller2"].reviewed_hotel.connect( hotels["hotel5"], { "rating": 4, @@ -302,62 +302,62 @@ def seed_hotel_review_relation(travellers, hotels): def seed_hotel_like_relation(travellers, hotels): - travellers["Justin"].likes_hotel.connect(hotels["hotel1"]) - travellers["Justin"].likes_hotel.connect(hotels["hotel3"]) - travellers["Lucifer"].likes_hotel.connect(hotels["hotel5"]) - travellers["Lucifer"].likes_hotel.connect(hotels["hotel6"]) - travellers["Selena"].likes_hotel.connect(hotels["hotel2"]) - travellers["Selena"].likes_hotel.connect(hotels["hotel1"]) - travellers["Selena"].likes_hotel.connect(hotels["hotel5"]) + travellers["traveller2"].likes_hotel.connect(hotels["hotel1"]) + travellers["traveller2"].likes_hotel.connect(hotels["hotel3"]) + travellers["traveller3"].likes_hotel.connect(hotels["hotel5"]) + travellers["traveller3"].likes_hotel.connect(hotels["hotel6"]) + travellers["traveller4"].likes_hotel.connect(hotels["hotel2"]) + travellers["traveller4"].likes_hotel.connect(hotels["hotel1"]) + travellers["traveller4"].likes_hotel.connect(hotels["hotel5"]) def seed_hotelier_relations(hoteliers, hotels): - hoteliers["Sanjiv"].owns_hotel.connect(hotels["hotel1"]) - hoteliers["Sanjiv"].owns_hotel.connect(hotels["hotel2"]) - hoteliers["Sanjiv"].owns_hotel.connect(hotels["hotel3"]) - hoteliers["Sanjiv"].owns_hotel.connect(hotels["hotel5"]) - hoteliers["Vikas"].owns_hotel.connect(hotels["hotel6"]) - hoteliers["Vikas"].owns_hotel.connect(hotels["hotel7"]) - hoteliers["Vikas"].owns_hotel.connect(hotels["hotel8"]) - hoteliers["Vikas"].owns_hotel.connect(hotels["hotel9"]) - hoteliers["Ranveer"].owns_hotel.connect(hotels["hotel10"]) - hoteliers["Ranveer"].owns_hotel.connect(hotels["hotel11"]) - hoteliers["Ranveer"].owns_hotel.connect(hotels["hotel12"]) - hoteliers["Ranveer"].owns_hotel.connect(hotels["hotel13"]) - hoteliers["Ranveer"].owns_hotel.connect(hotels["hotel14"]) - hoteliers["Ranveer"].owns_hotel.connect(hotels["hotel15"]) - hoteliers["Ranveer"].owns_hotel.connect(hotels["hotel16"]) + hoteliers["hotelowner1"].owns_hotel.connect(hotels["hotel1"]) + hoteliers["hotelowner1"].owns_hotel.connect(hotels["hotel2"]) + hoteliers["hotelowner1"].owns_hotel.connect(hotels["hotel3"]) + hoteliers["hotelowner1"].owns_hotel.connect(hotels["hotel5"]) + hoteliers["hotelowner1"].owns_hotel.connect(hotels["hotel6"]) + hoteliers["hotelowner1"].owns_hotel.connect(hotels["hotel7"]) + hoteliers["hotelowner1"].owns_hotel.connect(hotels["hotel8"]) + hoteliers["hotelowner1"].owns_hotel.connect(hotels["hotel9"]) + hoteliers["hotelowner3"].owns_hotel.connect(hotels["hotel10"]) + hoteliers["hotelowner3"].owns_hotel.connect(hotels["hotel11"]) + hoteliers["hotelowner3"].owns_hotel.connect(hotels["hotel12"]) + hoteliers["hotelowner3"].owns_hotel.connect(hotels["hotel13"]) + hoteliers["hotelowner3"].owns_hotel.connect(hotels["hotel14"]) + hoteliers["hotelowner3"].owns_hotel.connect(hotels["hotel15"]) + hoteliers["hotelowner3"].owns_hotel.connect(hotels["hotel16"]) def seed_shopier_relation(shopiers, shops): - shopiers["Mittal"].owns_shop.connect(shops["shop1"]) - shopiers["Mittal"].owns_shop.connect(shops["shop2"]) - shopiers["Mittal"].owns_shop.connect(shops["shop3"]) - shopiers["Mittal"].owns_shop.connect(shops["shop4"]) - shopiers["Mittal"].owns_shop.connect(shops["shop5"]) - shopiers["Adani"].owns_shop.connect(shops["shop6"]) - shopiers["Adani"].owns_shop.connect(shops["shop7"]) - shopiers["Adani"].owns_shop.connect(shops["shop8"]) - shopiers["Adani"].owns_shop.connect(shops["shop9"]) - shopiers["Adani"].owns_shop.connect(shops["shop10"]) - shopiers["Ambani"].owns_shop.connect(shops["shop11"]) - shopiers["Ambani"].owns_shop.connect(shops["shop12"]) - shopiers["Ambani"].owns_shop.connect(shops["shop13"]) - shopiers["Ambani"].owns_shop.connect(shops["shop14"]) - shopiers["Ambani"].owns_shop.connect(shops["shop15"]) + shopiers["shopowner1"].owns_shop.connect(shops["shop1"]) + shopiers["shopowner1"].owns_shop.connect(shops["shop2"]) + shopiers["shopowner1"].owns_shop.connect(shops["shop3"]) + shopiers["shopowner1"].owns_shop.connect(shops["shop4"]) + shopiers["shopowner1"].owns_shop.connect(shops["shop5"]) + shopiers["shopowner2"].owns_shop.connect(shops["shop6"]) + shopiers["shopowner2"].owns_shop.connect(shops["shop7"]) + shopiers["shopowner2"].owns_shop.connect(shops["shop8"]) + shopiers["shopowner2"].owns_shop.connect(shops["shop9"]) + shopiers["shopowner2"].owns_shop.connect(shops["shop10"]) + shopiers["shopowner3"].owns_shop.connect(shops["shop11"]) + shopiers["shopowner3"].owns_shop.connect(shops["shop12"]) + shopiers["shopowner3"].owns_shop.connect(shops["shop13"]) + shopiers["shopowner3"].owns_shop.connect(shops["shop14"]) + shopiers["shopowner3"].owns_shop.connect(shops["shop15"]) def seed_package_agency(packages, agencies): - packages["package1"].offered_by.connect(agencies["DNO"]) - packages["package2"].offered_by.connect(agencies["Manish"]) - packages["package3"].offered_by.connect(agencies["Lohana"]) - packages["package4"].offered_by.connect(agencies["DNO"]) - packages["package5"].offered_by.connect(agencies["Manish"]) - packages["package6"].offered_by.connect(agencies["Lohana"]) + packages["package1"].offered_by.connect(agencies["agency1"]) + packages["package2"].offered_by.connect(agencies["agency2"]) + packages["package3"].offered_by.connect(agencies["agency3"]) + packages["package4"].offered_by.connect(agencies["agency1"]) + packages["package5"].offered_by.connect(agencies["agency2"]) + packages["package6"].offered_by.connect(agencies["agency3"]) def seed_shop_review_relation(travellers, shops): - travellers["Selena"].reviewed_shop.connect( + travellers["traveller1"].reviewed_shop.connect( shops["shop1"], { "rating": 3, @@ -365,7 +365,7 @@ def seed_shop_review_relation(travellers, shops): "photos": ["https://picsum.photos/1090"], }, ) - travellers["Justin"].reviewed_shop.connect( + travellers["traveller2"].reviewed_shop.connect( shops["shop15"], { "rating": 4, @@ -373,7 +373,7 @@ def seed_shop_review_relation(travellers, shops): "photos": ["https://picsum.photos/1090"], }, ) - travellers["Justin"].reviewed_shop.connect( + travellers["traveller2"].reviewed_shop.connect( shops["shop2"], { "rating": 5, @@ -381,7 +381,7 @@ def seed_shop_review_relation(travellers, shops): "photos": ["https://picsum.photos/1090"], }, ) - travellers["Lucifer"].reviewed_shop.connect( + travellers["traveller3"].reviewed_shop.connect( shops["shop14"], { "rating": 4, @@ -389,7 +389,7 @@ def seed_shop_review_relation(travellers, shops): "photos": ["https://picsum.photos/1090"], }, ) - travellers["Selena"].reviewed_shop.connect( + travellers["traveller1"].reviewed_shop.connect( shops["shop13"], { "rating": 4, @@ -397,7 +397,7 @@ def seed_shop_review_relation(travellers, shops): "photos": ["https://picsum.photos/1090"], }, ) - travellers["Selena"].reviewed_shop.connect( + travellers["traveller1"].reviewed_shop.connect( shops["shop12"], { "rating": 5, @@ -405,7 +405,7 @@ def seed_shop_review_relation(travellers, shops): "photos": ["https://picsum.photos/1090"], }, ) - travellers["Ester"].reviewed_shop.connect( + travellers["traveller5"].reviewed_shop.connect( shops["shop11"], { "rating": 3, @@ -413,7 +413,7 @@ def seed_shop_review_relation(travellers, shops): "photos": ["https://picsum.photos/1090"], }, ) - travellers["Ester"].reviewed_shop.connect( + travellers["traveller5"].reviewed_shop.connect( shops["shop10"], { "rating": 3, @@ -421,7 +421,7 @@ def seed_shop_review_relation(travellers, shops): "photos": ["https://picsum.photos/1090"], }, ) - travellers["Justin"].reviewed_shop.connect( + travellers["traveller2"].reviewed_shop.connect( shops["shop4"], { "rating": 3, @@ -429,7 +429,7 @@ def seed_shop_review_relation(travellers, shops): "photos": ["https://picsum.photos/1090"], }, ) - travellers["Selena"].reviewed_shop.connect( + travellers["traveller1"].reviewed_shop.connect( shops["shop9"], { "rating": 5, @@ -437,7 +437,7 @@ def seed_shop_review_relation(travellers, shops): "photos": ["https://picsum.photos/1090"], }, ) - travellers["Selena"].reviewed_shop.connect( + travellers["traveller1"].reviewed_shop.connect( shops["shop5"], { "rating": 4, @@ -445,7 +445,7 @@ def seed_shop_review_relation(travellers, shops): "photos": ["https://picsum.photos/1090"], }, ) - travellers["Justin"].reviewed_shop.connect( + travellers["traveller2"].reviewed_shop.connect( shops["shop8"], { "rating": 5, @@ -453,7 +453,7 @@ def seed_shop_review_relation(travellers, shops): "photos": ["https://picsum.photos/1090"], }, ) - travellers["Justin"].reviewed_shop.connect( + travellers["traveller2"].reviewed_shop.connect( shops["shop6"], { "rating": 4, @@ -461,7 +461,7 @@ def seed_shop_review_relation(travellers, shops): "photos": ["https://picsum.photos/1090"], }, ) - travellers["Ester"].reviewed_shop.connect( + travellers["traveller5"].reviewed_shop.connect( shops["shop6"], { "rating": 5, @@ -472,11 +472,50 @@ def seed_shop_review_relation(travellers, shops): def seed_shop_like_relation(travellers, shops): - travellers["Justin"].likes_shop.connect(shops["shop1"]) - travellers["Justin"].likes_shop.connect(shops["shop3"]) - travellers["Lucifer"].likes_shop.connect(shops["shop5"]) - travellers["Lucifer"].likes_shop.connect(shops["shop6"]) - travellers["Selena"].likes_shop.connect(shops["shop2"]) - travellers["Selena"].likes_shop.connect(shops["shop1"]) - travellers["Selena"].likes_shop.connect(shops["shop5"]) - travellers["Selena"].likes_shop.connect(shops["shop4"]) + travellers["traveller2"].likes_shop.connect(shops["shop1"]) + travellers["traveller2"].likes_shop.connect(shops["shop3"]) + travellers["traveller3"].likes_shop.connect(shops["shop5"]) + travellers["traveller3"].likes_shop.connect(shops["shop6"]) + travellers["traveller1"].likes_shop.connect(shops["shop2"]) + travellers["traveller1"].likes_shop.connect(shops["shop1"]) + travellers["traveller1"].likes_shop.connect(shops["shop5"]) + travellers["traveller1"].likes_shop.connect(shops["shop4"]) + + +def seed_shop_city_relation(shops, cities): + shops["shop1"].located_in.connect(cities["city1"]) + shops["shop2"].located_in.connect(cities["city1"]) + shops["shop3"].located_in.connect(cities["city1"]) + + shops["shop4"].located_in.connect(cities["city3"]) + shops["shop5"].located_in.connect(cities["city3"]) + shops["shop6"].located_in.connect(cities["city3"]) + shops["shop7"].located_in.connect(cities["city3"]) + + shops["shop8"].located_in.connect(cities["city2"]) + shops["shop9"].located_in.connect(cities["city2"]) + shops["shop10"].located_in.connect(cities["city2"]) + + shops["shop11"].located_in.connect(cities["city4"]) + shops["shop12"].located_in.connect(cities["city4"]) + + shops["shop13"].located_in.connect(cities["city5"]) + shops["shop15"].located_in.connect(cities["city5"]) + + +def seed_attraction_city_relation(attractions, cities): + attractions["attraction1"].located_in.connect(cities["city1"]) + attractions["attraction2"].located_in.connect(cities["city1"]) + attractions["attraction3"].located_in.connect(cities["city1"]) + attractions["attraction4"].located_in.connect(cities["city2"]) + attractions["attraction5"].located_in.connect(cities["city2"]) + attractions["attraction6"].located_in.connect(cities["city2"]) + attractions["attraction7"].located_in.connect(cities["city3"]) + attractions["attraction8"].located_in.connect(cities["city3"]) + attractions["attraction9"].located_in.connect(cities["city3"]) + attractions["attraction10"].located_in.connect(cities["city4"]) + attractions["attraction11"].located_in.connect(cities["city4"]) + attractions["attraction12"].located_in.connect(cities["city4"]) + attractions["attraction13"].located_in.connect(cities["city5"]) + attractions["attraction14"].located_in.connect(cities["city5"]) + attractions["attraction15"].located_in.connect(cities["city5"]) diff --git a/app/seed/seed_topic.py b/app/seed/seed_topic.py index 2456daa..e7f81a5 100644 --- a/app/seed/seed_topic.py +++ b/app/seed/seed_topic.py @@ -3,8 +3,8 @@ def seed_topic(): return dict( - adventure=Topic(name="Adventure").save(), - cuisine=Topic(name="Cuisine").save(), - beaches=Topic(name="Beaches").save(), - history=Topic(name="Historical").save(), + topic1=Topic(name="Adventure").save(), + topic2=Topic(name="Cuisine").save(), + topic3=Topic(name="Beaches").save(), + topic4=Topic(name="Historical").save(), ) diff --git a/app/seed/seed_users.py b/app/seed/seed_users.py index 08aa57f..671148d 100644 --- a/app/seed/seed_users.py +++ b/app/seed/seed_users.py @@ -5,70 +5,70 @@ def seed_traveller(): return dict( - Lucifer=Traveller( + traveller1=Traveller( name="Lucifer", phone="+917738886661", gender="M", dob=date(1999, 11, 1), mood="RELAX", ).save(), - Michael=Traveller( + traveller2=Traveller( name="Michael", phone="+917738883002", gender="M", dob=date(1998, 1, 4), mood="RELAX", ).save(), - Jenovah=Traveller( + traveller3=Traveller( name="Jenovah", phone="+917738883013", gender="M", dob=date(1999, 12, 25), mood="MIXED", ).save(), - Ester=Traveller( + traveller4=Traveller( name="Ester", phone="+917738883024", gender="F", dob=date(1999, 10, 18), mood="RELAX", ).save(), - Lahari=Traveller( + traveller5=Traveller( name="Lahari", phone="+917738883035", gender="M", dob=date(1999, 2, 20), mood="MIXED", ).save(), - Gautam=Traveller( + traveller6=Traveller( name="Gautam", phone="+917738883046", gender="M", dob=date(1999, 12, 12), mood="MIXED", ).save(), - Justin=Traveller( + traveller7=Traveller( name="Justin", phone="+917738883697", gender="M", dob=date(1999, 12, 13), mood="ADVENTURE", ).save(), - Selena=Traveller( + traveller8=Traveller( name="Selena", phone="+917738880377", gender="F", dob=date(1999, 7, 22), mood="ADVENTURE", ).save(), - Jelena=Traveller( + traveller9=Traveller( name="Jelena", phone="+917738881438", gender="F", dob=date(2010, 11, 7), mood="ADVENTURE", ).save(), - Karki=Traveller( + traveller10=Traveller( name="Karki", phone="+917738881429", gender="M", @@ -80,7 +80,7 @@ def seed_traveller(): def seed_agency(): return dict( - Manish=Agency( + agency1=Agency( name="Manish Travel Agency", phone="+912228074493", address=( @@ -91,7 +91,7 @@ def seed_agency(): latitude=28.644800, longitude=77.216721, ).save(), - Lohana=Agency( + agency2=Agency( name="Lohana Tour's and Travel", phone="+912228056448", address=( @@ -103,7 +103,7 @@ def seed_agency(): latitude=19.076090, longitude=72.877426, ).save(), - DNO=Agency( + agency3=Agency( name="DiscountsAndOffers", phone="+919930989241", address="1,DiscountsAndOffers,Patel Road,Kandivali West,400067", @@ -116,7 +116,7 @@ def seed_agency(): def seed_shop_owner(): return dict( - Mittal=ShopOwner( + shopowner1=ShopOwner( name="Mittal", phone="+919930989200", address="5, Race Course Road,New Delhi,110001", @@ -124,7 +124,7 @@ def seed_shop_owner(): latitude=28.644800, longitude=77.216721, ).save(), - Adani=ShopOwner( + shopowner2=ShopOwner( name="Adani", phone="+919930989201", address="7, Race Course Road,Mumbai,4000060", @@ -132,7 +132,7 @@ def seed_shop_owner(): latitude=19.076090, longitude=72.877426, ).save(), - Ambani=ShopOwner( + shopowner3=ShopOwner( name="Ambani", phone="+919930989200", address="1, Race Course Road,Ahemdabad,320008", @@ -145,7 +145,7 @@ def seed_shop_owner(): def seed_hotel_owner(): return dict( - Sanjiv=HotelOwner( + hotelowner1=HotelOwner( name="Sanjiv Khana", phone="+919930989231", address=( @@ -156,7 +156,7 @@ def seed_hotel_owner(): latitude=28.644800, longitude=77.216721, ).save(), - Ranveer=HotelOwner( + hotelowner2=HotelOwner( name="Ranveer Bhar", phone="+919930989222", address="Balraj Sahani Marg, Juhu Beach, Juhu, Mumbai, Maharashtra 400049", @@ -164,7 +164,7 @@ def seed_hotel_owner(): latitude=19.076090, longitude=72.877426, ).save(), - Vikas=HotelOwner( + hotelowner3=HotelOwner( name="Vikas Khaana", phone="+919930989233", address=( From 0f23913b3a09a8b9b6170eeeaf662270a5a60094 Mon Sep 17 00:00:00 2001 From: Gunjan Mistry Date: Sun, 28 Mar 2021 14:17:31 +0530 Subject: [PATCH 07/20] add shop owned route --- app/helpers/queries.py | 4 ++++ app/models/database/nodes.py | 14 +++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/app/helpers/queries.py b/app/helpers/queries.py index bb19fe8..b8d99b6 100644 --- a/app/helpers/queries.py +++ b/app/helpers/queries.py @@ -439,6 +439,10 @@ shop.uid as id, shop.name as name, avg(review.rating) as rating, + shop.locality as locality, + shop.latitude as latitude, + shop.longitude as longitude, + shop.phone as phone, shop.photos[0] as coverUri ORDER BY rating DESC """ diff --git a/app/models/database/nodes.py b/app/models/database/nodes.py index 9c5d1e2..7c67f88 100644 --- a/app/models/database/nodes.py +++ b/app/models/database/nodes.py @@ -150,14 +150,26 @@ class Attraction(Location): visited_by = RelationshipFrom("Traveller", "VISITED_ATTRACTION", model=VisitedRel) + located_in = RelationshipTo( + "City", "LOCATED_IN", model=OwnsRel, cardinality=cardinality.One + ) + class Shop(Location): + address = StringProperty(max_length=512, required=True) + locality = StringProperty(required=True) + postal_code = IntegerProperty(required=True) + phone = RegexProperty(expression=r"^\+(\d){12}$", required=True) + liked_by = RelationshipFrom("Traveller", "LIKES_SHOP", model=LikesRel) reviewed_by = RelationshipFrom("Traveller", "REVIEWED_SHOP", model=ReviewedRel) owned_by = RelationshipFrom("ShopOwner", "OWNS_SHOP", model=OwnsRel) - visited_by = RelationshipFrom("Traveller", "VISITED_SHOP", model=VisitedRel) + located_in = RelationshipTo( + "City", "LOCATED_IN", model=OwnsRel, cardinality=cardinality.One + ) + class Blog(StructuredNode): uid = UniqueIdProperty() From 43e5ff1a029bd9ee82e7826f4362cd2f196ea0b2 Mon Sep 17 00:00:00 2001 From: Gunjan Mistry Date: Sat, 10 Apr 2021 21:19:44 +0530 Subject: [PATCH 08/20] add hotel add route --- app/routers/business/hotel.py | 41 +++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/app/routers/business/hotel.py b/app/routers/business/hotel.py index aa7adac..b3d5943 100644 --- a/app/routers/business/hotel.py +++ b/app/routers/business/hotel.py @@ -1,15 +1,56 @@ +from typing import List + from fastapi import APIRouter, Depends, HTTPException, status from neomodel import db from pydantic import AnyUrl, BaseModel, confloat, constr +from ...helpers.conversion import deflate_request from ...helpers.db_query import get_query_response from ...helpers.queries import GET_OWNED_HOTELS_QUERY +from ...models.database import Hotel from .auth import get_business router = APIRouter() +class NewHotelRequest(BaseModel): + name: str + price: int + description: str + photos: List[AnyUrl] + address: constr(min_length=10, max_length=120) + locality: str + postal_code: int + latitude: float + longitude: float + phone: str + amenities: List[str] + + # user=Depends(get_business) @router.get("/owned") async def get_owned_hotels(hotelier=Depends(get_business)): return get_query_response(GET_OWNED_HOTELS, {"hotelierId": hotelier.uid}) + + +@router.post("/add") +async def add_hotel(hotelier: str, hotelData: NewHotelRequest): + with db.transaction: + hotel = Hotel( + **deflate_request( + hotelData, + { + "name", + "price", + "photos", + "address", + "description", + "locality", + "postal_code", + "latitude", + "longitude", + "phone", + "amenities", + }, + ) + ).save() From b3aa46dbf48158a00c5fdc50b1e0a54137608795 Mon Sep 17 00:00:00 2001 From: Gunjan Mistry Date: Sat, 10 Apr 2021 22:46:36 +0530 Subject: [PATCH 09/20] add hotel route + auth+connection --- app/routers/business/hotel.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/routers/business/hotel.py b/app/routers/business/hotel.py index b3d5943..efa647d 100644 --- a/app/routers/business/hotel.py +++ b/app/routers/business/hotel.py @@ -7,7 +7,8 @@ from ...helpers.conversion import deflate_request from ...helpers.db_query import get_query_response from ...helpers.queries import GET_OWNED_HOTELS_QUERY -from ...models.database import Hotel +from ...helpers.validation import HotelAmenitiesEnum +from ...models.database import Hotel, HotelOwner from .auth import get_business router = APIRouter() @@ -24,7 +25,7 @@ class NewHotelRequest(BaseModel): latitude: float longitude: float phone: str - amenities: List[str] + amenities: List[HotelAmenitiesEnum] # user=Depends(get_business) @@ -34,7 +35,7 @@ async def get_owned_hotels(hotelier=Depends(get_business)): @router.post("/add") -async def add_hotel(hotelier: str, hotelData: NewHotelRequest): +async def add_hotel(hotelData: NewHotelRequest, hotelier=Depends(get_business)): with db.transaction: hotel = Hotel( **deflate_request( @@ -54,3 +55,4 @@ async def add_hotel(hotelier: str, hotelData: NewHotelRequest): }, ) ).save() + hotel.owned_by.connect(hotelier) From 457b694abe76c8e240201544fc5e95f540118821 Mon Sep 17 00:00:00 2001 From: Gunjan Mistry Date: Sat, 10 Apr 2021 23:22:40 +0530 Subject: [PATCH 10/20] add shop route + auth+connection --- app/routers/business/hotel.py | 2 +- app/routers/business/shop.py | 40 +++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/app/routers/business/hotel.py b/app/routers/business/hotel.py index efa647d..e655fdf 100644 --- a/app/routers/business/hotel.py +++ b/app/routers/business/hotel.py @@ -8,7 +8,7 @@ from ...helpers.db_query import get_query_response from ...helpers.queries import GET_OWNED_HOTELS_QUERY from ...helpers.validation import HotelAmenitiesEnum -from ...models.database import Hotel, HotelOwner +from ...models.database import Hotel from .auth import get_business router = APIRouter() diff --git a/app/routers/business/shop.py b/app/routers/business/shop.py index d3605ad..b64297a 100644 --- a/app/routers/business/shop.py +++ b/app/routers/business/shop.py @@ -1,15 +1,55 @@ +from typing import List + from fastapi import APIRouter, Depends, HTTPException, status from neomodel import db from pydantic import AnyUrl, BaseModel, confloat, constr +from ...helpers.conversion import deflate_request from ...helpers.db_query import get_query_response from ...helpers.queries import GET_OWNED_SHOPS_QUERY +from ...models.database import City, Shop, ShopOwner from .auth import get_business router = APIRouter() +class NewShopRequest(BaseModel): + name: str + description: str + latitude: confloat(ge=-90, le=90) + longitude: confloat(ge=-180, le=180) + photos: List[AnyUrl] + address: constr(min_length=3, max_length=120) + locality: str + postal_code: int + phone: str + + # user=Depends(get_business) @router.get("/owned") async def get_owned_shops(shopier=Depends(get_business)): return get_query_response(GET_OWNED_SHOPS_QUERY, {"shopierId": shopier.uid}) + + +@router.post("/add") +async def add_shop(shopData: NewShopRequest, city: str, shopier=Depends(get_business)): + with db.transaction: + city = City.nodes.get(uid=city) + shop = Shop( + **deflate_request( + shopData, + { + "name", + "description", + "latitude", + "longitude", + "photos", + "address", + "locality", + "postal_code", + "phone", + }, + ) + ).save() + shop.owned_by.connect(shopier) + shop.located_in.connect(city) From 1e597380668342978511f77deec02537276de24d Mon Sep 17 00:00:00 2001 From: Gunjan Mistry Date: Sun, 11 Apr 2021 01:09:39 +0530 Subject: [PATCH 11/20] add hoteldetail route --- app/routers/business/hotel.py | 84 +++++++++++++++++++++++++++++++++-- 1 file changed, 81 insertions(+), 3 deletions(-) diff --git a/app/routers/business/hotel.py b/app/routers/business/hotel.py index e655fdf..909edf9 100644 --- a/app/routers/business/hotel.py +++ b/app/routers/business/hotel.py @@ -1,4 +1,5 @@ -from typing import List +from datetime import datetime +from typing import List, Optional from fastapi import APIRouter, Depends, HTTPException, status from neomodel import db @@ -6,8 +7,12 @@ from ...helpers.conversion import deflate_request from ...helpers.db_query import get_query_response -from ...helpers.queries import GET_OWNED_HOTELS_QUERY -from ...helpers.validation import HotelAmenitiesEnum +from ...helpers.queries import ( + GET_HOTEL_DETAILS_QUERY, + GET_HOTEL_REVIEWS_QUERY, + GET_OWNED_HOTELS_QUERY, +) +from ...helpers.validation import PHONE_NUMBER_REGEX, HotelAmenitiesEnum from ...models.database import Hotel from .auth import get_business @@ -28,6 +33,59 @@ class NewHotelRequest(BaseModel): amenities: List[HotelAmenitiesEnum] +GET_HOTEL_DETAIL_QUERY = """ +MATCH + (city:City)-[:LOCATED_IN]-(hotel:Hotel {uid:$hotel}) +OPTIONAL MATCH + (hotel)-[review:REVIEWED_HOTEL]-() +OPTIONAL MATCH + (hotel)-[likes:LIKES_HOTEL]-() +RETURN + hotel.uid AS id, + hotel.photos AS photos, + hotel.name AS name, + city.name AS city, + hotel.locality AS locality, + hotel.address AS address, + hotel.postal_code AS postalCode, + AVG(review.rating) AS rating, + hotel.phone AS phoneNumber, + hotel.latitude AS latitude, + hotel.longitude AS longitude, + hotel.price AS price, + hotel.description AS about, + hotel.amenities AS amenities, + COUNT(likes) AS likes +""" + + +class HotelReviewResponse(BaseModel): + id: str + rating: int + review: str + publishedOn: datetime + name: str + + +class HotelApiResponse(BaseModel): + id: str + photos: List[AnyUrl] + name: str + locality: str + address: str + postalCode: str + city: str + rating: Optional[float] = None + price: int + phoneNumber: constr(min_length=13, max_length=13, regex=PHONE_NUMBER_REGEX) + latitude: confloat(ge=-90, le=90) + longitude: confloat(ge=-180, le=180) + about: str + likes: int + amenities: List[HotelAmenitiesEnum] + reviews: List[HotelReviewResponse] + + # user=Depends(get_business) @router.get("/owned") async def get_owned_hotels(hotelier=Depends(get_business)): @@ -56,3 +114,23 @@ async def add_hotel(hotelData: NewHotelRequest, hotelier=Depends(get_business)): ) ).save() hotel.owned_by.connect(hotelier) + + +# ,hotelier=Depends(get_business) +@router.get("/hoteldetail") +async def hotel_detail(hotel: str): + try: + return HotelApiResponse( + **get_query_response( + GET_HOTEL_DETAIL_QUERY, + {"hotel": hotel}, + )[0], + reviews=get_query_response( + GET_HOTEL_REVIEWS_QUERY, {"hotel": hotel, "n": 3} + ), + ) + except IndexError: + raise HTTPException( + status_code=status.HTTP_404_NOT_FOUND, + detail="Hotel not found.", + ) From a8a9937a97b85ce414340fef77696e8f7cd12072 Mon Sep 17 00:00:00 2001 From: Gunjan Mistry Date: Sun, 11 Apr 2021 12:41:59 +0530 Subject: [PATCH 12/20] cleaned code --- app/helpers/queries.py | 26 +++++++++++++------------- app/routers/business/agency.py | 5 +---- app/routers/business/hotel.py | 10 +++------- 3 files changed, 17 insertions(+), 24 deletions(-) diff --git a/app/helpers/queries.py b/app/helpers/queries.py index b8d99b6..4afa216 100644 --- a/app/helpers/queries.py +++ b/app/helpers/queries.py @@ -242,11 +242,11 @@ """ GET_OWNED_HOTELS_QUERY = """ MATCH (hotelowner:HotelOwner {uid:$hotelierId})-[:OWNS_HOTEL]-(hotel:Hotel), - (hotel)-[:LOCATED_IN]-(city:City) + (hotel)-[:LOCATED_IN]-(city:City) OPTIONAL MATCH - (hotel)-[review:REVIEWED_HOTEL]-() + (hotel)-[review:REVIEWED_HOTEL]-() RETURN - hotel.uid AS id, + hotel.uid AS id, hotel.photos[0] AS coverUri, hotel.name AS name, city.name AS city, @@ -411,21 +411,21 @@ GET_OFFERED_PACKAGES_QUERY = """ MATCH - (agency:Agency {uid:$agencyId})-[:OFFERS_PACKAGE]-(package) + (agency:Agency {uid:$agencyId})-[:OFFERS_PACKAGE]-(package) OPTIONAL MATCH - (package)-[review:REVIEWED_PACKAGE]-() + (package)-[review:REVIEWED_PACKAGE]-() CALL { - WITH package + WITH package MATCH (package)-[dayRel:HAS_DAY]-(packageDay:PackageDay) WITH dayRel.day AS day, packageDay ORDER BY day - RETURN - COUNT(day) AS days + RETURN + COUNT(day) AS days } RETURN - package.uid as id, - package.name as name, + package.uid as id, + package.name as name, package.price as price, package.photos[0] as coverUri, AVG(review.rating) as rating, @@ -435,14 +435,14 @@ GET_OWNED_SHOPS_QUERY = """ MATCH (shopier:ShopOwner {uid:$shopierId})-[:OWNS_SHOP]-(shop:Shop) OPTIONAL MATCH (shop)-[review:REVIEWED_SHOP]-() -RETURN - shop.uid as id, +RETURN + shop.uid as id, shop.name as name, avg(review.rating) as rating, shop.locality as locality, shop.latitude as latitude, shop.longitude as longitude, shop.phone as phone, - shop.photos[0] as coverUri + shop.photos[0] as coverUri ORDER BY rating DESC """ diff --git a/app/routers/business/agency.py b/app/routers/business/agency.py index 67f7956..6e80fe6 100644 --- a/app/routers/business/agency.py +++ b/app/routers/business/agency.py @@ -1,10 +1,7 @@ -from fastapi import APIRouter, Depends, HTTPException, status -from neomodel import db -from pydantic import AnyUrl, BaseModel, confloat, constr +from fastapi import APIRouter, Depends from ...helpers.db_query import get_query_response from ...helpers.queries import GET_OFFERED_PACKAGES_QUERY -from ...models.database import Hotel, HotelOwner from .auth import get_business router = APIRouter() diff --git a/app/routers/business/hotel.py b/app/routers/business/hotel.py index 909edf9..8d5cbf7 100644 --- a/app/routers/business/hotel.py +++ b/app/routers/business/hotel.py @@ -7,11 +7,7 @@ from ...helpers.conversion import deflate_request from ...helpers.db_query import get_query_response -from ...helpers.queries import ( - GET_HOTEL_DETAILS_QUERY, - GET_HOTEL_REVIEWS_QUERY, - GET_OWNED_HOTELS_QUERY, -) +from ...helpers.queries import GET_HOTEL_REVIEWS_QUERY, GET_OWNED_HOTELS_QUERY from ...helpers.validation import PHONE_NUMBER_REGEX, HotelAmenitiesEnum from ...models.database import Hotel from .auth import get_business @@ -39,7 +35,7 @@ class NewHotelRequest(BaseModel): OPTIONAL MATCH (hotel)-[review:REVIEWED_HOTEL]-() OPTIONAL MATCH - (hotel)-[likes:LIKES_HOTEL]-() + (hotel)-[likes:LIKES_HOTEL]-() RETURN hotel.uid AS id, hotel.photos AS photos, @@ -89,7 +85,7 @@ class HotelApiResponse(BaseModel): # user=Depends(get_business) @router.get("/owned") async def get_owned_hotels(hotelier=Depends(get_business)): - return get_query_response(GET_OWNED_HOTELS, {"hotelierId": hotelier.uid}) + return get_query_response(GET_OWNED_HOTELS_QUERY, {"hotelierId": hotelier.uid}) @router.post("/add") From f69d94b64ff207651a31f2e94d2a9d8b0df7b122 Mon Sep 17 00:00:00 2001 From: Gunjan Mistry Date: Sun, 11 Apr 2021 18:07:50 +0530 Subject: [PATCH 13/20] add all fav route --- app/helpers/queries.py | 61 ++++++++++++++++++++++++++++++++ app/routers/traveller/profile.py | 8 ++++- 2 files changed, 68 insertions(+), 1 deletion(-) diff --git a/app/helpers/queries.py b/app/helpers/queries.py index 4afa216..a5e0c49 100644 --- a/app/helpers/queries.py +++ b/app/helpers/queries.py @@ -446,3 +446,64 @@ shop.photos[0] as coverUri ORDER BY rating DESC """ + +GET_ALL_FAV_QUERY = """ +MATCH (t:Traveller {uid:$userId}) +CALL { +WITH t +OPTIONAL MATCH (t)-[lb:LIKES_BLOG]-(b:Blog) +WITH b ORDER BY lb.datetime DESC LIMIT 3 +RETURN + COLLECT({id:b.uid, + title:b.title, + photos:b.photos, + published:b.published_on, + content:b.content + }) +AS favblogs +} +CALL { +WITH t +OPTIONAL MATCH (t)-[lh:LIKES_HOTEL]-(h:Hotel) +WITH h ORDER BY lh.datetime DESC LIMIT 3 +RETURN + COLLECT({ + id:h.uid, + name:h.name, + description:h.description, + amenities:h.amenities, + photos:h.photos, + phone:h.phone, + address:h.address, + locality:h.locality, + postal_code:h.postal_code, + latitude:h.latitude, + longitude:h.longitude, + price:h.price + }) +AS favhotels +} +CALL { +WITH t +OPTIONAL MATCH (t)-[ls:LIKES_SHOP]-(s:Shop) +WITH s ORDER BY ls.datetime DESC LIMIT 3 +RETURN + COLLECT({ + id:s.uid, + name:s.name, + description:s.description, + photos:s.photos, + address:s.address, + phone:s.phone, + locality:s.locality, + postal_code:s.postal_code, + latitude:s.latitude, + longitude:s.longitude + }) +AS favshops +} +RETURN + favblogs, + favhotels, + favshops +""" diff --git a/app/routers/traveller/profile.py b/app/routers/traveller/profile.py index ccc25b7..ba7d065 100644 --- a/app/routers/traveller/profile.py +++ b/app/routers/traveller/profile.py @@ -4,8 +4,9 @@ from pydantic import BaseModel from ...dependencies.auth import get_registered_user -from ...helpers.conversion import deflate_request +from ...helpers.conversion import deflate_request, get_query_response from ...helpers.db_query import update_node +from ...helpers.queries import GET_ALL_FAV_QUERY from ...helpers.validation import GenderEnum, MoodEnum router = APIRouter() @@ -23,3 +24,8 @@ async def edit_profile( userDetail: ProfileEditRequest, user=Depends(get_registered_user) ): update_node(user, deflate_request(userDetail, {"name", "gender", "dob", "mood"})) + + +@router.get("/favs") +async def profile_favs(user=Depends(get_registered_user)): + return get_query_response(GET_ALL_FAV_QUERY, {"userId": user.uid}) From 4167d132ff854c6e6ff8b596cfd5bd99f8b43db4 Mon Sep 17 00:00:00 2001 From: Gunjan Mistry Date: Sun, 11 Apr 2021 20:20:46 +0530 Subject: [PATCH 14/20] add fav hotel route --- app/helpers/queries.py | 13 +++++++++++++ app/routers/traveller/hotel.py | 6 ++++++ 2 files changed, 19 insertions(+) diff --git a/app/helpers/queries.py b/app/helpers/queries.py index a5e0c49..c910eb4 100644 --- a/app/helpers/queries.py +++ b/app/helpers/queries.py @@ -507,3 +507,16 @@ favhotels, favshops """ +GET_FAV_HOTELS_QUERY = """ +match (t:Traveller {uid:$userId})-[lh:LIKES_HOTEL]-(h:Hotel) +return +h.uid as id, +h.name as name, +h.description as description, +h.phone as phone, +h.address as address, +h.locality as locality, +h.postal_code as postal_code, +h.photos as photos, +h.price as price +""" diff --git a/app/routers/traveller/hotel.py b/app/routers/traveller/hotel.py index 846ad71..edaf074 100644 --- a/app/routers/traveller/hotel.py +++ b/app/routers/traveller/hotel.py @@ -10,6 +10,7 @@ from ...helpers.conversion import deflate_request from ...helpers.db_query import get_query_response from ...helpers.queries import ( + GET_FAV_HOTELS_QUERY, GET_HOTEL_BOOKING_DETAILS_QUERY, GET_HOTEL_DETAILS_QUERY, GET_HOTEL_REVIEWS_ALL_QUERY, @@ -180,3 +181,8 @@ async def get_hotel_booking( GET_HOTEL_BOOKING_DETAILS_QUERY, {"hotelBooking": hotel_booking.uid}, )[0] + + +@router.get("/favs") +async def get_fav_hotels(user=Depends(get_registered_user)): + return get_query_response(GET_FAV_HOTELS_QUERY, {"userId": user.uid}) From 3ebb792533c4c176c488cba0446b5008309ae8a4 Mon Sep 17 00:00:00 2001 From: Gunjan Mistry Date: Sun, 11 Apr 2021 20:46:26 +0530 Subject: [PATCH 15/20] add fav blog route --- app/helpers/queries.py | 32 +++++++++++++++++++++++--------- app/routers/traveller/blog.py | 11 ++++++++++- 2 files changed, 33 insertions(+), 10 deletions(-) diff --git a/app/helpers/queries.py b/app/helpers/queries.py index c910eb4..6fe35d6 100644 --- a/app/helpers/queries.py +++ b/app/helpers/queries.py @@ -510,13 +510,27 @@ GET_FAV_HOTELS_QUERY = """ match (t:Traveller {uid:$userId})-[lh:LIKES_HOTEL]-(h:Hotel) return -h.uid as id, -h.name as name, -h.description as description, -h.phone as phone, -h.address as address, -h.locality as locality, -h.postal_code as postal_code, -h.photos as photos, -h.price as price + h.uid as id, + h.name as name, + h.description as description, + h.phone as phone, + h.address as address, + h.locality as locality, + h.postal_code as postal_code, + h.latitude as latitude, + h.longitude as longitude, + h.photos as photos, + h.price as price +order by lh.datetime desc +""" + +GET_FAV_BLOG_QUERY = """ +match (t:Traveller {uid:$userId})-[lb:LIKES_BLOG]-(b:Blog) +return + b.uid as id, + b.title as title, + b.content as content, + b.photos as photos, + b.published_on as published_on +order by lb.datetime desc """ diff --git a/app/routers/traveller/blog.py b/app/routers/traveller/blog.py index 817335e..070b083 100644 --- a/app/routers/traveller/blog.py +++ b/app/routers/traveller/blog.py @@ -8,7 +8,11 @@ from ...dependencies.auth import get_registered_user from ...dependencies.entities import get_blog from ...helpers.db_query import get_query_response -from ...helpers.queries import GET_BLOG_COMMENTS_QUERY, GET_BLOG_DETAILS_QUERY +from ...helpers.queries import ( + GET_BLOG_COMMENTS_QUERY, + GET_BLOG_DETAILS_QUERY, + GET_FAV_BLOG_QUERY, +) router = APIRouter() @@ -58,3 +62,8 @@ async def blog_unlike(blog=Depends(get_blog), user=Depends(get_registered_user)) with db.transaction: if user.likes_blog.is_connected(blog): user.likes_blog.disconnect(blog) + + +@router.get("/favs") +async def get_fav_blogs(user: str): + return get_query_response(GET_FAV_BLOG_QUERY, {"userId": user}) From 5015af0ce25af2dca2f3cbbb6424933d770798d3 Mon Sep 17 00:00:00 2001 From: Gunjan Mistry Date: Sun, 11 Apr 2021 21:13:14 +0530 Subject: [PATCH 16/20] add fav package route --- app/helpers/queries.py | 10 ++++++++++ app/routers/traveller/blog.py | 4 ++-- app/routers/traveller/package.py | 6 ++++++ app/seed/seed.py | 2 ++ app/seed/seed_relations.py | 9 +++++++++ 5 files changed, 29 insertions(+), 2 deletions(-) diff --git a/app/helpers/queries.py b/app/helpers/queries.py index 6fe35d6..de3e58d 100644 --- a/app/helpers/queries.py +++ b/app/helpers/queries.py @@ -534,3 +534,13 @@ b.published_on as published_on order by lb.datetime desc """ +GET_FAV_PACKAGE_QUERY = """ +match (t:Traveller {uid:$userId})-[lp:LIKES_PACKAGE]-(p:Package) +return +p.uid as id, +p.name as name, +p.price as price, +p.photos as photos, +p.description as description +order by lp.datetime desc +""" diff --git a/app/routers/traveller/blog.py b/app/routers/traveller/blog.py index 070b083..6ea74cb 100644 --- a/app/routers/traveller/blog.py +++ b/app/routers/traveller/blog.py @@ -65,5 +65,5 @@ async def blog_unlike(blog=Depends(get_blog), user=Depends(get_registered_user)) @router.get("/favs") -async def get_fav_blogs(user: str): - return get_query_response(GET_FAV_BLOG_QUERY, {"userId": user}) +async def get_fav_blogs(user=Depends(get_registered_user)): + return get_query_response(GET_FAV_BLOG_QUERY, {"userId": user.uid}) diff --git a/app/routers/traveller/package.py b/app/routers/traveller/package.py index 1b4daae..270ffa7 100644 --- a/app/routers/traveller/package.py +++ b/app/routers/traveller/package.py @@ -9,6 +9,7 @@ from ...helpers.conversion import deflate_request from ...helpers.db_query import get_query_response from ...helpers.queries import ( + GET_FAV_PACKAGE_QUERY, GET_PACKAGE_BOOKING_DETAILS_QUERY, GET_PACKAGE_DETAILS_QUERY, GET_PACKAGE_REVIEWS_ALL_QUERY, @@ -189,3 +190,8 @@ async def get_package_booking_details( GET_PACKAGE_BOOKING_DETAILS_QUERY, {"packageBooking": package_booking.uid}, )[0] + + +@router.get("/favs") +async def gte_fav_packages(user=Depends(get_registered_user)): + return get_query_response(GET_FAV_PACKAGE_QUERY, {"userId": user}) diff --git a/app/seed/seed.py b/app/seed/seed.py index 65fe454..4852c77 100644 --- a/app/seed/seed.py +++ b/app/seed/seed.py @@ -17,6 +17,7 @@ seed_hotel_review_relation, seed_hotelier_relations, seed_package_agency, + seed_package_like_relation, seed_package_review_relation, seed_shop_city_relation, seed_shop_like_relation, @@ -69,4 +70,5 @@ def seed_db(): seed_shop_like_relation(travellers, shops) seed_attraction_city_relation(attractions, cities) seed_shop_city_relation(shops, cities) + seed_package_like_relation(packages, travellers) print("Done.") diff --git a/app/seed/seed_relations.py b/app/seed/seed_relations.py index 4a62ac4..a0fb78f 100644 --- a/app/seed/seed_relations.py +++ b/app/seed/seed_relations.py @@ -519,3 +519,12 @@ def seed_attraction_city_relation(attractions, cities): attractions["attraction13"].located_in.connect(cities["city5"]) attractions["attraction14"].located_in.connect(cities["city5"]) attractions["attraction15"].located_in.connect(cities["city5"]) + + +def seed_package_like_relation(packages, travellers): + travellers["traveller1"].likes_package.connect(packages["package1"]) + travellers["traveller2"].likes_package.connect(packages["package2"]) + travellers["traveller3"].likes_package.connect(packages["package3"]) + travellers["traveller1"].likes_package.connect(packages["package4"]) + travellers["traveller2"].likes_package.connect(packages["package5"]) + travellers["traveller3"].likes_package.connect(packages["package6"]) From fbfe72c97b8e22b3a4fbf81162a39cde3cdf209b Mon Sep 17 00:00:00 2001 From: Gunjan Mistry Date: Mon, 12 Apr 2021 01:16:02 +0530 Subject: [PATCH 17/20] updated fav queries --- app/helpers/queries.py | 60 ++++++++++++++++++++++--------- app/routers/traveller/__init__.py | 3 +- app/routers/traveller/shop.py | 12 +++++++ 3 files changed, 57 insertions(+), 18 deletions(-) create mode 100644 app/routers/traveller/shop.py diff --git a/app/helpers/queries.py b/app/helpers/queries.py index de3e58d..eacbc76 100644 --- a/app/helpers/queries.py +++ b/app/helpers/queries.py @@ -452,33 +452,28 @@ CALL { WITH t OPTIONAL MATCH (t)-[lb:LIKES_BLOG]-(b:Blog) -WITH b ORDER BY lb.datetime DESC LIMIT 3 +optional match (b)-[like:LIKES_BLOG]-() +WITH b,count(like) as likes,lb ORDER BY lb.datetime DESC LIMIT 3 RETURN - COLLECT({id:b.uid, - title:b.title, - photos:b.photos, - published:b.published_on, - content:b.content + COLLECT({ + id:b.uid, + title:b.title, + content:left(b.content,100), + likes:likes }) AS favblogs } CALL { WITH t -OPTIONAL MATCH (t)-[lh:LIKES_HOTEL]-(h:Hotel) -WITH h ORDER BY lh.datetime DESC LIMIT 3 +OPTIONAL MATCH (t)-[lh:LIKES_HOTEL]-(h:Hotel),(h)-[:LOCATED_IN]-(c:City) +WITH h,c ORDER BY lh.datetime DESC LIMIT 3 RETURN COLLECT({ id:h.uid, name:h.name, - description:h.description, - amenities:h.amenities, - photos:h.photos, - phone:h.phone, - address:h.address, + coverUri:h.photos[0], + city:c.name, locality:h.locality, - postal_code:h.postal_code, - latitude:h.latitude, - longitude:h.longitude, price:h.price }) AS favhotels @@ -536,11 +531,42 @@ """ GET_FAV_PACKAGE_QUERY = """ match (t:Traveller {uid:$userId})-[lp:LIKES_PACKAGE]-(p:Package) +optional match (p)-[review:REVIEWED_PACKAGE]-() +with avg(review.rating) as rating,p,lp.datetime as datetime +call { +with p +match (p)-[dayrel:HAS_DAY]-(pday:PackageDay) +with dayrel.day AS day, pday +order by day +return +count(day) AS days +} return p.uid as id, p.name as name, p.price as price, p.photos as photos, +rating, +days, p.description as description -order by lp.datetime desc +order by datetime desc +""" + +GET_FAV_SHOPS_QUERY = """ +match (t:Traveller {uid:"2062eae3b22e41fbb35841e3dd7cf1fd"})-[ls:LIKES_SHOP]-(s:Shop) +optional match (s)-[review:REVIEWED_SHOP]-() +with avg(review.rating) as rating,s,ls.datetime as datetime +return + s.uid as id, + s.name as name, + s.photos as photos, + s.description as description, + s.phone as phone, + s.address as address, + s.locality as locality, + rating, + s.postal_code as postal_code, + s.latitude as latitude, + s.longitude as longitude +order by datetime desc """ diff --git a/app/routers/traveller/__init__.py b/app/routers/traveller/__init__.py index 62b3b51..f2f997d 100644 --- a/app/routers/traveller/__init__.py +++ b/app/routers/traveller/__init__.py @@ -1,6 +1,6 @@ from fastapi import APIRouter -from . import auth, blog, city, community, home, hotel, package, profile +from . import auth, blog, city, community, home, hotel, package, profile, shop router = APIRouter() @@ -12,3 +12,4 @@ router.include_router(package.router, prefix="/package") router.include_router(profile.router, prefix="/profile") router.include_router(city.router, prefix="/city") +router.include_router(shop.router, prefix="/shop") diff --git a/app/routers/traveller/shop.py b/app/routers/traveller/shop.py new file mode 100644 index 0000000..df7e061 --- /dev/null +++ b/app/routers/traveller/shop.py @@ -0,0 +1,12 @@ +from fastapi import APIRouter, Depends + +from ...dependencies.auth import get_registered_user +from ...helpers.db_query import get_query_response +from ...helpers.queries import GET_FAV_SHOPS_QUERY + +router = APIRouter() + + +@router.get("/favs") +async def get_fav_shops(user=Depends(get_registered_user)): + return get_query_response(GET_FAV_SHOPS_QUERY, {"userId": user.uid}) From 25add75058f6fc03b6e235a7c0bb118b9fe64fc0 Mon Sep 17 00:00:00 2001 From: Gunjan Mistry Date: Mon, 12 Apr 2021 19:45:15 +0530 Subject: [PATCH 18/20] add city fav --- app/helpers/queries.py | 39 ++++++++++++++++++++++++++++++-- app/routers/traveller/city.py | 7 +++++- app/routers/traveller/profile.py | 4 ++-- app/seed/seed.py | 4 ++++ app/seed/seed_relations.py | 22 ++++++++++++++++++ 5 files changed, 71 insertions(+), 5 deletions(-) diff --git a/app/helpers/queries.py b/app/helpers/queries.py index eacbc76..572e85a 100644 --- a/app/helpers/queries.py +++ b/app/helpers/queries.py @@ -451,6 +451,29 @@ MATCH (t:Traveller {uid:$userId}) CALL { WITH t +match (t)-[lc:LIKES_CITY]-(c:City) +with c,lc order by lc.datetime desc limit 3 +return +collect ({ +id:c.uid, +name:c.name, +coverUri:c.photos[0]}) +as favcities +} +CALL{ +with t +match (t)-[la:LIKES_ATTRACTION]-(a:Attraction) +with a,la order by la.datetime desc limit 3 +return +collect ({ +id:a.uid, +name:a.name, +coverUri:a.photos[0] +}) +as favattractions +} +CALL { +WITH t OPTIONAL MATCH (t)-[lb:LIKES_BLOG]-(b:Blog) optional match (b)-[like:LIKES_BLOG]-() WITH b,count(like) as likes,lb ORDER BY lb.datetime DESC LIMIT 3 @@ -500,7 +523,9 @@ RETURN favblogs, favhotels, - favshops + favshops, + favcities, + favattractions """ GET_FAV_HOTELS_QUERY = """ match (t:Traveller {uid:$userId})-[lh:LIKES_HOTEL]-(h:Hotel) @@ -553,7 +578,7 @@ """ GET_FAV_SHOPS_QUERY = """ -match (t:Traveller {uid:"2062eae3b22e41fbb35841e3dd7cf1fd"})-[ls:LIKES_SHOP]-(s:Shop) +match (t:Traveller {uid:$userId})-[ls:LIKES_SHOP]-(s:Shop) optional match (s)-[review:REVIEWED_SHOP]-() with avg(review.rating) as rating,s,ls.datetime as datetime return @@ -570,3 +595,13 @@ s.longitude as longitude order by datetime desc """ + +GET_FAV_CITIES_QUERY = """ +match (t:Traveller {uid:$userId})-[lc:LIKES_CITY]-(c:City) +with c,lc order by lc.datetime desc limit 3 +return +c.uid as id, +c.name as name, +c.description as description, +c.photos[0] as coverUri +""" diff --git a/app/routers/traveller/city.py b/app/routers/traveller/city.py index 1903f36..1d1c350 100644 --- a/app/routers/traveller/city.py +++ b/app/routers/traveller/city.py @@ -5,7 +5,7 @@ from ...dependencies.auth import get_registered_user from ...helpers.db_query import get_query_response -from ...helpers.queries import GET_ALL_CITIES_QUERY +from ...helpers.queries import GET_ALL_CITIES_QUERY, GET_FAV_CITIES_QUERY router = APIRouter() @@ -20,3 +20,8 @@ class CityApiResponse(BaseModel): @router.get("", response_model=List[CityApiResponse]) async def get_cities(_=Depends(get_registered_user)): return get_query_response(GET_ALL_CITIES_QUERY) + + +@router.get("/favs") +async def get_fav_cities(user: str): + return get_query_response(GET_FAV_CITIES_QUERY, {"userId": user}) diff --git a/app/routers/traveller/profile.py b/app/routers/traveller/profile.py index ba7d065..2e6e890 100644 --- a/app/routers/traveller/profile.py +++ b/app/routers/traveller/profile.py @@ -27,5 +27,5 @@ async def edit_profile( @router.get("/favs") -async def profile_favs(user=Depends(get_registered_user)): - return get_query_response(GET_ALL_FAV_QUERY, {"userId": user.uid}) +async def profile_favs(user: str): + return get_query_response(GET_ALL_FAV_QUERY, {"userId": user}) diff --git a/app/seed/seed.py b/app/seed/seed.py index 4852c77..f88e32d 100644 --- a/app/seed/seed.py +++ b/app/seed/seed.py @@ -11,6 +11,8 @@ from .seed_locations import seed_attraction, seed_city, seed_shops from .seed_relations import ( seed_attraction_city_relation, + seed_attraction_like_relation, + seed_city_like_relation, seed_city_review_relation, seed_hotel_city_relations, seed_hotel_like_relation, @@ -71,4 +73,6 @@ def seed_db(): seed_attraction_city_relation(attractions, cities) seed_shop_city_relation(shops, cities) seed_package_like_relation(packages, travellers) + seed_city_like_relation(cities, travellers) + seed_attraction_like_relation(travellers, attractions) print("Done.") diff --git a/app/seed/seed_relations.py b/app/seed/seed_relations.py index a0fb78f..3874ac9 100644 --- a/app/seed/seed_relations.py +++ b/app/seed/seed_relations.py @@ -528,3 +528,25 @@ def seed_package_like_relation(packages, travellers): travellers["traveller1"].likes_package.connect(packages["package4"]) travellers["traveller2"].likes_package.connect(packages["package5"]) travellers["traveller3"].likes_package.connect(packages["package6"]) + + +def seed_city_like_relation(cities, travellers): + travellers["traveller1"].likes_city.connect(cities["city1"]) + travellers["traveller1"].likes_city.connect(cities["city2"]) + travellers["traveller2"].likes_city.connect(cities["city3"]) + travellers["traveller2"].likes_city.connect(cities["city4"]) + travellers["traveller3"].likes_city.connect(cities["city5"]) + travellers["traveller3"].likes_city.connect(cities["city1"]) + + +def seed_attraction_like_relation(travellers, attractions): + travellers["traveller1"].likes_attraction.connect(attractions["attraction1"]) + travellers["traveller1"].likes_attraction.connect(attractions["attraction2"]) + travellers["traveller2"].likes_attraction.connect(attractions["attraction3"]) + travellers["traveller2"].likes_attraction.connect(attractions["attraction4"]) + travellers["traveller3"].likes_attraction.connect(attractions["attraction5"]) + travellers["traveller3"].likes_attraction.connect(attractions["attraction6"]) + travellers["traveller4"].likes_attraction.connect(attractions["attraction7"]) + travellers["traveller4"].likes_attraction.connect(attractions["attraction8"]) + travellers["traveller5"].likes_attraction.connect(attractions["attraction9"]) + travellers["traveller5"].likes_attraction.connect(attractions["attraction10"]) From 5dc619225c6aafef03282f87ae8c2446269df37e Mon Sep 17 00:00:00 2001 From: Gunjan Mistry Date: Tue, 13 Apr 2021 19:51:06 +0530 Subject: [PATCH 19/20] add fav attraction route --- app/helpers/queries.py | 12 ++++++++++++ app/routers/traveller/__init__.py | 14 +++++++++++++- app/routers/traveller/attraction.py | 12 ++++++++++++ 3 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 app/routers/traveller/attraction.py diff --git a/app/helpers/queries.py b/app/helpers/queries.py index 572e85a..8c013e2 100644 --- a/app/helpers/queries.py +++ b/app/helpers/queries.py @@ -605,3 +605,15 @@ c.description as description, c.photos[0] as coverUri """ + +GET_FAV_ATT_QUERY = """ +match (t:Traveller {uid:$userId})-[la:LIKES_ATTRACTION]-(a:Attraction)-[:LOCATED_IN]-(c:City) +return +a.uid as id, +a.name as name, +a.description as description, +a.photos as photos, +c.name as city, +a.latitude as latitude, +a.longitude as longitude +""" diff --git a/app/routers/traveller/__init__.py b/app/routers/traveller/__init__.py index f2f997d..fccb36d 100644 --- a/app/routers/traveller/__init__.py +++ b/app/routers/traveller/__init__.py @@ -1,6 +1,17 @@ from fastapi import APIRouter -from . import auth, blog, city, community, home, hotel, package, profile, shop +from . import ( + attraction, + auth, + blog, + city, + community, + home, + hotel, + package, + profile, + shop, +) router = APIRouter() @@ -13,3 +24,4 @@ router.include_router(profile.router, prefix="/profile") router.include_router(city.router, prefix="/city") router.include_router(shop.router, prefix="/shop") +router.include_router(attraction.router, prefix="/attraction") diff --git a/app/routers/traveller/attraction.py b/app/routers/traveller/attraction.py new file mode 100644 index 0000000..a3e8f9b --- /dev/null +++ b/app/routers/traveller/attraction.py @@ -0,0 +1,12 @@ +from fastapi import APIrouter, Depends + +from ...dependencies.auth import get_registered_user +from ...helpers.db_query import get_query_response +from ...helpers.queries import GET_FAV_ATT_QUERY + +router = APIrouter() + + +@router.get("/fav") +async def get_fav_attraction(user=Depends(get_registered_user)): + return get_query_response(GET_FAV_ATT_QUERY, {"userId": user.uid}) From e2b714f985ed2f3affaa65cec0fddecd2ee4bfc0 Mon Sep 17 00:00:00 2001 From: Gunjan Mistry Date: Thu, 15 Apr 2021 20:34:38 +0530 Subject: [PATCH 20/20] bug fix :bug: --- app/routers/traveller/attraction.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/routers/traveller/attraction.py b/app/routers/traveller/attraction.py index a3e8f9b..44b72cd 100644 --- a/app/routers/traveller/attraction.py +++ b/app/routers/traveller/attraction.py @@ -1,10 +1,10 @@ -from fastapi import APIrouter, Depends +from fastapi import APIRouter, Depends from ...dependencies.auth import get_registered_user from ...helpers.db_query import get_query_response from ...helpers.queries import GET_FAV_ATT_QUERY -router = APIrouter() +router = APIRouter() @router.get("/fav")