Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
canifa_note
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Vũ Hoàng Anh
canifa_note
Commits
58b84f83
Unverified
Commit
58b84f83
authored
Sep 27, 2023
by
Athurg Gooth
Committed by
GitHub
Sep 27, 2023
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
chore: move SQL code of MemoOrganizer into Driver (#2291)
parent
acbde4fb
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
89 additions
and
67 deletions
+89
-67
driver.go
store/driver.go
+4
-0
memo_organizer.go
store/memo_organizer.go
+3
-67
memo_organizer.go
store/sqlite/memo_organizer.go
+82
-0
No files found.
store/driver.go
View file @
58b84f83
...
@@ -18,6 +18,10 @@ type Driver interface {
...
@@ -18,6 +18,10 @@ type Driver interface {
ListMemoRelations
(
ctx
context
.
Context
,
find
*
FindMemoRelation
)
([]
*
MemoRelation
,
error
)
ListMemoRelations
(
ctx
context
.
Context
,
find
*
FindMemoRelation
)
([]
*
MemoRelation
,
error
)
DeleteMemoRelation
(
ctx
context
.
Context
,
delete
*
DeleteMemoRelation
)
error
DeleteMemoRelation
(
ctx
context
.
Context
,
delete
*
DeleteMemoRelation
)
error
UpsertMemoOrganizer
(
ctx
context
.
Context
,
upsert
*
MemoOrganizer
)
(
*
MemoOrganizer
,
error
)
GetMemoOrganizer
(
ctx
context
.
Context
,
find
*
FindMemoOrganizer
)
(
*
MemoOrganizer
,
error
)
DeleteMemoOrganizer
(
ctx
context
.
Context
,
delete
*
DeleteMemoOrganizer
)
error
UpsertSystemSetting
(
ctx
context
.
Context
,
upsert
*
SystemSetting
)
(
*
SystemSetting
,
error
)
UpsertSystemSetting
(
ctx
context
.
Context
,
upsert
*
SystemSetting
)
(
*
SystemSetting
,
error
)
ListSystemSettings
(
ctx
context
.
Context
,
find
*
FindSystemSetting
)
([]
*
SystemSetting
,
error
)
ListSystemSettings
(
ctx
context
.
Context
,
find
*
FindSystemSetting
)
([]
*
SystemSetting
,
error
)
...
...
store/memo_organizer.go
View file @
58b84f83
...
@@ -3,8 +3,6 @@ package store
...
@@ -3,8 +3,6 @@ package store
import
(
import
(
"context"
"context"
"database/sql"
"database/sql"
"fmt"
"strings"
)
)
type
MemoOrganizer
struct
{
type
MemoOrganizer
struct
{
...
@@ -24,77 +22,15 @@ type DeleteMemoOrganizer struct {
...
@@ -24,77 +22,15 @@ type DeleteMemoOrganizer struct {
}
}
func
(
s
*
Store
)
UpsertMemoOrganizer
(
ctx
context
.
Context
,
upsert
*
MemoOrganizer
)
(
*
MemoOrganizer
,
error
)
{
func
(
s
*
Store
)
UpsertMemoOrganizer
(
ctx
context
.
Context
,
upsert
*
MemoOrganizer
)
(
*
MemoOrganizer
,
error
)
{
stmt
:=
`
return
s
.
driver
.
UpsertMemoOrganizer
(
ctx
,
upsert
)
INSERT INTO memo_organizer (
memo_id,
user_id,
pinned
)
VALUES (?, ?, ?)
ON CONFLICT(memo_id, user_id) DO UPDATE
SET
pinned = EXCLUDED.pinned
`
if
_
,
err
:=
s
.
db
.
ExecContext
(
ctx
,
stmt
,
upsert
.
MemoID
,
upsert
.
UserID
,
upsert
.
Pinned
);
err
!=
nil
{
return
nil
,
err
}
memoOrganizer
:=
upsert
return
memoOrganizer
,
nil
}
}
func
(
s
*
Store
)
GetMemoOrganizer
(
ctx
context
.
Context
,
find
*
FindMemoOrganizer
)
(
*
MemoOrganizer
,
error
)
{
func
(
s
*
Store
)
GetMemoOrganizer
(
ctx
context
.
Context
,
find
*
FindMemoOrganizer
)
(
*
MemoOrganizer
,
error
)
{
where
,
args
:=
[]
string
{},
[]
any
{}
return
s
.
driver
.
GetMemoOrganizer
(
ctx
,
find
)
if
find
.
MemoID
!=
0
{
where
=
append
(
where
,
"memo_id = ?"
)
args
=
append
(
args
,
find
.
MemoID
)
}
if
find
.
UserID
!=
0
{
where
=
append
(
where
,
"user_id = ?"
)
args
=
append
(
args
,
find
.
UserID
)
}
query
:=
fmt
.
Sprintf
(
`
SELECT
memo_id,
user_id,
pinned
FROM memo_organizer
WHERE %s
`
,
strings
.
Join
(
where
,
" AND "
))
row
:=
s
.
db
.
QueryRowContext
(
ctx
,
query
,
args
...
)
if
err
:=
row
.
Err
();
err
!=
nil
{
return
nil
,
err
}
if
row
==
nil
{
return
nil
,
nil
}
memoOrganizer
:=
&
MemoOrganizer
{}
if
err
:=
row
.
Scan
(
&
memoOrganizer
.
MemoID
,
&
memoOrganizer
.
UserID
,
&
memoOrganizer
.
Pinned
,
);
err
!=
nil
{
return
nil
,
err
}
return
memoOrganizer
,
nil
}
}
func
(
s
*
Store
)
DeleteMemoOrganizer
(
ctx
context
.
Context
,
delete
*
DeleteMemoOrganizer
)
error
{
func
(
s
*
Store
)
DeleteMemoOrganizer
(
ctx
context
.
Context
,
delete
*
DeleteMemoOrganizer
)
error
{
where
,
args
:=
[]
string
{},
[]
any
{}
return
s
.
driver
.
DeleteMemoOrganizer
(
ctx
,
delete
)
if
v
:=
delete
.
MemoID
;
v
!=
nil
{
where
,
args
=
append
(
where
,
"memo_id = ?"
),
append
(
args
,
*
v
)
}
if
v
:=
delete
.
UserID
;
v
!=
nil
{
where
,
args
=
append
(
where
,
"user_id = ?"
),
append
(
args
,
*
v
)
}
stmt
:=
`DELETE FROM memo_organizer WHERE `
+
strings
.
Join
(
where
,
" AND "
)
if
_
,
err
:=
s
.
db
.
ExecContext
(
ctx
,
stmt
,
args
...
);
err
!=
nil
{
return
err
}
return
nil
}
}
func
vacuumMemoOrganizer
(
ctx
context
.
Context
,
tx
*
sql
.
Tx
)
error
{
func
vacuumMemoOrganizer
(
ctx
context
.
Context
,
tx
*
sql
.
Tx
)
error
{
...
...
store/sqlite/memo_organizer.go
0 → 100644
View file @
58b84f83
package
sqlite
import
(
"context"
"fmt"
"strings"
"github.com/usememos/memos/store"
)
func
(
d
*
Driver
)
UpsertMemoOrganizer
(
ctx
context
.
Context
,
upsert
*
store
.
MemoOrganizer
)
(
*
store
.
MemoOrganizer
,
error
)
{
stmt
:=
`
INSERT INTO memo_organizer (
memo_id,
user_id,
pinned
)
VALUES (?, ?, ?)
ON CONFLICT(memo_id, user_id) DO UPDATE
SET
pinned = EXCLUDED.pinned
`
if
_
,
err
:=
d
.
db
.
ExecContext
(
ctx
,
stmt
,
upsert
.
MemoID
,
upsert
.
UserID
,
upsert
.
Pinned
);
err
!=
nil
{
return
nil
,
err
}
return
upsert
,
nil
}
func
(
d
*
Driver
)
GetMemoOrganizer
(
ctx
context
.
Context
,
find
*
store
.
FindMemoOrganizer
)
(
*
store
.
MemoOrganizer
,
error
)
{
where
,
args
:=
[]
string
{},
[]
any
{}
if
find
.
MemoID
!=
0
{
where
=
append
(
where
,
"memo_id = ?"
)
args
=
append
(
args
,
find
.
MemoID
)
}
if
find
.
UserID
!=
0
{
where
=
append
(
where
,
"user_id = ?"
)
args
=
append
(
args
,
find
.
UserID
)
}
query
:=
fmt
.
Sprintf
(
`
SELECT
memo_id,
user_id,
pinned
FROM memo_organizer
WHERE %s
`
,
strings
.
Join
(
where
,
" AND "
))
row
:=
d
.
db
.
QueryRowContext
(
ctx
,
query
,
args
...
)
if
err
:=
row
.
Err
();
err
!=
nil
{
return
nil
,
err
}
if
row
==
nil
{
return
nil
,
nil
}
memoOrganizer
:=
&
store
.
MemoOrganizer
{}
if
err
:=
row
.
Scan
(
&
memoOrganizer
.
MemoID
,
&
memoOrganizer
.
UserID
,
&
memoOrganizer
.
Pinned
,
);
err
!=
nil
{
return
nil
,
err
}
return
memoOrganizer
,
nil
}
func
(
d
*
Driver
)
DeleteMemoOrganizer
(
ctx
context
.
Context
,
delete
*
store
.
DeleteMemoOrganizer
)
error
{
where
,
args
:=
[]
string
{},
[]
any
{}
if
v
:=
delete
.
MemoID
;
v
!=
nil
{
where
,
args
=
append
(
where
,
"memo_id = ?"
),
append
(
args
,
*
v
)
}
if
v
:=
delete
.
UserID
;
v
!=
nil
{
where
,
args
=
append
(
where
,
"user_id = ?"
),
append
(
args
,
*
v
)
}
stmt
:=
`DELETE FROM memo_organizer WHERE `
+
strings
.
Join
(
where
,
" AND "
)
if
_
,
err
:=
d
.
db
.
ExecContext
(
ctx
,
stmt
,
args
...
);
err
!=
nil
{
return
err
}
return
nil
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment