chore: update memo store

This commit is contained in:
Steven 2024-01-21 01:23:55 +08:00
parent 288527914b
commit b2fc3076f6
4 changed files with 23 additions and 5 deletions

View file

@ -12,9 +12,9 @@ import (
)
func (d *DB) CreateMemo(ctx context.Context, create *store.Memo) (*store.Memo, error) {
fields := []string{"`creator_id`", "`content`", "`visibility`"}
placeholder := []string{"?", "?", "?"}
args := []any{create.CreatorID, create.Content, create.Visibility}
fields := []string{"`resource_name`", "`creator_id`", "`content`", "`visibility`"}
placeholder := []string{"?", "?", "?", "?"}
args := []any{create.ResourceName, create.CreatorID, create.Content, create.Visibility}
stmt := "INSERT INTO `memo` (" + strings.Join(fields, ", ") + ") VALUES (" + strings.Join(placeholder, ", ") + ")"
result, err := d.db.ExecContext(ctx, stmt, args...)
@ -43,6 +43,9 @@ func (d *DB) ListMemos(ctx context.Context, find *store.FindMemo) ([]*store.Memo
if v := find.ID; v != nil {
where, args = append(where, "`memo`.`id` = ?"), append(args, *v)
}
if v := find.ResourceName; v != nil {
where, args = append(where, "`memo`.`resource_name` = ?"), append(args, *v)
}
if v := find.CreatorID; v != nil {
where, args = append(where, "`memo`.`creator_id` = ?"), append(args, *v)
}
@ -91,6 +94,7 @@ func (d *DB) ListMemos(ctx context.Context, find *store.FindMemo) ([]*store.Memo
fields := []string{
"`memo`.`id` AS `id`",
"`memo`.`resource_name` AS `resource_name`",
"`memo`.`creator_id` AS `creator_id`",
"UNIX_TIMESTAMP(`memo`.`created_ts`) AS `created_ts`",
"UNIX_TIMESTAMP(`memo`.`updated_ts`) AS `updated_ts`",
@ -122,6 +126,7 @@ func (d *DB) ListMemos(ctx context.Context, find *store.FindMemo) ([]*store.Memo
var memo store.Memo
dests := []any{
&memo.ID,
&memo.ResourceName,
&memo.CreatorID,
&memo.CreatedTs,
&memo.UpdatedTs,
@ -161,6 +166,9 @@ func (d *DB) GetMemo(ctx context.Context, find *store.FindMemo) (*store.Memo, er
func (d *DB) UpdateMemo(ctx context.Context, update *store.UpdateMemo) error {
set, args := []string{}, []any{}
if v := update.ResourceName; v != nil {
set, args = append(set, "`resource_name` = ?"), append(args, *v)
}
if v := update.CreatedTs; v != nil {
set, args = append(set, "`created_ts` = FROM_UNIXTIME(?)"), append(args, *v)
}

View file

@ -36,6 +36,7 @@ CREATE TABLE `user_setting` (
-- memo
CREATE TABLE `memo` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`resource_name` VARCHAR(256) NOT NULL UNIQUE,
`creator_id` INT NOT NULL,
`created_ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,

View file

@ -12,8 +12,8 @@ import (
)
func (d *DB) CreateMemo(ctx context.Context, create *store.Memo) (*store.Memo, error) {
fields := []string{"creator_id", "content", "visibility"}
args := []any{create.CreatorID, create.Content, create.Visibility}
fields := []string{"resource_name", "creator_id", "content", "visibility"}
args := []any{create.ResourceName, create.CreatorID, create.Content, create.Visibility}
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(
@ -34,6 +34,9 @@ func (d *DB) ListMemos(ctx context.Context, find *store.FindMemo) ([]*store.Memo
if v := find.ID; v != nil {
where, args = append(where, "memo.id = "+placeholder(len(args)+1)), append(args, *v)
}
if v := find.ResourceName; v != nil {
where, args = append(where, "memo.resource_name = "+placeholder(len(args)+1)), append(args, *v)
}
if v := find.CreatorID; v != nil {
where, args = append(where, "memo.creator_id = "+placeholder(len(args)+1)), append(args, *v)
}
@ -82,6 +85,7 @@ func (d *DB) ListMemos(ctx context.Context, find *store.FindMemo) ([]*store.Memo
fields := []string{
`memo.id AS id`,
`memo.resource_name AS resource_name`,
`memo.creator_id AS creator_id`,
`memo.created_ts AS created_ts`,
`memo.updated_ts AS updated_ts`,
@ -118,6 +122,7 @@ func (d *DB) ListMemos(ctx context.Context, find *store.FindMemo) ([]*store.Memo
var memo store.Memo
dests := []any{
&memo.ID,
&memo.ResourceName,
&memo.CreatorID,
&memo.CreatedTs,
&memo.UpdatedTs,
@ -157,6 +162,9 @@ func (d *DB) GetMemo(ctx context.Context, find *store.FindMemo) (*store.Memo, er
func (d *DB) UpdateMemo(ctx context.Context, update *store.UpdateMemo) error {
set, args := []string{}, []any{}
if v := update.ResourceName; v != nil {
set, args = append(set, "resource_name = "+placeholder(len(args)+1)), append(args, *v)
}
if v := update.CreatedTs; v != nil {
set, args = append(set, "created_ts = "+placeholder(len(args)+1)), append(args, *v)
}

View file

@ -36,6 +36,7 @@ CREATE TABLE user_setting (
-- memo
CREATE TABLE memo (
id SERIAL PRIMARY KEY,
resource_name TEXT NOT NULL UNIQUE,
creator_id INTEGER NOT NULL,
created_ts BIGINT NOT NULL DEFAULT EXTRACT(EPOCH FROM NOW()),
updated_ts BIGINT NOT NULL DEFAULT EXTRACT(EPOCH FROM NOW()),