Source code for sni.discord.models
"""
Database models
"""
import mongoengine as me
from sni.user.models import User
from sni.utils import MINUTE
import sni.utils as utils
[docs]class DiscordAuthenticationChallenge(me.Document):
"""
Represents a pending authentication challenge.
"""
code = me.StringField(required=True, unique=True)
"""Challenge code"""
created_on = me.DateTimeField(default=utils.now, required=True)
"""Timestamp of the creation of this document"""
user = me.ReferenceField(User, required=True, unique=True)
"""User that stated this authentication challenge"""
meta = {
"indexes": [
{"fields": ["created_on"], "expireAfterSeconds": 2 * MINUTE},
],
}
def __repr__(self) -> str:
return (
f"<DiscordAuthenticationChallenge: {repr(self.user)} "
f"{self.created_on}>"
)