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:
parent
40d4e96dd2
commit
cdfd6c3e49
2 changed files with 37 additions and 0 deletions
|
@ -3,6 +3,7 @@ from .users import User
|
|||
from .telegram import Telegram
|
||||
from .discord import Discord
|
||||
from .matrix import Matrix
|
||||
from .aliases import Alias
|
||||
|
||||
# Enter the tables of your Pack here!
|
||||
available_tables = {
|
||||
|
@ -10,6 +11,7 @@ available_tables = {
|
|||
Telegram,
|
||||
Discord,
|
||||
Matrix,
|
||||
Alias
|
||||
}
|
||||
|
||||
# Don't change this, it should automatically generate __all__
|
||||
|
|
35
royalnet/backpack/tables/aliases.py
Normal file
35
royalnet/backpack/tables/aliases.py
Normal 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}"
|
Loading…
Reference in a new issue