Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
E
ecom-svc-reviewsense
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Bhargava Rellu
ecom-svc-reviewsense
Commits
16be44d8
Commit
16be44d8
authored
Mar 31, 2025
by
Bhargava Rellu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Optimize imports
parent
900930e3
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
9 additions
and
21 deletions
+9
-21
Constants.py
src/reviewsense_ecom/model/Constants.py
+1
-0
Product.py
src/reviewsense_ecom/model/Product.py
+5
-5
routes.py
src/reviewsense_ecom/router/routes.py
+1
-14
FeatureExtractor.py
src/reviewsense_ecom/service/FeatureExtractor.py
+0
-0
ReviewRater.py
src/reviewsense_ecom/service/ReviewRater.py
+1
-1
ReviewService.py
src/reviewsense_ecom/service/ReviewService.py
+1
-1
No files found.
src/reviewsense_ecom/model/Constants.py
0 → 100644
View file @
16be44d8
DATE_KEY
=
"$date"
\ No newline at end of file
src/reviewsense_ecom/model/Product.py
View file @
16be44d8
from
dataclasses
import
dataclass
,
field
from
datetime
import
datetime
,
timezone
from
typing
import
Dict
from
src.reviewsense_ecom.model.Constants
import
DATE_KEY
from
src.reviewsense_ecom.model.FeatureRatingModel
import
FeatureRating
...
...
@@ -25,8 +25,8 @@ class Product:
updated_at
=
data
.
get
(
"updated_at"
)
def
parse_datetime
(
value
):
if
isinstance
(
value
,
dict
)
and
"$date"
in
value
:
return
datetime
.
fromisoformat
(
value
[
"$date"
]
.
replace
(
"Z"
,
""
))
if
isinstance
(
value
,
dict
)
and
DATE_KEY
in
value
:
return
datetime
.
fromisoformat
(
value
[
DATE_KEY
]
.
replace
(
"Z"
,
""
))
elif
isinstance
(
value
,
str
):
# If it's a string (ISO format)
return
datetime
.
fromisoformat
(
value
.
replace
(
"Z"
,
""
))
return
None
# Return None if it's missing or invalid
...
...
@@ -54,6 +54,6 @@ class Product:
"ratings_distribution"
:
self
.
ratings_distribution
,
"overall_rating"
:
self
.
overall_rating
,
"total_reviews"
:
self
.
total_reviews
,
"created_at"
:
{
"$date"
:
self
.
created_at
.
isoformat
()
+
"Z"
}
if
self
.
created_at
else
None
,
"updated_at"
:
{
"$date"
:
self
.
updated_at
.
isoformat
()
+
"Z"
}
if
self
.
updated_at
else
None
"created_at"
:
{
DATE_KEY
:
self
.
created_at
.
isoformat
()
+
"Z"
}
if
self
.
created_at
else
None
,
"updated_at"
:
{
DATE_KEY
:
self
.
updated_at
.
isoformat
()
+
"Z"
}
if
self
.
updated_at
else
None
}
src/reviewsense_ecom/router/routes.py
View file @
16be44d8
...
...
@@ -8,9 +8,9 @@ from src.reviewsense_ecom.model.ReviewResponseModel import ReviewResponseModel
from
src.reviewsense_ecom.model.product_review_input
import
ProductReviewInput
from
src.reviewsense_ecom.mongo.mongo_db_config
import
get_product_by_id
,
update_product
,
add_review_features
,
\
insert_product
,
product_feature
from
src.reviewsense_ecom.service.FeatureExtractor
import
FeatureExtractor
from
src.reviewsense_ecom.service.FeatureUpdater
import
FeatureUpdater
from
src.reviewsense_ecom.service.ReviewService
import
ReviewService
from
src.reviewsense_ecom.service.feature_extractor
import
FeatureExtractor
router
=
APIRouter
()
review_service
=
ReviewService
()
...
...
@@ -74,19 +74,6 @@ async def fetch_percentage(product_id: str, features: str): # NOT REQUIRED
return
{
"message"
:
"No data found"
}
@
router
.
get
(
"/fetch_reviews/"
,
response_model
=
ReviewResponseModel
)
async
def
fetch_review_by_feature
(
product_id
:
str
,
features
:
str
):
# NotRequired
"""
Fetch reviews from MongoDB based on product_id and feature.
"""
logger
.
info
(
f
"Fetching reviews for product_id: {product_id}, feature: {features}"
)
reviews
=
review_service
.
get_review_by_feature
(
product_id
,
features
)
if
isinstance
(
reviews
,
dict
):
return
reviews
return
{
"reviews"
:
reviews
}
@
router
.
get
(
"/fetch_full_reviews/"
,
response_model
=
ReviewResponseModel
)
async
def
fetch_review_by_feature
(
product_id
:
str
,
features
:
str
):
# Required
"""
...
...
src/reviewsense_ecom/service/
feature_e
xtractor.py
→
src/reviewsense_ecom/service/
FeatureE
xtractor.py
View file @
16be44d8
File moved
src/reviewsense_ecom/service/
review_r
ater.py
→
src/reviewsense_ecom/service/
ReviewR
ater.py
View file @
16be44d8
# router/
review_r
ater.py
# router/
ReviewR
ater.py
from
collections
import
defaultdict
from
typing
import
Dict
,
List
,
Optional
...
...
src/reviewsense_ecom/service/ReviewService.py
View file @
16be44d8
from
typing
import
List
,
Dict
,
Optional
from
src.reviewsense_ecom.mongo.mongo_db_config
import
get_db_connection
from
src.reviewsense_ecom.service.
review_r
ater
import
ReviewRater
from
src.reviewsense_ecom.service.
ReviewR
ater
import
ReviewRater
class
ReviewService
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment