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
f1b365f9
Commit
f1b365f9
authored
May 29, 2025
by
Steven
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
refactor: clean packages
parent
2bde2962
Changes
23
Hide whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
38 additions
and
31 deletions
+38
-31
main.go
bin/memos/main.go
+2
-2
resource_name.go
internal/base/resource_name.go
+1
-1
resource_name_test.go
internal/base/resource_name_test.go
+1
-1
profile.go
internal/profile/profile.go
+0
-0
version.go
internal/version/version.go
+0
-0
version_test.go
internal/version/version_test.go
+0
-0
auth_service.go
server/router/api/v1/auth_service.go
+2
-1
resource_service.go
server/router/api/v1/resource_service.go
+1
-1
user_service.go
server/router/api/v1/user_service.go
+3
-3
v1.go
server/router/api/v1/v1.go
+1
-1
frontend.go
server/router/frontend/frontend.go
+10
-5
rss.go
server/router/rss/rss.go
+1
-1
server.go
server/server.go
+1
-1
db.go
store/db/db.go
+1
-1
mysql.go
store/db/mysql/mysql.go
+1
-1
postgres.go
store/db/postgres/postgres.go
+1
-1
sqlite.go
store/db/sqlite/sqlite.go
+1
-1
memo.go
store/memo.go
+3
-3
migrator.go
store/migrator.go
+1
-1
resource.go
store/resource.go
+3
-3
store.go
store/store.go
+1
-1
store.go
store/test/store.go
+2
-2
package.json
web/package.json
+1
-0
No files found.
bin/memos/main.go
View file @
f1b365f9
...
@@ -12,9 +12,9 @@ import (
...
@@ -12,9 +12,9 @@ import (
"github.com/spf13/cobra"
"github.com/spf13/cobra"
"github.com/spf13/viper"
"github.com/spf13/viper"
"github.com/usememos/memos/internal/profile"
"github.com/usememos/memos/internal/version"
"github.com/usememos/memos/server"
"github.com/usememos/memos/server"
"github.com/usememos/memos/server/profile"
"github.com/usememos/memos/server/version"
"github.com/usememos/memos/store"
"github.com/usememos/memos/store"
"github.com/usememos/memos/store/db"
"github.com/usememos/memos/store/db"
)
)
...
...
internal/
util
/resource_name.go
→
internal/
base
/resource_name.go
View file @
f1b365f9
package
util
package
base
import
"regexp"
import
"regexp"
...
...
internal/
util
/resource_name_test.go
→
internal/
base
/resource_name_test.go
View file @
f1b365f9
package
util
package
base
import
(
import
(
"testing"
"testing"
...
...
server
/profile/profile.go
→
internal
/profile/profile.go
View file @
f1b365f9
File moved
server
/version/version.go
→
internal
/version/version.go
View file @
f1b365f9
File moved
server
/version/version_test.go
→
internal
/version/version_test.go
View file @
f1b365f9
File moved
server/router/api/v1/auth_service.go
View file @
f1b365f9
...
@@ -16,6 +16,7 @@ import (
...
@@ -16,6 +16,7 @@ import (
"google.golang.org/grpc/status"
"google.golang.org/grpc/status"
"google.golang.org/protobuf/types/known/emptypb"
"google.golang.org/protobuf/types/known/emptypb"
"github.com/usememos/memos/internal/base"
"github.com/usememos/memos/internal/util"
"github.com/usememos/memos/internal/util"
"github.com/usememos/memos/plugin/idp"
"github.com/usememos/memos/plugin/idp"
"github.com/usememos/memos/plugin/idp/oauth2"
"github.com/usememos/memos/plugin/idp/oauth2"
...
@@ -207,7 +208,7 @@ func (s *APIV1Service) SignUp(ctx context.Context, request *v1pb.SignUpRequest)
...
@@ -207,7 +208,7 @@ func (s *APIV1Service) SignUp(ctx context.Context, request *v1pb.SignUpRequest)
Nickname
:
request
.
Username
,
Nickname
:
request
.
Username
,
PasswordHash
:
string
(
passwordHash
),
PasswordHash
:
string
(
passwordHash
),
}
}
if
!
util
.
UIDMatcher
.
MatchString
(
strings
.
ToLower
(
create
.
Username
))
{
if
!
base
.
UIDMatcher
.
MatchString
(
strings
.
ToLower
(
create
.
Username
))
{
return
nil
,
status
.
Errorf
(
codes
.
InvalidArgument
,
"invalid username: %s"
,
create
.
Username
)
return
nil
,
status
.
Errorf
(
codes
.
InvalidArgument
,
"invalid username: %s"
,
create
.
Username
)
}
}
...
...
server/router/api/v1/resource_service.go
View file @
f1b365f9
...
@@ -22,11 +22,11 @@ import (
...
@@ -22,11 +22,11 @@ import (
"google.golang.org/protobuf/types/known/emptypb"
"google.golang.org/protobuf/types/known/emptypb"
"google.golang.org/protobuf/types/known/timestamppb"
"google.golang.org/protobuf/types/known/timestamppb"
"github.com/usememos/memos/internal/profile"
"github.com/usememos/memos/internal/util"
"github.com/usememos/memos/internal/util"
"github.com/usememos/memos/plugin/storage/s3"
"github.com/usememos/memos/plugin/storage/s3"
v1pb
"github.com/usememos/memos/proto/gen/api/v1"
v1pb
"github.com/usememos/memos/proto/gen/api/v1"
storepb
"github.com/usememos/memos/proto/gen/store"
storepb
"github.com/usememos/memos/proto/gen/store"
"github.com/usememos/memos/server/profile"
"github.com/usememos/memos/store"
"github.com/usememos/memos/store"
)
)
...
...
server/router/api/v1/user_service.go
View file @
f1b365f9
...
@@ -20,7 +20,7 @@ import (
...
@@ -20,7 +20,7 @@ import (
"google.golang.org/protobuf/types/known/emptypb"
"google.golang.org/protobuf/types/known/emptypb"
"google.golang.org/protobuf/types/known/timestamppb"
"google.golang.org/protobuf/types/known/timestamppb"
"github.com/usememos/memos/internal/
util
"
"github.com/usememos/memos/internal/
base
"
v1pb
"github.com/usememos/memos/proto/gen/api/v1"
v1pb
"github.com/usememos/memos/proto/gen/api/v1"
storepb
"github.com/usememos/memos/proto/gen/store"
storepb
"github.com/usememos/memos/proto/gen/store"
"github.com/usememos/memos/store"
"github.com/usememos/memos/store"
...
@@ -122,7 +122,7 @@ func (s *APIV1Service) CreateUser(ctx context.Context, request *v1pb.CreateUserR
...
@@ -122,7 +122,7 @@ func (s *APIV1Service) CreateUser(ctx context.Context, request *v1pb.CreateUserR
if
currentUser
.
Role
!=
store
.
RoleHost
{
if
currentUser
.
Role
!=
store
.
RoleHost
{
return
nil
,
status
.
Errorf
(
codes
.
PermissionDenied
,
"permission denied"
)
return
nil
,
status
.
Errorf
(
codes
.
PermissionDenied
,
"permission denied"
)
}
}
if
!
util
.
UIDMatcher
.
MatchString
(
strings
.
ToLower
(
request
.
User
.
Username
))
{
if
!
base
.
UIDMatcher
.
MatchString
(
strings
.
ToLower
(
request
.
User
.
Username
))
{
return
nil
,
status
.
Errorf
(
codes
.
InvalidArgument
,
"invalid username: %s"
,
request
.
User
.
Username
)
return
nil
,
status
.
Errorf
(
codes
.
InvalidArgument
,
"invalid username: %s"
,
request
.
User
.
Username
)
}
}
passwordHash
,
err
:=
bcrypt
.
GenerateFromPassword
([]
byte
(
request
.
User
.
Password
),
bcrypt
.
DefaultCost
)
passwordHash
,
err
:=
bcrypt
.
GenerateFromPassword
([]
byte
(
request
.
User
.
Password
),
bcrypt
.
DefaultCost
)
...
@@ -184,7 +184,7 @@ func (s *APIV1Service) UpdateUser(ctx context.Context, request *v1pb.UpdateUserR
...
@@ -184,7 +184,7 @@ func (s *APIV1Service) UpdateUser(ctx context.Context, request *v1pb.UpdateUserR
if
workspaceGeneralSetting
.
DisallowChangeUsername
{
if
workspaceGeneralSetting
.
DisallowChangeUsername
{
return
nil
,
status
.
Errorf
(
codes
.
PermissionDenied
,
"permission denied: disallow change username"
)
return
nil
,
status
.
Errorf
(
codes
.
PermissionDenied
,
"permission denied: disallow change username"
)
}
}
if
!
util
.
UIDMatcher
.
MatchString
(
strings
.
ToLower
(
request
.
User
.
Username
))
{
if
!
base
.
UIDMatcher
.
MatchString
(
strings
.
ToLower
(
request
.
User
.
Username
))
{
return
nil
,
status
.
Errorf
(
codes
.
InvalidArgument
,
"invalid username: %s"
,
request
.
User
.
Username
)
return
nil
,
status
.
Errorf
(
codes
.
InvalidArgument
,
"invalid username: %s"
,
request
.
User
.
Username
)
}
}
update
.
Username
=
&
request
.
User
.
Username
update
.
Username
=
&
request
.
User
.
Username
...
...
server/router/api/v1/v1.go
View file @
f1b365f9
...
@@ -14,8 +14,8 @@ import (
...
@@ -14,8 +14,8 @@ import (
"google.golang.org/grpc/health/grpc_health_v1"
"google.golang.org/grpc/health/grpc_health_v1"
"google.golang.org/grpc/reflection"
"google.golang.org/grpc/reflection"
"github.com/usememos/memos/internal/profile"
v1pb
"github.com/usememos/memos/proto/gen/api/v1"
v1pb
"github.com/usememos/memos/proto/gen/api/v1"
"github.com/usememos/memos/server/profile"
"github.com/usememos/memos/store"
"github.com/usememos/memos/store"
)
)
...
...
server/router/frontend/frontend.go
View file @
f1b365f9
...
@@ -9,8 +9,8 @@ import (
...
@@ -9,8 +9,8 @@ import (
"github.com/labstack/echo/v4"
"github.com/labstack/echo/v4"
"github.com/labstack/echo/v4/middleware"
"github.com/labstack/echo/v4/middleware"
"github.com/usememos/memos/internal/profile"
"github.com/usememos/memos/internal/util"
"github.com/usememos/memos/internal/util"
"github.com/usememos/memos/server/profile"
"github.com/usememos/memos/store"
"github.com/usememos/memos/store"
)
)
...
@@ -30,12 +30,17 @@ func NewFrontendService(profile *profile.Profile, store *store.Store) *FrontendS
...
@@ -30,12 +30,17 @@ func NewFrontendService(profile *profile.Profile, store *store.Store) *FrontendS
}
}
func
(
*
FrontendService
)
Serve
(
_
context
.
Context
,
e
*
echo
.
Echo
)
{
func
(
*
FrontendService
)
Serve
(
_
context
.
Context
,
e
*
echo
.
Echo
)
{
apiSkipper
:=
func
(
c
echo
.
Context
)
bool
{
skipper
:=
func
(
c
echo
.
Context
)
bool
{
// Skip API routes.
if
util
.
HasPrefixes
(
c
.
Path
(),
"/api"
,
"/memos.api.v1"
)
{
if
util
.
HasPrefixes
(
c
.
Path
(),
"/api"
,
"/memos.api.v1"
)
{
return
true
return
true
}
}
// Set Cache-Control header to allow public caching with a max-age of 30 days (in seconds).
// Skip setting cache headers for index.html
c
.
Response
()
.
Header
()
.
Set
(
echo
.
HeaderCacheControl
,
"public, max-age=2592000"
)
if
c
.
Path
()
==
"/"
||
c
.
Path
()
==
"/index.html"
{
return
false
}
// Set Cache-Control header to allow public caching with a max-age of 7 days.
c
.
Response
()
.
Header
()
.
Set
(
echo
.
HeaderCacheControl
,
"public, max-age=604800"
)
// 7 days
return
false
return
false
}
}
...
@@ -43,7 +48,7 @@ func (*FrontendService) Serve(_ context.Context, e *echo.Echo) {
...
@@ -43,7 +48,7 @@ func (*FrontendService) Serve(_ context.Context, e *echo.Echo) {
e
.
Use
(
middleware
.
StaticWithConfig
(
middleware
.
StaticConfig
{
e
.
Use
(
middleware
.
StaticWithConfig
(
middleware
.
StaticConfig
{
Filesystem
:
getFileSystem
(
"dist"
),
Filesystem
:
getFileSystem
(
"dist"
),
HTML5
:
true
,
// Enable fallback to index.html
HTML5
:
true
,
// Enable fallback to index.html
Skipper
:
apiS
kipper
,
Skipper
:
s
kipper
,
}))
}))
}
}
...
...
server/router/rss/rss.go
View file @
f1b365f9
...
@@ -12,8 +12,8 @@ import (
...
@@ -12,8 +12,8 @@ import (
"github.com/usememos/gomark"
"github.com/usememos/gomark"
"github.com/usememos/gomark/renderer"
"github.com/usememos/gomark/renderer"
"github.com/usememos/memos/internal/profile"
storepb
"github.com/usememos/memos/proto/gen/store"
storepb
"github.com/usememos/memos/proto/gen/store"
"github.com/usememos/memos/server/profile"
"github.com/usememos/memos/store"
"github.com/usememos/memos/store"
)
)
...
...
server/server.go
View file @
f1b365f9
...
@@ -18,8 +18,8 @@ import (
...
@@ -18,8 +18,8 @@ import (
"github.com/soheilhy/cmux"
"github.com/soheilhy/cmux"
"google.golang.org/grpc"
"google.golang.org/grpc"
"github.com/usememos/memos/internal/profile"
storepb
"github.com/usememos/memos/proto/gen/store"
storepb
"github.com/usememos/memos/proto/gen/store"
"github.com/usememos/memos/server/profile"
"github.com/usememos/memos/server/profiler"
"github.com/usememos/memos/server/profiler"
apiv1
"github.com/usememos/memos/server/router/api/v1"
apiv1
"github.com/usememos/memos/server/router/api/v1"
"github.com/usememos/memos/server/router/frontend"
"github.com/usememos/memos/server/router/frontend"
...
...
store/db/db.go
View file @
f1b365f9
...
@@ -3,7 +3,7 @@ package db
...
@@ -3,7 +3,7 @@ package db
import
(
import
(
"github.com/pkg/errors"
"github.com/pkg/errors"
"github.com/usememos/memos/
server
/profile"
"github.com/usememos/memos/
internal
/profile"
"github.com/usememos/memos/store"
"github.com/usememos/memos/store"
"github.com/usememos/memos/store/db/mysql"
"github.com/usememos/memos/store/db/mysql"
"github.com/usememos/memos/store/db/postgres"
"github.com/usememos/memos/store/db/postgres"
...
...
store/db/mysql/mysql.go
View file @
f1b365f9
...
@@ -6,7 +6,7 @@ import (
...
@@ -6,7 +6,7 @@ import (
"github.com/go-sql-driver/mysql"
"github.com/go-sql-driver/mysql"
"github.com/pkg/errors"
"github.com/pkg/errors"
"github.com/usememos/memos/
server
/profile"
"github.com/usememos/memos/
internal
/profile"
"github.com/usememos/memos/store"
"github.com/usememos/memos/store"
)
)
...
...
store/db/postgres/postgres.go
View file @
f1b365f9
...
@@ -8,7 +8,7 @@ import (
...
@@ -8,7 +8,7 @@ import (
_
"github.com/lib/pq"
_
"github.com/lib/pq"
"github.com/pkg/errors"
"github.com/pkg/errors"
"github.com/usememos/memos/
server
/profile"
"github.com/usememos/memos/
internal
/profile"
"github.com/usememos/memos/store"
"github.com/usememos/memos/store"
)
)
...
...
store/db/sqlite/sqlite.go
View file @
f1b365f9
...
@@ -8,7 +8,7 @@ import (
...
@@ -8,7 +8,7 @@ import (
// Import the SQLite driver.
// Import the SQLite driver.
_
"modernc.org/sqlite"
_
"modernc.org/sqlite"
"github.com/usememos/memos/
server
/profile"
"github.com/usememos/memos/
internal
/profile"
"github.com/usememos/memos/store"
"github.com/usememos/memos/store"
)
)
...
...
store/memo.go
View file @
f1b365f9
...
@@ -4,7 +4,7 @@ import (
...
@@ -4,7 +4,7 @@ import (
"context"
"context"
"errors"
"errors"
"github.com/usememos/memos/internal/
util
"
"github.com/usememos/memos/internal/
base
"
storepb
"github.com/usememos/memos/proto/gen/store"
storepb
"github.com/usememos/memos/proto/gen/store"
)
)
...
@@ -112,7 +112,7 @@ type DeleteMemo struct {
...
@@ -112,7 +112,7 @@ type DeleteMemo struct {
}
}
func
(
s
*
Store
)
CreateMemo
(
ctx
context
.
Context
,
create
*
Memo
)
(
*
Memo
,
error
)
{
func
(
s
*
Store
)
CreateMemo
(
ctx
context
.
Context
,
create
*
Memo
)
(
*
Memo
,
error
)
{
if
!
util
.
UIDMatcher
.
MatchString
(
create
.
UID
)
{
if
!
base
.
UIDMatcher
.
MatchString
(
create
.
UID
)
{
return
nil
,
errors
.
New
(
"invalid uid"
)
return
nil
,
errors
.
New
(
"invalid uid"
)
}
}
return
s
.
driver
.
CreateMemo
(
ctx
,
create
)
return
s
.
driver
.
CreateMemo
(
ctx
,
create
)
...
@@ -136,7 +136,7 @@ func (s *Store) GetMemo(ctx context.Context, find *FindMemo) (*Memo, error) {
...
@@ -136,7 +136,7 @@ func (s *Store) GetMemo(ctx context.Context, find *FindMemo) (*Memo, error) {
}
}
func
(
s
*
Store
)
UpdateMemo
(
ctx
context
.
Context
,
update
*
UpdateMemo
)
error
{
func
(
s
*
Store
)
UpdateMemo
(
ctx
context
.
Context
,
update
*
UpdateMemo
)
error
{
if
update
.
UID
!=
nil
&&
!
util
.
UIDMatcher
.
MatchString
(
*
update
.
UID
)
{
if
update
.
UID
!=
nil
&&
!
base
.
UIDMatcher
.
MatchString
(
*
update
.
UID
)
{
return
errors
.
New
(
"invalid uid"
)
return
errors
.
New
(
"invalid uid"
)
}
}
return
s
.
driver
.
UpdateMemo
(
ctx
,
update
)
return
s
.
driver
.
UpdateMemo
(
ctx
,
update
)
...
...
store/migrator.go
View file @
f1b365f9
...
@@ -14,8 +14,8 @@ import (
...
@@ -14,8 +14,8 @@ import (
"github.com/pkg/errors"
"github.com/pkg/errors"
"github.com/usememos/memos/internal/version"
storepb
"github.com/usememos/memos/proto/gen/store"
storepb
"github.com/usememos/memos/proto/gen/store"
"github.com/usememos/memos/server/version"
)
)
//go:embed migration
//go:embed migration
...
...
store/resource.go
View file @
f1b365f9
...
@@ -8,7 +8,7 @@ import (
...
@@ -8,7 +8,7 @@ import (
"github.com/pkg/errors"
"github.com/pkg/errors"
"github.com/usememos/memos/internal/
util
"
"github.com/usememos/memos/internal/
base
"
"github.com/usememos/memos/plugin/storage/s3"
"github.com/usememos/memos/plugin/storage/s3"
storepb
"github.com/usememos/memos/proto/gen/store"
storepb
"github.com/usememos/memos/proto/gen/store"
)
)
...
@@ -67,7 +67,7 @@ type DeleteResource struct {
...
@@ -67,7 +67,7 @@ type DeleteResource struct {
}
}
func
(
s
*
Store
)
CreateResource
(
ctx
context
.
Context
,
create
*
Resource
)
(
*
Resource
,
error
)
{
func
(
s
*
Store
)
CreateResource
(
ctx
context
.
Context
,
create
*
Resource
)
(
*
Resource
,
error
)
{
if
!
util
.
UIDMatcher
.
MatchString
(
create
.
UID
)
{
if
!
base
.
UIDMatcher
.
MatchString
(
create
.
UID
)
{
return
nil
,
errors
.
New
(
"invalid uid"
)
return
nil
,
errors
.
New
(
"invalid uid"
)
}
}
return
s
.
driver
.
CreateResource
(
ctx
,
create
)
return
s
.
driver
.
CreateResource
(
ctx
,
create
)
...
@@ -102,7 +102,7 @@ func (s *Store) GetResource(ctx context.Context, find *FindResource) (*Resource,
...
@@ -102,7 +102,7 @@ func (s *Store) GetResource(ctx context.Context, find *FindResource) (*Resource,
}
}
func
(
s
*
Store
)
UpdateResource
(
ctx
context
.
Context
,
update
*
UpdateResource
)
error
{
func
(
s
*
Store
)
UpdateResource
(
ctx
context
.
Context
,
update
*
UpdateResource
)
error
{
if
update
.
UID
!=
nil
&&
!
util
.
UIDMatcher
.
MatchString
(
*
update
.
UID
)
{
if
update
.
UID
!=
nil
&&
!
base
.
UIDMatcher
.
MatchString
(
*
update
.
UID
)
{
return
errors
.
New
(
"invalid uid"
)
return
errors
.
New
(
"invalid uid"
)
}
}
return
s
.
driver
.
UpdateResource
(
ctx
,
update
)
return
s
.
driver
.
UpdateResource
(
ctx
,
update
)
...
...
store/store.go
View file @
f1b365f9
...
@@ -3,7 +3,7 @@ package store
...
@@ -3,7 +3,7 @@ package store
import
(
import
(
"time"
"time"
"github.com/usememos/memos/
server
/profile"
"github.com/usememos/memos/
internal
/profile"
"github.com/usememos/memos/store/cache"
"github.com/usememos/memos/store/cache"
)
)
...
...
store/test/store.go
View file @
f1b365f9
...
@@ -13,8 +13,8 @@ import (
...
@@ -13,8 +13,8 @@ import (
"github.com/joho/godotenv"
"github.com/joho/godotenv"
"github.com/usememos/memos/
server
/profile"
"github.com/usememos/memos/
internal
/profile"
"github.com/usememos/memos/
server
/version"
"github.com/usememos/memos/
internal
/version"
"github.com/usememos/memos/store"
"github.com/usememos/memos/store"
"github.com/usememos/memos/store/db"
"github.com/usememos/memos/store/db"
)
)
...
...
web/package.json
View file @
f1b365f9
{
{
"name"
:
"memos"
,
"name"
:
"memos"
,
"private"
:
true
,
"scripts"
:
{
"scripts"
:
{
"dev"
:
"vite"
,
"dev"
:
"vite"
,
"build"
:
"vite build"
,
"build"
:
"vite build"
,
...
...
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