From 0c673d49eff602406f8837c2b032506e5a5c88a0 Mon Sep 17 00:00:00 2001 From: Steven Date: Mon, 13 May 2024 22:12:56 +0800 Subject: [PATCH] chore: retire memo tags --- server/router/api/v1/memo_service.go | 1 - store/db/mysql/memo.go | 18 ++---------------- store/db/postgres/memo.go | 20 +++----------------- store/db/sqlite/memo.go | 22 ++++------------------ store/memo.go | 1 - 5 files changed, 9 insertions(+), 53 deletions(-) diff --git a/server/router/api/v1/memo_service.go b/server/router/api/v1/memo_service.go index c0ed8041..c3ec1394 100644 --- a/server/router/api/v1/memo_service.go +++ b/server/router/api/v1/memo_service.go @@ -780,7 +780,6 @@ func (s *APIV1Service) convertMemoFromStore(ctx context.Context, memo *store.Mem Content: memo.Content, Nodes: convertFromASTNodes(nodes), Visibility: convertVisibilityFromStore(memo.Visibility), - Tags: memo.Tags, Pinned: memo.Pinned, ParentId: memo.ParentID, Relations: listMemoRelationsResponse.Relations, diff --git a/store/db/mysql/memo.go b/store/db/mysql/memo.go index 145e4baa..51431ba3 100644 --- a/store/db/mysql/memo.go +++ b/store/db/mysql/memo.go @@ -2,7 +2,6 @@ package mysql import ( "context" - "encoding/json" "fmt" "strings" @@ -16,14 +15,6 @@ import ( func (d *DB) CreateMemo(ctx context.Context, create *store.Memo) (*store.Memo, error) { fields := []string{"`uid`", "`creator_id`", "`content`", "`visibility`", "`tags`", "`payload`"} placeholder := []string{"?", "?", "?", "?", "?", "?"} - tags := "[]" - if len(create.Tags) != 0 { - tagsBytes, err := json.Marshal(create.Tags) - if err != nil { - return nil, err - } - tags = string(tagsBytes) - } payload := "{}" if create.Payload != nil { payloadBytes, err := protojson.Marshal(create.Payload) @@ -32,7 +23,7 @@ func (d *DB) CreateMemo(ctx context.Context, create *store.Memo) (*store.Memo, e } payload = string(payloadBytes) } - args := []any{create.UID, create.CreatorID, create.Content, create.Visibility, tags, payload} + args := []any{create.UID, create.CreatorID, create.Content, create.Visibility, "[]", payload} stmt := "INSERT INTO `memo` (" + strings.Join(fields, ", ") + ") VALUES (" + strings.Join(placeholder, ", ") + ")" result, err := d.db.ExecContext(ctx, stmt, args...) @@ -129,7 +120,6 @@ func (d *DB) ListMemos(ctx context.Context, find *store.FindMemo) ([]*store.Memo "UNIX_TIMESTAMP(`memo`.`updated_ts`) AS `updated_ts`", "`memo`.`row_status` AS `row_status`", "`memo`.`visibility` AS `visibility`", - "`memo`.`tags` AS `tags`", "`memo`.`payload` AS `payload`", "IFNULL(`memo_organizer`.`pinned`, 0) AS `pinned`", "`memo_relation`.`related_memo_id` AS `parent_id`", @@ -155,7 +145,7 @@ func (d *DB) ListMemos(ctx context.Context, find *store.FindMemo) ([]*store.Memo list := make([]*store.Memo, 0) for rows.Next() { var memo store.Memo - var tagsBytes, payloadBytes []byte + var payloadBytes []byte dests := []any{ &memo.ID, &memo.UID, @@ -164,7 +154,6 @@ func (d *DB) ListMemos(ctx context.Context, find *store.FindMemo) ([]*store.Memo &memo.UpdatedTs, &memo.RowStatus, &memo.Visibility, - &tagsBytes, &payloadBytes, &memo.Pinned, &memo.ParentID, @@ -175,9 +164,6 @@ func (d *DB) ListMemos(ctx context.Context, find *store.FindMemo) ([]*store.Memo if err := rows.Scan(dests...); err != nil { return nil, err } - if err := json.Unmarshal(tagsBytes, &memo.Tags); err != nil { - return nil, errors.Wrap(err, "failed to unmarshal tags") - } payload := &storepb.MemoPayload{} if err := protojsonUnmarshaler.Unmarshal(payloadBytes, payload); err != nil { return nil, errors.Wrap(err, "failed to unmarshal payload") diff --git a/store/db/postgres/memo.go b/store/db/postgres/memo.go index 6d15bb3b..2ec9956d 100644 --- a/store/db/postgres/memo.go +++ b/store/db/postgres/memo.go @@ -2,7 +2,6 @@ package postgres import ( "context" - "encoding/json" "fmt" "strings" @@ -14,15 +13,7 @@ import ( ) func (d *DB) CreateMemo(ctx context.Context, create *store.Memo) (*store.Memo, error) { - fields := []string{"uid", "creator_id", "content", "visibility", "tags", "payload"} - tags := "[]" - if len(create.Tags) != 0 { - tagsBytes, err := json.Marshal(create.Tags) - if err != nil { - return nil, err - } - tags = string(tagsBytes) - } + fields := []string{"uid", "creator_id", "content", "visibility", "payload"} payload := "{}" if create.Payload != nil { payloadBytes, err := protojson.Marshal(create.Payload) @@ -31,7 +22,7 @@ func (d *DB) CreateMemo(ctx context.Context, create *store.Memo) (*store.Memo, e } payload = string(payloadBytes) } - args := []any{create.UID, create.CreatorID, create.Content, create.Visibility, tags, payload} + args := []any{create.UID, create.CreatorID, create.Content, create.Visibility, payload} stmt := "INSERT INTO memo (" + strings.Join(fields, ", ") + ") VALUES (" + placeholders(len(args)) + ") RETURNING id, created_ts, updated_ts, row_status" if err := d.db.QueryRowContext(ctx, stmt, args...).Scan( @@ -120,7 +111,6 @@ func (d *DB) ListMemos(ctx context.Context, find *store.FindMemo) ([]*store.Memo `memo.updated_ts AS updated_ts`, `memo.row_status AS row_status`, `memo.visibility AS visibility`, - `memo.tags AS tags`, `memo.payload AS payload`, `COALESCE(memo_organizer.pinned, 0) AS pinned`, `memo_relation.related_memo_id AS parent_id`, @@ -151,7 +141,7 @@ func (d *DB) ListMemos(ctx context.Context, find *store.FindMemo) ([]*store.Memo list := make([]*store.Memo, 0) for rows.Next() { var memo store.Memo - var tagsBytes, payloadBytes []byte + var payloadBytes []byte dests := []any{ &memo.ID, &memo.UID, @@ -160,7 +150,6 @@ func (d *DB) ListMemos(ctx context.Context, find *store.FindMemo) ([]*store.Memo &memo.UpdatedTs, &memo.RowStatus, &memo.Visibility, - &tagsBytes, &payloadBytes, &memo.Pinned, &memo.ParentID, @@ -171,9 +160,6 @@ func (d *DB) ListMemos(ctx context.Context, find *store.FindMemo) ([]*store.Memo if err := rows.Scan(dests...); err != nil { return nil, err } - if err := json.Unmarshal(tagsBytes, &memo.Tags); err != nil { - return nil, errors.Wrap(err, "failed to unmarshal tags") - } payload := &storepb.MemoPayload{} if err := protojsonUnmarshaler.Unmarshal(payloadBytes, payload); err != nil { return nil, errors.Wrap(err, "failed to unmarshal payload") diff --git a/store/db/sqlite/memo.go b/store/db/sqlite/memo.go index a39e24ad..a90418c1 100644 --- a/store/db/sqlite/memo.go +++ b/store/db/sqlite/memo.go @@ -2,7 +2,6 @@ package sqlite import ( "context" - "encoding/json" "fmt" "strings" @@ -14,16 +13,8 @@ import ( ) func (d *DB) CreateMemo(ctx context.Context, create *store.Memo) (*store.Memo, error) { - fields := []string{"`uid`", "`creator_id`", "`content`", "`visibility`", "`tags`", "`payload`"} - placeholder := []string{"?", "?", "?", "?", "?", "?"} - tags := "[]" - if len(create.Tags) != 0 { - tagsBytes, err := json.Marshal(create.Tags) - if err != nil { - return nil, err - } - tags = string(tagsBytes) - } + fields := []string{"`uid`", "`creator_id`", "`content`", "`visibility`", "`payload`"} + placeholder := []string{"?", "?", "?", "?", "?"} payload := "{}" if create.Payload != nil { payloadBytes, err := protojson.Marshal(create.Payload) @@ -32,7 +23,7 @@ func (d *DB) CreateMemo(ctx context.Context, create *store.Memo) (*store.Memo, e } payload = string(payloadBytes) } - args := []any{create.UID, create.CreatorID, create.Content, create.Visibility, tags, payload} + args := []any{create.UID, create.CreatorID, create.Content, create.Visibility, payload} stmt := "INSERT INTO `memo` (" + strings.Join(fields, ", ") + ") VALUES (" + strings.Join(placeholder, ", ") + ") RETURNING `id`, `created_ts`, `updated_ts`, `row_status`" if err := d.db.QueryRowContext(ctx, stmt, args...).Scan( @@ -121,7 +112,6 @@ func (d *DB) ListMemos(ctx context.Context, find *store.FindMemo) ([]*store.Memo "`memo`.`updated_ts` AS `updated_ts`", "`memo`.`row_status` AS `row_status`", "`memo`.`visibility` AS `visibility`", - "`memo`.`tags` AS `tags`", "`memo`.`payload` AS `payload`", "IFNULL(`memo_organizer`.`pinned`, 0) AS `pinned`", "`memo_relation`.`related_memo_id` AS `parent_id`", @@ -151,7 +141,7 @@ func (d *DB) ListMemos(ctx context.Context, find *store.FindMemo) ([]*store.Memo list := make([]*store.Memo, 0) for rows.Next() { var memo store.Memo - var tagsBytes, payloadBytes []byte + var payloadBytes []byte dests := []any{ &memo.ID, &memo.UID, @@ -160,7 +150,6 @@ func (d *DB) ListMemos(ctx context.Context, find *store.FindMemo) ([]*store.Memo &memo.UpdatedTs, &memo.RowStatus, &memo.Visibility, - &tagsBytes, &payloadBytes, &memo.Pinned, &memo.ParentID, @@ -171,9 +160,6 @@ func (d *DB) ListMemos(ctx context.Context, find *store.FindMemo) ([]*store.Memo if err := rows.Scan(dests...); err != nil { return nil, err } - if err := json.Unmarshal(tagsBytes, &memo.Tags); err != nil { - return nil, errors.Wrap(err, "failed to unmarshal tags") - } payload := &storepb.MemoPayload{} if err := protojsonUnmarshaler.Unmarshal(payloadBytes, payload); err != nil { return nil, errors.Wrap(err, "failed to unmarshal payload") diff --git a/store/memo.go b/store/memo.go index 32253e5e..cabd96b5 100644 --- a/store/memo.go +++ b/store/memo.go @@ -48,7 +48,6 @@ type Memo struct { // Domain specific fields Content string Visibility Visibility - Tags []string Payload *storepb.MemoPayload // Composed fields