Source code for cfxdb.user.activation_token_fbs

##############################################################################
#
#                        Crossbar.io Database
#     Copyright (c) typedef int GmbH. Licensed under MIT.
#
##############################################################################

import uuid
from datetime import datetime

from cfxdb.gen.user import ActivationToken as ActivationTokenGenFbs
from cfxdb.gen.user.ActivationStatus import ActivationStatus
from cfxdb.gen.user.ActivationType import ActivationType


[docs] class ActivationTokenFbs(object): """ CFC user activation token database class for Flatbuffers. """ def __init__(self, from_fbs=None):
[docs] self._from_fbs = from_fbs
[docs] self._oid = None
[docs] self._atype = None
[docs] self._status = None
[docs] self._created = None
[docs] self._completed = None
[docs] self._code = None
[docs] self._email = None
[docs] self._pubkey = None
[docs] def copy(self, other): self._oid = other.oid self._atype = other.atype self._status = other.status self._created = other.created self._completed = other.completed self._code = other.code self._email = other.email self._pubkey = other.pubkey
@property
[docs] def oid(self): if self._oid is None and self._from_fbs: s = self._from_fbs.Oid() if s: self._oid = uuid.UUID(s.decode()) return self._oid
@oid.setter def oid(self, value): assert isinstance(value, uuid.UUID) self._oid = value @property
[docs] def atype(self): if self._atype is None and self._from_fbs: self._atype = self._from_fbs.Atype() return self._atype
@atype.setter def atype(self, value): assert type(value) == int assert value in [ActivationType.REGISTRATION, ActivationType.LOGIN] self._atype = value @property
[docs] def status(self): if self._status is None and self._from_fbs: self._status = self._from_fbs.Status() return self._status
@status.setter def status(self, value): assert type(value) == int assert value in [ActivationStatus.PENDING, ActivationStatus.ACTIVE, ActivationStatus.EXPIRED] self._status = value @property
[docs] def created(self): if self._created is None and self._from_fbs: val = self._from_fbs.Created() if val: self._created = datetime.utcfromtimestamp(float(val) / 1000000.0) return self._created
@created.setter def created(self, value): assert isinstance(value, datetime) self._created = value @property
[docs] def completed(self): if self._completed is None and self._from_fbs: val = self._from_fbs.Completed() if val: self._completed = datetime.utcfromtimestamp(float(val) / 1000000.0) return self._completed
@completed.setter def completed(self, value): assert value is None or isinstance(value, datetime) self._completed = value @property
[docs] def code(self): if self._code is None and self._from_fbs: self._code = self._from_fbs.Code().decode() return self._code
@code.setter def code(self, value): assert type(value) == str self._code = value @property
[docs] def email(self): if self._email is None and self._from_fbs: self._email = self._from_fbs.Email().decode() return self._email
@email.setter def email(self, value): assert type(value) == str self._email = value @property
[docs] def pubkey(self): if self._pubkey is None and self._from_fbs: self._pubkey = self._from_fbs.Pubkey().decode() return self._pubkey
@pubkey.setter def pubkey(self, value): # hex string with 256 bit Ed25519 WAMP-cryptosign public key assert type(value) == str assert len(value) == 64 self._pubkey = value @staticmethod
[docs] def cast(buf): return ActivationTokenFbs(ActivationTokenGenFbs.ActivationToken.GetRootAsActivationToken(buf, 0))
[docs] def build(self, builder): oid = self.oid if oid: oid = builder.CreateString(str(oid)) code = self.code if code: code = builder.CreateString(code) email = self.email if email: email = builder.CreateString(email) pubkey = self.pubkey if pubkey: pubkey = builder.CreateString(pubkey) ActivationTokenGenFbs.ActivationTokenStart(builder) if oid: ActivationTokenGenFbs.ActivationTokenAddOid(builder, oid) ActivationTokenGenFbs.ActivationTokenAddAtype(builder, self.atype) ActivationTokenGenFbs.ActivationTokenAddStatus(builder, self.status) if self.created: ActivationTokenGenFbs.ActivationTokenAddCreated(builder, int(self.created.timestamp() * 1000000)) if self.completed: ActivationTokenGenFbs.ActivationTokenAddCompleted(builder, int(self.completed.timestamp() * 1000000)) if code: ActivationTokenGenFbs.ActivationTokenAddCode(builder, code) if email: ActivationTokenGenFbs.ActivationTokenAddEmail(builder, email) if pubkey: ActivationTokenGenFbs.ActivationTokenAddPubkey(builder, pubkey) final = ActivationTokenGenFbs.ActivationTokenEnd(builder) return final