def post(self, id: int): activity = Activity.query.filter_by( id=id).first_or_404('Activity not found') Visit.set_visit(ip=request.remote_addr, visitable_id=activity.id, visitable_type='search_activity') return {"message": "Activity by name clicked."}, 200
def get(self,slug: str): newsletter = Newsletter.query.filter_by(slug=slug).first_or_404("Newsletter not found") # set visit if ip not found Visit.set_visit(ip=request.remote_addr,visitable_id=newsletter.id,visitable_type='view_newsletter') data = _newsletter_schema.dump(newsletter) data['seen'] = Visit.get_seen_activity(visit_type='view_newsletter',visit_id=newsletter.id) return data, 200
def get(self,slug: str): activity = Activity.query.filter_by(slug=slug).first_or_404('Activity not found') Visit.set_visit(ip=request.remote_addr,visitable_id=activity.id,visitable_type='view_activity') data = _activity_schema.dump(activity) # get wishlist,seen,discussion data data['seen'] = Visit.get_seen_activity(visit_type='view_activity',visit_id=activity.id) data['wishlist'] = Wishlist.query.filter_by(activity_id=activity.id).count() data['discussion'] = Comment.query.filter(Comment.commentable_id == activity.id, Comment.commentable_type == 'activity').count() if (current_user := get_jwt_identity()): data['love'] = True if Wishlist.check_wishlist(data['id'],current_user) else False
def get(self): _activity_card_schema = ActivitySchema(exclude=("min_person","information","image2","image3","image4","description","duration", "pickup","include","created_at","updated_at","category")) visits = Visit.visit_popular_by(visit_type='view_activity',limit=5) raw_activity = [Activity.query.get(index) for index,value in visits] # if user login extract data and show wishlist on card data = _activity_card_schema.dump(raw_activity,many=True) if (current_user := get_jwt_identity()): for activity in data: activity['love'] = True if Wishlist.check_wishlist(activity['id'],current_user) else False
def get(self, slug: str): property_db = Property.filter_by_slug(slug) # set visit if ip not found Visit.set_visit(ip=request.remote_addr, visitable_id=property_db.id, visitable_type='view_property') data = _property_schema.dump(property_db) data['seen'] = Visit.get_seen_activity(visit_type='view_property', visit_id=property_db.id) # get similar listing random data similar_listing = Property.load_similar_listing_random( type_id=property_db.type_id) data['similar_listing'] = _property_schema.dump(similar_listing, many=True) if (current_user := get_jwt_identity()): data['love'] = True if User.check_wishlist(data['id'], current_user) else False for similar_listing in data['similar_listing']: similar_listing['love'] = True if User.check_wishlist( similar_listing['id'], current_user) else False
def get(self): limit = request.args.get('limit',default=3,type=int) data = list() for value in Visit.visit_popular_by(visit_type='view_property',limit=limit): index, visitor = value try: property_db = Property.query.get(index) data.append({'name': property_db.name,'slug': property_db.slug, 'visitor': visitor}) except Exception: delete_data = Visit.query.filter_by(visitable_id=index).all() [x.delete_from_db() for x in delete_data] return data, 200
def get(self): limit = request.args.get('limit',default=3,type=int) data = list() for value in Visit.visit_popular_by(visit_type='view_newsletter',limit=limit): index, visitor = value try: newsletter = Newsletter.query.get(index) result = { 'id': newsletter.id, 'title': newsletter.title, 'slug': newsletter.slug, 'thumbnail': newsletter.thumbnail, 'created_at': str(newsletter.created_at), 'updated_at': str(newsletter.updated_at) } data.append(result) except Exception: delete_data = Visit.query.filter_by(visitable_id=index).all() [x.delete_from_db() for x in delete_data] return data, 200
def get(self): _activity_name_schema = ActivitySchema(only=("name", )) visits = Visit.visit_popular_by(visit_type='search_activity', limit=6) raw_activity = [Activity.query.get(index) for index, value in visits] return _activity_name_schema.dump(raw_activity, many=True), 200
def get(self): year = request.args.get('year',default=None,type=int) return Visit.total_visitors(year=year), 200