mirror of
https://github.com/ReVanced/revanced-api.git
synced 2026-01-11 22:06:19 +00:00
feat: Add announcements endpoints (#91)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Alexandre Teles (afterSt0rm) <alexandre.teles@ufba.br>
This commit is contained in:
6
data/database.py
Normal file
6
data/database.py
Normal file
@@ -0,0 +1,6 @@
|
||||
from sqlalchemy import create_engine
|
||||
from sqlalchemy.orm import sessionmaker
|
||||
|
||||
engine = create_engine("sqlite:///persistance/database.db")
|
||||
|
||||
Session = sessionmaker(bind=engine)
|
||||
77
data/models.py
Normal file
77
data/models.py
Normal file
@@ -0,0 +1,77 @@
|
||||
from sqlalchemy import Column, Integer, String, DateTime
|
||||
from sqlalchemy.ext.declarative import declarative_base
|
||||
from sqlalchemy.orm import relationship
|
||||
from sqlalchemy import ForeignKey
|
||||
|
||||
from data.database import Session, engine
|
||||
|
||||
Base = declarative_base()
|
||||
|
||||
|
||||
class AnnouncementDbModel(Base):
|
||||
__tablename__ = "announcements"
|
||||
|
||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||
author = Column(String, nullable=True)
|
||||
title = Column(String, nullable=False)
|
||||
message = Column(String, nullable=True)
|
||||
attachments = relationship("AttachmentDbModel", back_populates="announcements")
|
||||
channel = Column(String, nullable=True)
|
||||
created_at = Column(DateTime, nullable=False)
|
||||
level = Column(Integer, nullable=True)
|
||||
|
||||
|
||||
class AttachmentDbModel(Base):
|
||||
__tablename__ = "attachments"
|
||||
|
||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||
announcement_id = Column(Integer, ForeignKey("announcements.id"))
|
||||
attachment_url = Column(String, nullable=False)
|
||||
|
||||
announcements = relationship("AnnouncementDbModel", back_populates="attachments")
|
||||
|
||||
|
||||
class UserDbModel(Base):
|
||||
__tablename__ = "users"
|
||||
|
||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||
username = Column(String, nullable=False)
|
||||
password = Column(String, nullable=False)
|
||||
|
||||
# Required by sanic-beskar
|
||||
@property
|
||||
def rolenames(self):
|
||||
return []
|
||||
|
||||
@classmethod
|
||||
async def lookup(cls, username=None):
|
||||
try:
|
||||
session = Session()
|
||||
|
||||
user = session.query(UserDbModel).filter_by(username=username).first()
|
||||
|
||||
session.close()
|
||||
|
||||
return user
|
||||
except:
|
||||
return None
|
||||
|
||||
@classmethod
|
||||
async def identify(cls, id):
|
||||
try:
|
||||
session = Session()
|
||||
|
||||
user = session.query(UserDbModel).filter_by(id=id).first()
|
||||
|
||||
session.close()
|
||||
|
||||
return user
|
||||
except:
|
||||
return None
|
||||
|
||||
@property
|
||||
def identity(self):
|
||||
return self.id
|
||||
|
||||
|
||||
Base.metadata.create_all(engine)
|
||||
Reference in New Issue
Block a user