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
beb4d8cc
Unverified
Commit
beb4d8cc
authored
May 27, 2023
by
boojack
Committed by
GitHub
May 27, 2023
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
chore: order by updated ts in memo store (#1761)
parent
e0e59c58
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
69 additions
and
22 deletions
+69
-22
memo.go
server/memo.go
+59
-19
memo.go
store/memo.go
+10
-3
No files found.
server/memo.go
View file @
beb4d8cc
...
@@ -299,6 +299,14 @@ func (s *Server) registerMemoRoutes(g *echo.Group) {
...
@@ -299,6 +299,14 @@ func (s *Server) registerMemoRoutes(g *echo.Group) {
findMemoMessage
.
Offset
=
&
offset
findMemoMessage
.
Offset
=
&
offset
}
}
memoDisplayWithUpdatedTs
,
err
:=
s
.
getMemoDisplayWithUpdatedTsSettingValue
(
ctx
)
if
err
!=
nil
{
return
echo
.
NewHTTPError
(
http
.
StatusInternalServerError
,
"Failed to get memo display with updated ts setting value"
)
.
SetInternal
(
err
)
}
if
memoDisplayWithUpdatedTs
{
findMemoMessage
.
OrderByUpdatedTs
=
true
}
memoMessageList
,
err
:=
s
.
Store
.
ListMemos
(
ctx
,
findMemoMessage
)
memoMessageList
,
err
:=
s
.
Store
.
ListMemos
(
ctx
,
findMemoMessage
)
if
err
!=
nil
{
if
err
!=
nil
{
return
echo
.
NewHTTPError
(
http
.
StatusInternalServerError
,
"Failed to fetch memo list"
)
.
SetInternal
(
err
)
return
echo
.
NewHTTPError
(
http
.
StatusInternalServerError
,
"Failed to fetch memo list"
)
.
SetInternal
(
err
)
...
@@ -411,16 +419,32 @@ func (s *Server) registerMemoRoutes(g *echo.Group) {
...
@@ -411,16 +419,32 @@ func (s *Server) registerMemoRoutes(g *echo.Group) {
}
}
}
}
list
,
err
:=
s
.
Store
.
ListMemos
(
ctx
,
findMemoMessage
)
memoDisplayWithUpdatedTs
,
err
:=
s
.
getMemoDisplayWithUpdatedTsSettingValue
(
ctx
)
if
err
!=
nil
{
return
echo
.
NewHTTPError
(
http
.
StatusInternalServerError
,
"Failed to get memo display with updated ts setting value"
)
.
SetInternal
(
err
)
}
if
memoDisplayWithUpdatedTs
{
findMemoMessage
.
OrderByUpdatedTs
=
true
}
memoMessageList
,
err
:=
s
.
Store
.
ListMemos
(
ctx
,
findMemoMessage
)
if
err
!=
nil
{
if
err
!=
nil
{
return
echo
.
NewHTTPError
(
http
.
StatusInternalServerError
,
"Failed to find memo list"
)
.
SetInternal
(
err
)
return
echo
.
NewHTTPError
(
http
.
StatusInternalServerError
,
"Failed to find memo list"
)
.
SetInternal
(
err
)
}
}
memoResponseList
:=
[]
*
api
.
MemoResponse
{}
for
_
,
memoMessage
:=
range
memoMessageList
{
memoResponse
,
err
:=
s
.
composeMemoMessageToMemoResponse
(
ctx
,
memoMessage
)
if
err
!=
nil
{
return
echo
.
NewHTTPError
(
http
.
StatusInternalServerError
,
"Failed to compose memo response"
)
.
SetInternal
(
err
)
}
memoResponseList
=
append
(
memoResponseList
,
memoResponse
)
}
created
TsList
:=
[]
int64
{}
display
TsList
:=
[]
int64
{}
for
_
,
memo
:=
range
l
ist
{
for
_
,
memo
:=
range
memoResponseL
ist
{
createdTsList
=
append
(
createdTsList
,
memo
.
Created
Ts
)
displayTsList
=
append
(
displayTsList
,
memo
.
Display
Ts
)
}
}
return
c
.
JSON
(
http
.
StatusOK
,
composeResponse
(
created
TsList
))
return
c
.
JSON
(
http
.
StatusOK
,
composeResponse
(
display
TsList
))
})
})
g
.
GET
(
"/memo/all"
,
func
(
c
echo
.
Context
)
error
{
g
.
GET
(
"/memo/all"
,
func
(
c
echo
.
Context
)
error
{
...
@@ -469,6 +493,14 @@ func (s *Server) registerMemoRoutes(g *echo.Group) {
...
@@ -469,6 +493,14 @@ func (s *Server) registerMemoRoutes(g *echo.Group) {
normalStatus
:=
store
.
Normal
normalStatus
:=
store
.
Normal
findMemoMessage
.
RowStatus
=
&
normalStatus
findMemoMessage
.
RowStatus
=
&
normalStatus
memoDisplayWithUpdatedTs
,
err
:=
s
.
getMemoDisplayWithUpdatedTsSettingValue
(
ctx
)
if
err
!=
nil
{
return
echo
.
NewHTTPError
(
http
.
StatusInternalServerError
,
"Failed to get memo display with updated ts setting value"
)
.
SetInternal
(
err
)
}
if
memoDisplayWithUpdatedTs
{
findMemoMessage
.
OrderByUpdatedTs
=
true
}
memoMessageList
,
err
:=
s
.
Store
.
ListMemos
(
ctx
,
findMemoMessage
)
memoMessageList
,
err
:=
s
.
Store
.
ListMemos
(
ctx
,
findMemoMessage
)
if
err
!=
nil
{
if
err
!=
nil
{
return
echo
.
NewHTTPError
(
http
.
StatusInternalServerError
,
"Failed to fetch all memo list"
)
.
SetInternal
(
err
)
return
echo
.
NewHTTPError
(
http
.
StatusInternalServerError
,
"Failed to fetch all memo list"
)
.
SetInternal
(
err
)
...
@@ -625,22 +657,13 @@ func (s *Server) composeMemoMessageToMemoResponse(ctx context.Context, memoMessa
...
@@ -625,22 +657,13 @@ func (s *Server) composeMemoMessageToMemoResponse(ctx context.Context, memoMessa
// Compose display ts.
// Compose display ts.
memoResponse
.
DisplayTs
=
memoResponse
.
CreatedTs
memoResponse
.
DisplayTs
=
memoResponse
.
CreatedTs
// Find memo display with updated ts setting.
// Find memo display with updated ts setting.
memoDisplayWithUpdatedTsSetting
,
err
:=
s
.
Store
.
FindSystemSetting
(
ctx
,
&
api
.
SystemSettingFind
{
memoDisplayWithUpdatedTs
,
err
:=
s
.
getMemoDisplayWithUpdatedTsSettingValue
(
ctx
)
Name
:
api
.
SystemSettingMemoDisplayWithUpdatedTsName
,
})
if
err
!=
nil
&&
common
.
ErrorCode
(
err
)
!=
common
.
NotFound
{
return
nil
,
errors
.
Wrap
(
err
,
"failed to find system setting"
)
}
if
memoDisplayWithUpdatedTsSetting
!=
nil
{
memoDisplayWithUpdatedTs
:=
false
err
=
json
.
Unmarshal
([]
byte
(
memoDisplayWithUpdatedTsSetting
.
Value
),
&
memoDisplayWithUpdatedTs
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
errors
.
Wrap
(
err
,
"failed to unmarshal system setting value"
)
return
nil
,
err
}
}
if
memoDisplayWithUpdatedTs
{
if
memoDisplayWithUpdatedTs
{
memoResponse
.
DisplayTs
=
memoResponse
.
UpdatedTs
memoResponse
.
DisplayTs
=
memoResponse
.
UpdatedTs
}
}
}
relationList
:=
[]
*
api
.
MemoRelation
{}
relationList
:=
[]
*
api
.
MemoRelation
{}
for
_
,
relation
:=
range
memoMessage
.
RelationList
{
for
_
,
relation
:=
range
memoMessage
.
RelationList
{
...
@@ -662,3 +685,20 @@ func (s *Server) composeMemoMessageToMemoResponse(ctx context.Context, memoMessa
...
@@ -662,3 +685,20 @@ func (s *Server) composeMemoMessageToMemoResponse(ctx context.Context, memoMessa
return
memoResponse
,
nil
return
memoResponse
,
nil
}
}
func
(
s
*
Server
)
getMemoDisplayWithUpdatedTsSettingValue
(
ctx
context
.
Context
)
(
bool
,
error
)
{
memoDisplayWithUpdatedTsSetting
,
err
:=
s
.
Store
.
FindSystemSetting
(
ctx
,
&
api
.
SystemSettingFind
{
Name
:
api
.
SystemSettingMemoDisplayWithUpdatedTsName
,
})
if
err
!=
nil
&&
common
.
ErrorCode
(
err
)
!=
common
.
NotFound
{
return
false
,
errors
.
Wrap
(
err
,
"failed to find system setting"
)
}
memoDisplayWithUpdatedTs
:=
false
if
memoDisplayWithUpdatedTsSetting
!=
nil
{
err
=
json
.
Unmarshal
([]
byte
(
memoDisplayWithUpdatedTsSetting
.
Value
),
&
memoDisplayWithUpdatedTs
)
if
err
!=
nil
{
return
false
,
errors
.
Wrap
(
err
,
"failed to unmarshal system setting value"
)
}
}
return
memoDisplayWithUpdatedTs
,
nil
}
store/memo.go
View file @
beb4d8cc
...
@@ -69,6 +69,7 @@ type FindMemoMessage struct {
...
@@ -69,6 +69,7 @@ type FindMemoMessage struct {
// Pagination
// Pagination
Limit
*
int
Limit
*
int
Offset
*
int
Offset
*
int
OrderByUpdatedTs
bool
}
}
type
UpdateMemoMessage
struct
{
type
UpdateMemoMessage
struct
{
...
@@ -254,6 +255,12 @@ func listMemos(ctx context.Context, tx *sql.Tx, find *FindMemoMessage) ([]*MemoM
...
@@ -254,6 +255,12 @@ func listMemos(ctx context.Context, tx *sql.Tx, find *FindMemoMessage) ([]*MemoM
}
}
where
=
append
(
where
,
fmt
.
Sprintf
(
"memo.visibility in (%s)"
,
strings
.
Join
(
list
,
","
)))
where
=
append
(
where
,
fmt
.
Sprintf
(
"memo.visibility in (%s)"
,
strings
.
Join
(
list
,
","
)))
}
}
orders
:=
[]
string
{
"pinned DESC"
}
if
find
.
OrderByUpdatedTs
{
orders
=
append
(
orders
,
"updated_ts DESC"
)
}
else
{
orders
=
append
(
orders
,
"created_ts DESC"
)
}
query
:=
`
query
:=
`
SELECT
SELECT
...
@@ -284,7 +291,7 @@ func listMemos(ctx context.Context, tx *sql.Tx, find *FindMemoMessage) ([]*MemoM
...
@@ -284,7 +291,7 @@ func listMemos(ctx context.Context, tx *sql.Tx, find *FindMemoMessage) ([]*MemoM
memo_resource ON memo.id = memo_resource.memo_id
memo_resource ON memo.id = memo_resource.memo_id
WHERE `
+
strings
.
Join
(
where
,
" AND "
)
+
`
WHERE `
+
strings
.
Join
(
where
,
" AND "
)
+
`
GROUP BY memo.id
GROUP BY memo.id
ORDER BY
pinned DESC, memo.created_ts DESC
ORDER BY
`
+
strings
.
Join
(
orders
,
", "
)
+
`
`
`
if
find
.
Limit
!=
nil
{
if
find
.
Limit
!=
nil
{
query
=
fmt
.
Sprintf
(
"%s LIMIT %d"
,
query
,
*
find
.
Limit
)
query
=
fmt
.
Sprintf
(
"%s LIMIT %d"
,
query
,
*
find
.
Limit
)
...
...
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