def dashboard(): if request.method=="POST": name = request.form['moviename'] searchstring = name.split(" ") genre = request.form['genre'] result = [] if genre.lower() == 'all': if name=="": r = requests.get(apiurl+'/api/movies') result = r.json() else: result = Movie.objects(name=name).to_json() result = json.loads(result) else: print(genre.capitalize()) genre = genre.capitalize() if name=="": result = Movie.objects(genres__in=[genre]).to_json() else: result = Movie.objects(name=name, genres__in=[genre]).to_json() print(result) result = json.loads(result) return render_template('dashboard.html',movies=result) r = requests.get(apiurl+'/api/movies') if (r.json()): return render_template('dashboard.html', movies=r.json()) else: msg = 'No articles found' return render_template('dashboard.html', msg=msg)
def get(self, id): try: movies = Movie.objects().get(id=id).to_json() return Response(movie, mimetype="application/json", status=200) except DoesNotExist: raise MovieNotExistsError except Exception: raise InternalServerError
def delete(self, id): try: user_id = get_jwt_identity() Movie.objects.get(id=id, added_by=user_id).delete() movies = Movie.objects().to_json() return Response(movies, mimetype='application/json', status=200) except DoesNotExist: raise MovieNotExistsError except Exception as e: raise InternalServerError
def delete(self, id): try: user_id = get_jwt_identity() movie = Movie.objects().get(id=id, added_by=user_id) movie.delete() return '', 200 except DoesNotExist: raise DeletingMovieError except Exception: raise InternalServerError
def put(self, id): try: user_id = get_jwt_identity() movie = Movie.objects().get(id=id, added_by=user_id) body = request.get_json() Movie.objects.get(id=id).update(**body) return '', 200 except InvalidQueryError: raise SchemaValidationError except DoesNotExist: raise UpdatingMovieError except Exception: raise InternalServerError
def get(self): page = request.args.get("page", 0) limit = request.args.get("limit", 20) try: page = int(page) limit = int(limit) except Exception as e: return Response(f'{e}', status=400) start = page*limit end = start+limit top_movies = Menu.objects(name="top").first() # later put limit here movies = Movie.objects(_id__in=top_movies.titles[start:end]).scalar(*main_fields).to_json() return Response(movies, mimetype="application/json", status=200)
def login(): if request.method=='POST': #get form fields email = request.form['email'] password = request.form['password'] json = {} json['email'] = email json['password'] = password print(password) print(getenv('mongodb_host')) print("all movies are ", Movie.objects().to_json()) r = requests.post(url = apiurl+"/api/login", json=json) print(apiurl) print(r) if r.status_code == 200: session['logged_in'] = True session['username'] = email session['is_admin'] = r.json()['is_admin'] flash('you are logged in','success') return redirect(url_for('dashboard')) else: flash('you are not registered or your username and password is wrong','error') return render_template('login.html') return render_template('login.html')
def worst_movies(number): movie = Movie.objects().order_by("score").limit(int(number)) return {'results': movie}, 200
def best_movie(): movie = Movie.objects().order_by("-score").limit(1).first() return {'results': movie}, 200
def search_by_score(query): results = Movie.objects(score=query) return {'results': results}, 200
def filter_by_score(query): results = Movie.objects(score__gte=query) return {'results': results}, 200
def get(): movies = Movie.objects().to_json() return {'movies': movies}
def least_profitable_movie(): movie = Movie.objects().order_by("box_office").limit(1).first() return {'results': movie}, 200
def get_movie(): movie = Movie.objects(id=id) return movie, 200
def search_cast(query): results = Movie.objects(casts=re.compile(query, re.IGNORECASE)) return {'results': results}, 200
def get_movies(): import pdb pdb.set_trace() movies = Movie.objects().to_json() return Response(movies, mimetype="application/json", status=200)
def filter_by_box_office_collection(query): results = Movie.objects(box_office__gte=query) return {'results': results}, 200
def search_by_name(query): res = Movie.objects(name__icontains=query) return {'results': res}, 200
def highest_grossing_movies(number): movie = Movie.objects().order_by("-box_office").limit(int(number)) return {'results': movie}, 200
def search_review(query): results = Movie.objects(reviews=re.compile('.*' + query + '.*', re.IGNORECASE)) return {'results': results}, 200
def get(self): movies = Movie.objects().to_json() return Response(movies, mimetype="application/json", status=200)
def get(self): movies = Movie.objects() return jsonify(movies)