Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 16 additions & 9 deletions app/crud.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
from .auth import get_password_hash
from sqlalchemy import func


def get_user(db: Session, user_id: int):
return db.query(models.User).filter(models.User.id == user_id).first()

Expand All @@ -20,12 +21,10 @@ def get_users(db: Session, skip: int = 0, limit: int = 100):
def create_user(db: Session, user: schemas.UserCreate):
hashed_password = get_password_hash(user.password)
user_dict = user.dict()
user_dict['hashed_password'] = hashed_password
del user_dict['password']
user_dict["hashed_password"] = hashed_password
del user_dict["password"]
print(user_dict)
db_user = models.User(
**user_dict
)
db_user = models.User(**user_dict)
db.add(db_user)
db.commit()
db.refresh(db_user)
Expand Down Expand Up @@ -287,11 +286,19 @@ def get_user_reports_by_discord_id(db: Session, discord_username: str):
.all()[0]["Report"]
)

def add_reports_by_discord_id(db:Session, report: schemas.ReportDiscord, discord_username: str):
user_id = db.query(models.User).filter(models.User.discord_username == discord_username).first().id

def add_reports_by_discord_id(
db: Session, report: schemas.ReportDiscord, discord_username: str
):
user_id = (
db.query(models.User)
.filter(models.User.discord_username == discord_username)
.first()
.id
)
db_report = models.Report(**report.dict())
db_report.owner_id=user_id
db_report.owner_id = user_id
db.add(db_report)
db.commit()
db.refresh()
return {"message": "report succesfully added"}
return {"message": "report succesfully added"}
25 changes: 15 additions & 10 deletions app/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -126,12 +126,12 @@ async def login_for_access_token(
"user_id": user.id,
"full_name": user.full_name,
"role": user.role,
"phone_no":user.phone_no,
"register_num":user.register_num,
"college":user.college,
"join_year":user.join_year,
"grad_year":user.grad_year,
"dept":user.dept
"phone_no": user.phone_no,
"register_num": user.register_num,
"college": user.college,
"join_year": user.join_year,
"grad_year": user.grad_year,
"dept": user.dept,
},
expires_delta=access_token_expires,
)
Expand Down Expand Up @@ -273,12 +273,12 @@ def forgot_password(user_email: str, db: Session = Depends(get_db)):


@app.post("/enterotp")
def enter_otp(user:schemas.ForgotPass, db: Session = Depends(get_db)):
def enter_otp(user: schemas.ForgotPass, db: Session = Depends(get_db)):
db_user = crud.get_user_by_email(db, email=user.email)
if db_user.otp == user.otp:
db_user.otp = 0
db_user.hashed_password = auth.get_password_hash(user.password)
crud.save_user_details(db,db_user)
crud.save_user_details(db, db_user)
return {"status": "success", "message": "Password changed successfully"}
else:
return {"status": "failure", "message": "OTP not verified"}
Expand Down Expand Up @@ -351,6 +351,11 @@ def update_discord_id(
def get_user_report_by_discord_id(discord_username: str, db: Session = Depends(get_db)):
return crud.get_user_reports_by_discord_id(db=db, discord_username=discord_username)


@app.post("/discord")
def add_report_by_discord_username(discord_username: str, report:schemas.ReportDiscord, db: Session = Depends(get_db)):
return crud.add_reports_by_discord_id(db=db, discord_username=discord_username, report=report)
def add_report_by_discord_username(
discord_username: str, report: schemas.ReportDiscord, db: Session = Depends(get_db)
):
return crud.add_reports_by_discord_id(
db=db, discord_username=discord_username, report=report
)
15 changes: 12 additions & 3 deletions app/models.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,15 @@
from enum import unique
from pydoc import describe
from sqlalchemy import Boolean, Column, ForeignKey, Integer, String, DateTime, Enum, Date
from sqlalchemy import (
Boolean,
Column,
ForeignKey,
Integer,
String,
DateTime,
Enum,
Date,
)
from sqlalchemy.orm import relationship
from .enums import TaskEnum, GrievanceEnum, PriorityEnum, StatusEnum
from .database import Base
Expand All @@ -17,12 +26,12 @@ class User(Base):
rfid_key = Column(String, unique=True)
otp = Column(Integer, unique=True)
role = Column(String, default="student")
register_num = Column(String, unique = True)
register_num = Column(String, unique=True)
discord_username = Column(String, unique=True)
phone_no = Column(String, unique=True)
college = Column(String)
dept = Column(String)
join_year= Column(Integer)
join_year = Column(Integer)
grad_year = Column(Integer)
otp_last_gen = Column(DateTime)
items = relationship("Item", back_populates="owner")
Expand Down
18 changes: 11 additions & 7 deletions app/schemas.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,12 +56,13 @@ class UserBase(BaseModel):

class UserCreate(UserBase):
password: str
phone_no:str
register_num:str
college:str
join_year:int
grad_year:int
dept:str
phone_no: str
register_num: str
college: str
join_year: int
grad_year: int
dept: str


class UserDelete(BaseModel):
id: int
Expand Down Expand Up @@ -95,6 +96,7 @@ class Report(BaseModel):
class Config:
orm_mode = True


class ReportDiscord(BaseModel):
task_type: TaskEnum
title: str
Expand All @@ -108,6 +110,7 @@ class ReportDiscord(BaseModel):
class Config:
orm_mode = True


class ResetPasswordBase(BaseModel):
email: str
password: str
Expand Down Expand Up @@ -217,7 +220,8 @@ class AttendanceResponse(BaseModel):
class Config:
orm_mode = True


class ForgotPass(BaseModel):
email: str
otp: int
password: str
password: str