1
0
mirror of https://github.com/gryf/slack-backup.git synced 2025-12-17 11:30:25 +01:00

Tweaked mapping for topic and purpose

This commit is contained in:
2016-11-19 09:12:55 +01:00
parent 3055edd0de
commit e1adfd7a57

View File

@@ -1,7 +1,7 @@
"""
Convinient object mapping from slack API reponses
"""
from sqlalchemy import Column, Integer, Text
from sqlalchemy import Column, Integer, Text, Boolean, ForeignKey
from sqlalchemy import DateTime
from sqlalchemy import UniqueConstraint
from sqlalchemy.orm import relation
@@ -11,18 +11,19 @@ from slack_backup.db import Base
class IdMap(Base):
__tablename__ = "idmap"
slackid = Column(Text, nullable=False)
dbid = Column(Integer, nullable=False)
classname = Column(Text, nullable=False)
slackid = Column(Text, nullable=False, primary_key=True)
dbid = Column(Integer, nullable=False, primary_key=True,
autoincrement=False)
classname = Column(Text, nullable=False, primary_key=True)
__table_args__ = (UniqueConstraint('slackid', 'dbid', 'classname',
name='slackid_dbid_classname_uniq'))
name='slackid_dbid_classname_uniq'),)
class Purpose(Base):
__tablename__ = "purpose"
creator = relation("User", backref="purposes")
last_set = Column(DateTime)
value = Column(Text)
__tablename__ = "purposes"
creator = Column(Integer, ForeignKey("users.id"), index=True)
last_set = Column(DateTime, primary_key=True)
value = Column(Text, primary_key=True)
def __init__(self, data_dict=None):
data_dict = data_dict or {}
@@ -38,10 +39,10 @@ class Purpose(Base):
class Topic(Base):
__tablename__ = "topic"
creator = relation("User", backref="topics")
last_set = Column(DateTime)
value = Column(Text)
__tablename__ = "topics"
creator = Column(Integer, ForeignKey("users.id"), index=True)
last_set = Column(DateTime, primary_key=True)
value = Column(Text, primary_key=True)
def __init__(self, data_dict=None):
data_dict = data_dict or {}
@@ -102,11 +103,19 @@ class UserProfile(object):
self.skype = data_dict.get("skype", "")
class User(object):
def __init__(self, data_dict=None):
class User(Base):
__tablename__ = "users"
id = Column(Integer, primary_key=True)
deleted = Column(Boolean, default=False)
name = Column(Text)
real_name = Column(Text)
profile = Column(Integer)
def __init__(self, user_id, data_dict=None):
data_dict = data_dict or {}
self._id = data_dict.get("id", "")
self.id = data_dict.get("id", "")
self.color = data_dict.get("color", "")
self.deleted = data_dict.get("deleted", False)
self.has_2fa = data_dict.get("has_2fa", False)