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 .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__
|
||||||
|
|
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