diff --git a/Pipfile b/Pipfile index 8cc92c5..819dbcb 100644 --- a/Pipfile +++ b/Pipfile @@ -9,6 +9,7 @@ pymysql = "*" flask-bcrypt = "*" python-dotenv = "*" requests = "*" +flask-cors = "*" [dev-packages] diff --git a/Pipfile.lock b/Pipfile.lock index f48b87c..30fa501 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "a9c0d1d818d57752f0c8e5b75b6e56efa3163c12f21fa2b4f37ff197d55a75c2" + "sha256": "698215aecc58e9997ba8a33c7d4f09cbf8442236a33ad46f3e0fdda2ed80693c" }, "pipfile-spec": 6, "requires": { @@ -122,6 +122,14 @@ "index": "pypi", "version": "==0.7.1" }, + "flask-cors": { + "hashes": [ + "sha256:74efc975af1194fc7891ff5cd85b0f7478be4f7f59fe158102e91abb72bb4438", + "sha256:b60839393f3b84a0f3746f6cdca56c1ad7426aa738b70d6c61375857823181de" + ], + "index": "pypi", + "version": "==3.0.10" + }, "idna": { "hashes": [ "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff", diff --git a/app/__init__.py b/app/__init__.py index 4b175dd..7fee095 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -3,4 +3,4 @@ print( os.environ.get("API_KEY") ) app = Flask(__name__) -app.secret_key = os.environ.get("KEY") \ No newline at end of file +app.secret_key = "This is my secret" \ No newline at end of file diff --git a/app/controllers/private.py b/app/controllers/private.py index e76a4da..fdf6502 100644 --- a/app/controllers/private.py +++ b/app/controllers/private.py @@ -1,8 +1,11 @@ from app import app -from flask import Flask, render_template, redirect, session, request, flash +from flask import Flask, render_template, redirect, session, request, flash, jsonify +import requests import re -from flask_bcrypt import Bcrypt +import os from app.models.user import User +from flask_cors import CORS +CORS(app) @app.route('/dashboard') @@ -12,4 +15,28 @@ def dashboard(): data = { 'id': session['user_id'] } - return render_template('dashboard.html', user=User.getOne(data)) \ No newline at end of file + return render_template('dashboard.html', user=User.getOne(data)) + +@app.route('/superhero') +def superhero(): + if 'user_id' not in session: + return redirect('/') + data = { + 'id': session['user_id'] + } + return render_template('superhero.html', user=User.getOne(data)) + +@app.route('/search') +# @cross_origin() +def getData(): + print(request.form['query']) + r = request.get(f"https://superheroapi.com/api/{os.environ.get('API_KEY')}/search/{request.form['query']}") + print("print r: ", r) + print("print json: ", r.json()) + return jsonify(r.json()) + +@app.route('/getTune', methods=['POST']) +def getTune(): + r = request.get(f"https://looney-toons-api.herokuapp.com/api/characters") + print("print Tunes: ", r.json()) + return jsonify(r.json()) \ No newline at end of file diff --git a/app/controllers/public.py b/app/controllers/public.py index 4567177..e201e94 100644 --- a/app/controllers/public.py +++ b/app/controllers/public.py @@ -3,6 +3,7 @@ from flask_bcrypt import Bcrypt from app.models.user import User + bcrypt = Bcrypt(app) # Main landing page - contains log/reg @@ -20,7 +21,6 @@ def register(): 'firstName': request.form['firstName'], 'lastName': request.form['lastName'], 'email': request.form['email'], - 'uImg': request.form['uImg'], 'password': bcrypt.generate_password_hash(request.form['password']) } id = User.save(newUser) diff --git a/app/models/user.py b/app/models/user.py index 8ea3f78..17bb6f9 100644 --- a/app/models/user.py +++ b/app/models/user.py @@ -5,7 +5,7 @@ class User: - db_name = 'week7_inventory' + db_name = 'week8' def __init__(self, data): self.id = data['id'] self.firstName = data['firstName'] @@ -20,7 +20,7 @@ def validate(user): isValid = True query = "SELECT * FROM user WHERE email = %(email)s;" results = connectToMySQL(User.db_name).query_db(query,user) - if len(results) >= 1: + if len(results) > 1: isValid = False flash("That email is already in the system!") if len(user['password']) < 6: diff --git a/app/static/css/styles.css b/app/static/css/styles.css new file mode 100644 index 0000000..cb9c4e3 --- /dev/null +++ b/app/static/css/styles.css @@ -0,0 +1,27 @@ +body { + background-color: blueviolet; + color: white; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +} +body main { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +} +body main #toon { + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + flex-wrap: wrap; +} +body main #toon img { + height: 150px; + padding: 1em; + margin: 1em; + background-color: green; +} diff --git a/app/static/css/styles.less b/app/static/css/styles.less index e69de29..7c06106 100644 --- a/app/static/css/styles.less +++ b/app/static/css/styles.less @@ -0,0 +1,30 @@ +body { + background-color: blueviolet; + color: white; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + + main { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + + #toon { + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + flex-wrap: wrap; + + img { + height: 150px; + padding: 1em; + margin: 1em; + background-color: green; + } + } + } +} \ No newline at end of file diff --git a/app/static/js/scripts.js b/app/static/js/scripts.js index e69de29..12ba3f7 100644 --- a/app/static/js/scripts.js +++ b/app/static/js/scripts.js @@ -0,0 +1,29 @@ +var toon = "https://looney-toons-api.herokuapp.com/api/characters" + +async function getToon() { + var response = await fetch(`${toon}`) + var data = await response.json() + console.log("full api data", data) + console.log("narrowing it down", data.data) +// console.log("showing 1 index", data.data[10]) + var node = document.createElement('div') + +// var result = document.getElementById('toon') + for (var i = 0; i < data.data.length; i++) { + console.log(data.data[i]) + var img = new Image() + img.src = `${data.data[i].img}` + img.alt = `${data.data[i].name}` + node.appendChild(img) + } + document.getElementById('toon').appendChild(node) +} +function search(e){ + e.preventDefault(); + var searchForm = document.getElementById('searchForm') + var form = new FormData(searchForm); + fetch('http://localhost:5000/search',{method:'GET',body:form}) + .then(res => res.json() ) + .then( data => console.log(data) ) + .catch(err => console.log(err)) +} \ No newline at end of file diff --git a/app/templates/dashboard.html b/app/templates/dashboard.html index 9aeb52f..72cd4b5 100644 --- a/app/templates/dashboard.html +++ b/app/templates/dashboard.html @@ -4,6 +4,8 @@ + +