initial commit

parents
FLASK_APP =Main.py
FLASK_ENV = development
app.SECRET_KEY = "testing12#"
__pycache__/
venv/
\ No newline at end of file
from extensions import mongo, db, check_for_token
from Main import app
# from flask import Blueprint
from flask import Response, request, session
# import pymongo
import json
from bson.objectid import ObjectId
import jwt
# ====Routes====
# ====Get users====
@app.route("/auth")
@check_for_token
def authorized():
return Response(
response= json.dumps({"message": "Can access by authorized users"}),
status=200,
)
# public route
@app.route("/public")
def public():
return Response(
response= json.dumps({"message": "Can access by any users"}),
status=200,
)
#login routes
@app.route("/login", methods=["POST"])
def login():
if request.form['email'] and request.form["password"] == 'password':
session['user'] = request.form['email']
token = jwt.encode({
'user': request.form['email']
}, 'app.SECRET_KEY')
return Response(
response=json.dumps({"token": token} )
)
return Response(
response= json.dumps({"message": "login failed"}),
status=400,
)
\ No newline at end of file
from extensions import mongo, db
from Main import app
from flask import Response, request
# import pymongo
import json
from bson.objectid import ObjectId
@app.route("/points/<id>", methods=["POST"])
# @check_for_token
def add_points_earns(id):
try:
# points 1-10
points = 4000
earns = 2000
# points calculation algorithm
# if earns >= 5000:
# points = 10
# elif earns >= 4000 and earns <= 5000:
# points = 9
# elif earns >= 3000 and earns <= 4000:
# points = 8
# elif earns >= 2000 and earns <= 3000:
# points = 7
# elif earns >= 1500 and earns <= 2000:
# points = 6
# elif earns >= 1000 and earns <= 1500:
# points = 5
# elif earns >= 500 and earns <= 1000:
# points = 4
# elif earns >= 500 and earns <= 1000:
# points = 3
# elif earns >= 500 and earns <= 1000:
# points = 2
# elif earns >= 100 and earns <= 500:
# points = 1
user_earns = db.users.find_one({"_id": ObjectId(id)})
# for user in user_earns:
# user["_id"] = str(user["_id"])
print(user_earns)
earnsData = {"earns": earns,
"points": points,
"userID": user_earns}
dbResponse = db.CropData.insert_one(earnsData)
return Response(
response= json.dumps({"message": "user points entered"}),
status=200,
)
except Exception as Ex:
print("**********")
print(Ex)
return Response(
response= json.dumps({"message": "cannot read user"}),
status=500,
)
# @app.route("/getUsers", methods=["GET"])
# def get_some_users():
# try:
# data = list(db.users.find())
# for user in data:
# user["_id"] = str(user["_id"])
# return Response(
# response= json.dumps(data),
# status=200,
# )
# except Exception as Ex:
# print("**********")
# print(Ex)
from extensions import mongo, db
from Main import app
from flask import Response, request
# import pymongo
import json
from bson.objectid import ObjectId
import redis
redisClient = redis.Redis(host='localhost', port=6379, db=0)
print(redisClient)
@app.route("/getDetails", methods=["POST"])
def get_point_redis():
earn_gain = "Earn_gained"
#through loop zadd data with key value pairs to redis db
user_earns = db.CropData.find()
print(user_earns)
for user in user_earns:
# user["_id"] = str(user["_id"])
user["_id"] = str(user["userID"])
earnsbyUsr = user["earns"]
redisClient.zadd(earn_gain, {user["_id"]: earnsbyUsr})
# print(earnsbyUsr)
# print(user["_id"])
print("Contents of the Redis sorted set with scores:")
response = redisClient.zrange(earn_gain, 0, -1, desc=True, withscores=True)
print(response)
my_json = response.decode("utf-8")
print(my_json)
data = json.loads(my_json)
return Response(
response= json.dumps({"message": data}),
status=200,
)
# @app.route("/users", methods=["POST"])
# def create_user():
# try:
# user = {"name": request.form["name"],
# "email": request.form["email"],
# "password": request.form["password"],
# "district": request.form["district"]}
# dbResponse = db.users.insert_one(user)
# print(dbResponse.inserted_id)
# return Response(
# response= json.dumps({"message": "user created",
# "id": f"{dbResponse.inserted_id}"}),
# status=200,
# )
# except Exception as Ex:
# print("**********")
# print(Ex)
# return Response(
# response= json.dumps({"message": "cannot read user"}),
# status=500,
# )
from extensions import mongo, db
from Main import app
from flask import Response, request
# import pymongo
import json
from bson.objectid import ObjectId
@app.route("/points/<id>", methods=["POST"])
# @check_for_token
def calculate_discount():
return Response(
response= json.dumps({"message": "user points entered"}),
status=200,
)
\ No newline at end of file
from extensions import mongo, db
from Main import app
# from flask import Blueprint
from flask import Response, request
# import pymongo
import json
from bson.objectid import ObjectId
# main = Blueprint('main', __name__)
# ====Routes====
# ====post users====
@app.route("/users", methods=["POST"])
def create_user():
try:
user = {"name": request.form["name"],
"email": request.form["email"],
"password": request.form["password"],
"district": request.form["district"]}
dbResponse = db.users.insert_one(user)
print(dbResponse.inserted_id)
return Response(
response= json.dumps({"message": "user created",
"id": f"{dbResponse.inserted_id}"}),
status=200,
)
except Exception as Ex:
print("**********")
print(Ex)
return Response(
response= json.dumps({"message": "cannot read user"}),
status=500,
)
# ====Routes====
# ====Get users====
@app.route("/getUsers", methods=["GET"])
def get_some_users():
try:
data = list(db.users.find())
for user in data:
user["_id"] = str(user["_id"])
return Response(
response= json.dumps(data),
status=200,
)
except Exception as Ex:
print("**********")
print(Ex)
# ====Routes====
# ====update user====
@app.route("/updateUsers/<id>", methods=["PUT"])
def update_user(id):
try:
dbResponse = db.users.update_one(
{"_id": ObjectId(id)},
{"$set": {"name": request.form["name"]}}
)
# for attr in dir(dbResponse):
# print(f"{attr}")
print(dbResponse.upserted_id)
return Response(
response= json.dumps({"message": "updated user"}),
status=200,
)
except Exception as Ex:
print("**********")
print(Ex)
return Response(
response= json.dumps({"message": "cannot update user"}),
status=500,
)
# ====Routes====
# ====delete user====
@app.route("/deleteUsers/<id>", methods=["DELETE"])
def delete_user(id):
try:
dbResponse = db.users.delete_one({"_id": ObjectId(id)},)
return Response(
response= json.dumps({"message": "user deleted", "id": f"{id}"}),
status=200,
)
except Exception as Ex:
print("**********")
print(Ex)
return Response(
response= json.dumps({"message": "cannot delete user"}),
status=500,
)
# # from flask import Flask, Response, request
# from flask import Blueprint
# from flask import Response, request
# import pymongo
# import json
# from bson.objectid import ObjectId
# main = Blueprint('main', __name__)
# # app = Flask(__name__)
# # ====connect database mongo====
# # try:
# # mongo = pymongo.MongoClient(host="localhost", port=27017)
# # db = mongo.company
# # except:
# # print("cannot connect to db")
# # ====Routes====
# # ====post users====
# @app.route("/users", methods=["POST"])
# def create_user():
# try:
# user = {"name": request.form["name"], "age": request.form["age"]}
# dbResponse = db.users.insert_one(user)
# print(dbResponse.inserted_id)
# return Response(
# response= json.dumps({"message": "user created",
# "id": f"{dbResponse.inserted_id}"}),
# status=200,
# )
# except Exception as Ex:
# print("**********")
# print(Ex)
# return Response(
# response= json.dumps({"message": "cannot read user"}),
# status=500,
# )
# # ====Routes====
# # ====Get users====
# @app.route("/getUsers", methods=["GET"])
# def get_some_users():
# try:
# data = list(db.users.find())
# for user in data:
# user["_id"] = str(user["_id"])
# return Response(
# response= json.dumps(data),
# status=200,
# )
# except Exception as Ex:
# print("**********")
# print(Ex)
# # ====Routes====
# # ====update user====
# @app.route("/updateUsers/<id>", methods=["PUT"])
# def update_user(id):
# try:
# dbResponse = db.users.update_one(
# {"_id": ObjectId(id)},
# {"$set": {"name": request.form["name"]}}
# )
# # for attr in dir(dbResponse):
# # print(f"{attr}")
# print(dbResponse.upserted_id)
# return Response(
# response= json.dumps({"message": "updated user"}),
# status=200,
# )
# except Exception as Ex:
# print("**********")
# print(Ex)
# return Response(
# response= json.dumps({"message": "cannot update user"}),
# status=500,
# )
# # ====Routes====
# # ====delete user====
# @app.route("/deleteUsers/<id>", methods=["DELETE"])
# def delete_user(id):
# try:
# dbResponse = db.users.delete_one({"_id": ObjectId(id)},)
# return Response(
# response= json.dumps({"message": "user deleted", "id": f"{id}"}),
# status=200,
# )
# except Exception as Ex:
# print("**********")
# print(Ex)
# return Response(
# response= json.dumps({"message": "cannot delete user"}),
# status=500,
# )
# # ====Main App====
# # if __name__ == "__main__":
# # app.run(port=5000, debug=True)
from flask import Flask
app = Flask(__name__)
app.config['SECRET_KEY'] = "testing12#"
# from Agripreneur_App.Routes.Agri_App import create_user
# from extensions import mongo, db
import Agripreneur_App.Routes.User
import Agripreneur_App.Auth.Token
import Agripreneur_App.Routes.Leaderboard
import Agripreneur_App.Routes.Gamification
if __name__ == "__main__":
app.run(port=5000, debug=True)
# mongoDB
import pymongo
from flask import Response, request
import json
from functools import wraps
from bson.objectid import ObjectId
import jwt
try:
mongo = pymongo.MongoClient(host="localhost", port=27017)
db = mongo.company
except:
print("cannot connect to db")
# JWT config
def check_for_token(func):
@wraps(func)
def wrapped(*args, **kwargs):
token = request.args.get('Token')
print(token)
if not token:
return Response(
response= json.dumps({"message": "Missing token"}),
status=200,
)
try:
data=jwt.decode(token, 'app.SECRET_KEY', ['HS256'])
return Response(
response= json.dumps({"message": data}),
status=200,
)
except:
return Response(
response= json.dumps({"message": "invalid token"}),
status=200,
)
return func(*args, **kwargs)
return wrapped
home = C:\Python38
include-system-site-packages = false
version = 3.8.7
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment