1
Fork 0
mirror of https://github.com/RYGhub/royalnet.git synced 2024-11-23 19:44:20 +00:00

Promote aliases to royalnet

This commit is contained in:
Steffo 2020-02-03 23:08:00 +01:00
parent 40d4e96dd2
commit cdfd6c3e49
2 changed files with 37 additions and 0 deletions

View file

@ -3,6 +3,7 @@ from .users import User
from .telegram import Telegram from .telegram import Telegram
from .discord import Discord from .discord import Discord
from .matrix import Matrix from .matrix import Matrix
from .aliases import Alias
# Enter the tables of your Pack here! # Enter the tables of your Pack here!
available_tables = { available_tables = {
@ -10,6 +11,7 @@ available_tables = {
Telegram, Telegram,
Discord, Discord,
Matrix, Matrix,
Alias
} }
# Don't change this, it should automatically generate __all__ # Don't change this, it should automatically generate __all__

View file

@ -0,0 +1,35 @@
from sqlalchemy import Column, \
Integer, \
String, \
ForeignKey
from sqlalchemy.orm import relationship
from sqlalchemy.ext.declarative import declared_attr
class Alias:
__tablename__ = "aliases"
@declared_attr
def royal_id(self):
return Column(Integer, ForeignKey("users.uid"))
@declared_attr
def alias(self):
return Column(String, primary_key=True)
@declared_attr
def royal(self):
return relationship("User", backref="aliases")
@classmethod
def find_by_alias(cls, alchemy, session, alias: str):
result = session.query(alchemy.get(cls)).filter_by(alias=alias.lower()).one_or_none()
if result is not None:
result = result.royal
return result
def __repr__(self):
return f"<Alias {str(self)}>"
def __str__(self):
return f"{self.alias}->{self.royal_id}"