Browse Source

本日作業分

feature/query
みてるぞ 1 month ago
parent
commit
fb87032fab
1 changed files with 22 additions and 25 deletions
  1. +22
    -25
      update_db.py

+ 22
- 25
update_db.py View File

@@ -26,10 +26,10 @@ def main (




def update_video_table ( def update_video_table (
video_dao,
video_dao: VideoDao,
api_data: list[dict], api_data: list[dict],
) -> None: ) -> None:
# TODO: 書くこと
# TODO: videos 取得書くこと


video_dao.upsert_all (videos) video_dao.upsert_all (videos)


@@ -176,7 +176,7 @@ class VideoDao:
self, self,
videos: list[VideoDto], videos: list[VideoDto],
with_relation_tables: bool = True, with_relation_tables: bool = True,
) -> int:
) -> None:
with self.conn.cursor () as c: with self.conn.cursor () as c:
for video in videos: for video in videos:
c.execute (""" c.execute ("""
@@ -199,14 +199,16 @@ class VideoDao:
title = VALUES(title), title = VALUES(title),
description = VALUES(description), description = VALUES(description),
uploaded_at = VALUES(uploaded_at), uploaded_at = VALUES(uploaded_at),
deleted_at = VALUES(deleted_at)""", (
video.code,
video.title,
video.description,
video.uploaded_at,
video.deleted_at))
deleted_at = VALUES(deleted_at)""", (video.code,
video.title,
video.description,
video.uploaded_at,
video.deleted_at))
video.id_ = c.lastrowid video.id_ = c.lastrowid
# TODO: with_relation_tables が True の場合,子テーブルも UPSERT すること
if with_relation_tables:
VideoTagDao (self.conn).upsert_all (video.video_tags, False)
CommentDao (self.conn).upsert_all (video.comments, False)
VideoHistoryDao (self.conn).upsert_all (video.video_histories, False)


def _create_dto_from_row ( def _create_dto_from_row (
self, self,
@@ -218,10 +220,7 @@ class VideoDao:
title = row['title'], title = row['title'],
description = row['description'], description = row['description'],
uploaded_at = row['uploaded_at'], uploaded_at = row['uploaded_at'],
deleted_at = row['deleted_at'],
video_tags = None,
comments = None,
video_histories = None)
deleted_at = row['deleted_at'])
if with_relation_tables: if with_relation_tables:
video.video_tags = VideoTagDao (self.conn).fetch_by_video_id (video.id_, False) video.video_tags = VideoTagDao (self.conn).fetch_by_video_id (video.id_, False)
for i in range (len (video.video_tags)): for i in range (len (video.video_tags)):
@@ -237,15 +236,15 @@ class VideoDao:


@dataclass (slots = True) @dataclass (slots = True)
class VideoDto: class VideoDto:
id_: int
id_: int | None = None
code: str code: str
title: str title: str
description: str description: str
uploaded_at: datetime uploaded_at: datetime
deleted_at: datetime | None
video_tags: list[VideoTagDto] | None
comments: list[CommentDto] | None
video_histories: list[VideoHistoryDto] | None
deleted_at: datetime | None = None
video_tags: list[VideoTagDto] | None = None
comments: list[CommentDto] | None = None
video_histories: list[VideoHistoryDto] | None = None




class VideoTagDao: class VideoTagDao:
@@ -288,9 +287,7 @@ class VideoTagDao:
video_id = row['video_id'], video_id = row['video_id'],
tag_id = row['tag_id'], tag_id = row['tag_id'],
tagged_at = row['tagged_at'], tagged_at = row['tagged_at'],
untagged_at = row['untagged_at'],
video = None,
tag = None)
untagged_at = row['untagged_at'])
if with_relation_tables: if with_relation_tables:
video_tag.video = VideoDao (self.conn).fetch (video_tag.video_id, True) video_tag.video = VideoDao (self.conn).fetch (video_tag.video_id, True)
video_tag.tag = TagDao (self.conn).fetch (video_tag.tag_id, True) video_tag.tag = TagDao (self.conn).fetch (video_tag.tag_id, True)
@@ -299,13 +296,13 @@ class VideoTagDao:


@dataclass (slots = True) @dataclass (slots = True)
class VideoTagDto: class VideoTagDto:
id_: int
id_: int | None = None
video_id: int video_id: int
tag_id: int tag_id: int
tagged_at: datetime tagged_at: datetime
untagged_at: datetime untagged_at: datetime
video: VideoDto
tag: TagDto
video: VideoDto | None = None
tag: TagDto | None = None




if __name__ == '__main__': if __name__ == '__main__':


Loading…
Cancel
Save