This commit is contained in:
parent
e151034bab
commit
46e684b28d
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -147,3 +147,4 @@ migration/content/**/*.md
|
||||||
*.csv
|
*.csv
|
||||||
dev-server.pid
|
dev-server.pid
|
||||||
backups/
|
backups/
|
||||||
|
poetry.lock
|
|
@ -1,3 +1,8 @@
|
||||||
|
[0.2.12]
|
||||||
|
- Author.userpic -> Author.pic
|
||||||
|
- CommunityAuthor.role is string now
|
||||||
|
- Author.user is string now
|
||||||
|
|
||||||
[0.2.11]
|
[0.2.11]
|
||||||
- redis interface updated
|
- redis interface updated
|
||||||
- viewed interface updated
|
- viewed interface updated
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
from services.db import Base, engine
|
from services.db import Base, engine
|
||||||
from orm.shout import Shout
|
from orm.shout import Shout
|
||||||
|
from orm.community import Community
|
||||||
|
|
||||||
def init_tables():
|
def init_tables():
|
||||||
Base.metadata.create_all(engine)
|
Base.metadata.create_all(engine)
|
||||||
Shout.init_table()
|
Shout.init_table()
|
||||||
|
Community.init_table()
|
||||||
print("[orm] tables initialized")
|
print("[orm] tables initialized")
|
||||||
|
|
|
@ -2,7 +2,7 @@ from datetime import datetime
|
||||||
from sqlalchemy import JSON as JSONType
|
from sqlalchemy import JSON as JSONType
|
||||||
from sqlalchemy import Boolean, Column, DateTime, ForeignKey, Integer, String
|
from sqlalchemy import Boolean, Column, DateTime, ForeignKey, Integer, String
|
||||||
from sqlalchemy.orm import relationship
|
from sqlalchemy.orm import relationship
|
||||||
from services.db import Base, local_session
|
from services.db import Base
|
||||||
|
|
||||||
|
|
||||||
class AuthorRating(Base):
|
class AuthorRating(Base):
|
||||||
|
@ -31,37 +31,16 @@ class AuthorFollower(Base):
|
||||||
class Author(Base):
|
class Author(Base):
|
||||||
__tablename__ = "author"
|
__tablename__ = "author"
|
||||||
|
|
||||||
user = Column(Integer, nullable=False) # unbounded link with authorizer's User type
|
user = Column(String, nullable=False) # unbounded link with authorizer's User type
|
||||||
bio = Column(String, nullable=True, comment="Bio") # status description
|
bio = Column(String, nullable=True, comment="Bio") # status description
|
||||||
about = Column(String, nullable=True, comment="About") # long and formatted
|
about = Column(String, nullable=True, comment="About") # long and formatted
|
||||||
userpic = Column(String, nullable=True, comment="Userpic")
|
pic = Column(String, nullable=True, comment="Userpic")
|
||||||
name = Column(String, nullable=True, comment="Display name")
|
name = Column(String, nullable=True, comment="Display name")
|
||||||
slug = Column(String, unique=True, comment="Author's slug")
|
slug = Column(String, unique=True, comment="Author's slug")
|
||||||
muted = Column(Boolean, default=False)
|
|
||||||
createdAt = Column(DateTime, nullable=False, default=datetime.now)
|
createdAt = Column(DateTime, nullable=False, default=datetime.now)
|
||||||
lastSeen = Column(DateTime, nullable=False, default=datetime.now) # Td se 0e
|
lastSeen = Column(DateTime, nullable=False, default=datetime.now) # Td se 0e
|
||||||
deletedAt = Column(DateTime, nullable=True, comment="Deleted at")
|
deletedAt = Column(DateTime, nullable=True, comment="Deleted at")
|
||||||
|
|
||||||
links = Column(JSONType, nullable=True, comment="Links")
|
links = Column(JSONType, nullable=True, comment="Links")
|
||||||
ratings = relationship(AuthorRating, foreign_keys=AuthorRating.author)
|
ratings = relationship(AuthorRating, foreign_keys=AuthorRating.author)
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def init_table():
|
|
||||||
with local_session() as session:
|
|
||||||
default = session.query(Author).filter(Author.slug == "anonymous").first()
|
|
||||||
if not default:
|
|
||||||
default_dict = {
|
|
||||||
"user": 0,
|
|
||||||
"name": "Аноним",
|
|
||||||
"slug": "anonymous",
|
|
||||||
}
|
|
||||||
default = Author.create(**default_dict)
|
|
||||||
session.add(default)
|
|
||||||
discours_dict = {
|
|
||||||
"user": 1,
|
|
||||||
"name": "Дискурс",
|
|
||||||
"slug": "discours",
|
|
||||||
}
|
|
||||||
discours = Author.create(**discours_dict)
|
|
||||||
session.add(discours)
|
|
||||||
session.commit()
|
|
||||||
Author.default_author = default
|
|
||||||
|
|
|
@ -6,12 +6,6 @@ from services.db import Base, local_session
|
||||||
from orm.author import Author
|
from orm.author import Author
|
||||||
|
|
||||||
|
|
||||||
class CommunityRole:
|
|
||||||
__tablename__ = "community_role"
|
|
||||||
|
|
||||||
name = Column(String, nullable=False)
|
|
||||||
|
|
||||||
|
|
||||||
class CommunityAuthor(Base):
|
class CommunityAuthor(Base):
|
||||||
__tablename__ = "community_author"
|
__tablename__ = "community_author"
|
||||||
|
|
||||||
|
@ -19,7 +13,7 @@ class CommunityAuthor(Base):
|
||||||
follower = Column(ForeignKey("author.id"), primary_key=True)
|
follower = Column(ForeignKey("author.id"), primary_key=True)
|
||||||
community = Column(ForeignKey("community.id"), primary_key=True)
|
community = Column(ForeignKey("community.id"), primary_key=True)
|
||||||
joinedAt = Column(DateTime, nullable=False, default=datetime.now)
|
joinedAt = Column(DateTime, nullable=False, default=datetime.now)
|
||||||
role = Column(ForeignKey("community_role.id"), nullable=False)
|
role = Column(String, nullable=False)
|
||||||
|
|
||||||
|
|
||||||
class Community(Base):
|
class Community(Base):
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[tool.poetry]
|
[tool.poetry]
|
||||||
name = "discoursio-core"
|
name = "discoursio-core"
|
||||||
version = "0.2.11"
|
version = "0.2.12"
|
||||||
description = "core module for discours.io"
|
description = "core module for discours.io"
|
||||||
authors = ["discoursio devteam"]
|
authors = ["discoursio devteam"]
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
|
|
|
@ -168,9 +168,7 @@ type Author {
|
||||||
user: Int!
|
user: Int!
|
||||||
slug: String!
|
slug: String!
|
||||||
name: String
|
name: String
|
||||||
communities: [Community]
|
pic: String
|
||||||
userpic: String
|
|
||||||
caption: String
|
|
||||||
bio: String
|
bio: String
|
||||||
about: String
|
about: String
|
||||||
links: [String]
|
links: [String]
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import asyncio
|
import asyncio
|
||||||
import time
|
import time
|
||||||
from datetime import timedelta, timezone, datetime
|
from datetime import timedelta, timezone, datetime
|
||||||
from os import environ, path
|
from os import environ
|
||||||
|
|
||||||
from gql import Client, gql
|
from gql import Client, gql
|
||||||
from gql.transport.httpx import HTTPXAsyncTransport
|
from gql.transport.httpx import HTTPXAsyncTransport
|
||||||
|
|
Loading…
Reference in New Issue
Block a user