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
7b1bad5b
Commit
7b1bad5b
authored
Jul 26, 2022
by
boojack
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: update delete user api
parent
0c2adfa1
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
28 additions
and
49 deletions
+28
-49
user.go
server/user.go
+12
-45
memo.go
store/memo.go
+4
-1
resource.go
store/resource.go
+4
-1
shortcut.go
store/shortcut.go
+4
-1
user.go
store/user.go
+4
-1
No files found.
server/user.go
View file @
7b1bad5b
...
@@ -104,43 +104,11 @@ func (s *Server) registerUserRoutes(g *echo.Group) {
...
@@ -104,43 +104,11 @@ func (s *Server) registerUserRoutes(g *echo.Group) {
return
nil
return
nil
})
})
g
.
PATCH
(
"/user/me"
,
func
(
c
echo
.
Context
)
error
{
g
.
PATCH
(
"/user/:id"
,
func
(
c
echo
.
Context
)
error
{
userID
:=
c
.
Get
(
getUserIDContextKey
())
.
(
int
)
userID
,
err
:=
strconv
.
Atoi
(
c
.
Param
(
"id"
))
userPatch
:=
&
api
.
UserPatch
{
ID
:
userID
,
}
if
err
:=
json
.
NewDecoder
(
c
.
Request
()
.
Body
)
.
Decode
(
userPatch
);
err
!=
nil
{
return
echo
.
NewHTTPError
(
http
.
StatusBadRequest
,
"Malformatted patch user request"
)
.
SetInternal
(
err
)
}
if
userPatch
.
Password
!=
nil
&&
*
userPatch
.
Password
!=
""
{
passwordHash
,
err
:=
bcrypt
.
GenerateFromPassword
([]
byte
(
*
userPatch
.
Password
),
bcrypt
.
DefaultCost
)
if
err
!=
nil
{
return
echo
.
NewHTTPError
(
http
.
StatusInternalServerError
,
"Failed to generate password hash"
)
.
SetInternal
(
err
)
}
passwordHashStr
:=
string
(
passwordHash
)
userPatch
.
PasswordHash
=
&
passwordHashStr
}
if
userPatch
.
ResetOpenID
!=
nil
&&
*
userPatch
.
ResetOpenID
{
openID
:=
common
.
GenUUID
()
userPatch
.
OpenID
=
&
openID
}
user
,
err
:=
s
.
Store
.
PatchUser
(
userPatch
)
if
err
!=
nil
{
if
err
!=
nil
{
return
echo
.
NewHTTPError
(
http
.
Status
InternalServerError
,
"Failed to patch user"
)
.
SetInternal
(
err
)
return
echo
.
NewHTTPError
(
http
.
Status
BadRequest
,
fmt
.
Sprintf
(
"ID is not a number: %s"
,
c
.
Param
(
"id"
))
)
.
SetInternal
(
err
)
}
}
c
.
Response
()
.
Header
()
.
Set
(
echo
.
HeaderContentType
,
echo
.
MIMEApplicationJSONCharsetUTF8
)
if
err
:=
json
.
NewEncoder
(
c
.
Response
()
.
Writer
)
.
Encode
(
composeResponse
(
user
));
err
!=
nil
{
return
echo
.
NewHTTPError
(
http
.
StatusInternalServerError
,
"Failed to encode user response"
)
.
SetInternal
(
err
)
}
return
nil
})
g
.
PATCH
(
"/user/:userId"
,
func
(
c
echo
.
Context
)
error
{
currentUserID
:=
c
.
Get
(
getUserIDContextKey
())
.
(
int
)
currentUserID
:=
c
.
Get
(
getUserIDContextKey
())
.
(
int
)
currentUser
,
err
:=
s
.
Store
.
FindUser
(
&
api
.
UserFind
{
currentUser
,
err
:=
s
.
Store
.
FindUser
(
&
api
.
UserFind
{
ID
:
&
currentUserID
,
ID
:
&
currentUserID
,
...
@@ -150,15 +118,10 @@ func (s *Server) registerUserRoutes(g *echo.Group) {
...
@@ -150,15 +118,10 @@ func (s *Server) registerUserRoutes(g *echo.Group) {
}
}
if
currentUser
==
nil
{
if
currentUser
==
nil
{
return
echo
.
NewHTTPError
(
http
.
StatusBadRequest
,
fmt
.
Sprintf
(
"Current session user not found with ID: %d"
,
currentUserID
))
.
SetInternal
(
err
)
return
echo
.
NewHTTPError
(
http
.
StatusBadRequest
,
fmt
.
Sprintf
(
"Current session user not found with ID: %d"
,
currentUserID
))
.
SetInternal
(
err
)
}
else
if
currentUser
.
Role
!=
api
.
Host
{
}
else
if
currentUser
.
Role
!=
api
.
Host
&&
currentUserID
!=
userID
{
return
echo
.
NewHTTPError
(
http
.
StatusForbidden
,
"Access forbidden for current session user"
)
.
SetInternal
(
err
)
return
echo
.
NewHTTPError
(
http
.
StatusForbidden
,
"Access forbidden for current session user"
)
.
SetInternal
(
err
)
}
}
userID
,
err
:=
strconv
.
Atoi
(
c
.
Param
(
"userId"
))
if
err
!=
nil
{
return
echo
.
NewHTTPError
(
http
.
StatusBadRequest
,
fmt
.
Sprintf
(
"ID is not a number: %s"
,
c
.
Param
(
"userId"
)))
.
SetInternal
(
err
)
}
userPatch
:=
&
api
.
UserPatch
{
userPatch
:=
&
api
.
UserPatch
{
ID
:
userID
,
ID
:
userID
,
}
}
...
@@ -176,6 +139,11 @@ func (s *Server) registerUserRoutes(g *echo.Group) {
...
@@ -176,6 +139,11 @@ func (s *Server) registerUserRoutes(g *echo.Group) {
userPatch
.
PasswordHash
=
&
passwordHashStr
userPatch
.
PasswordHash
=
&
passwordHashStr
}
}
if
userPatch
.
ResetOpenID
!=
nil
&&
*
userPatch
.
ResetOpenID
{
openID
:=
common
.
GenUUID
()
userPatch
.
OpenID
=
&
openID
}
user
,
err
:=
s
.
Store
.
PatchUser
(
userPatch
)
user
,
err
:=
s
.
Store
.
PatchUser
(
userPatch
)
if
err
!=
nil
{
if
err
!=
nil
{
return
echo
.
NewHTTPError
(
http
.
StatusInternalServerError
,
"Failed to patch user"
)
.
SetInternal
(
err
)
return
echo
.
NewHTTPError
(
http
.
StatusInternalServerError
,
"Failed to patch user"
)
.
SetInternal
(
err
)
...
@@ -188,7 +156,7 @@ func (s *Server) registerUserRoutes(g *echo.Group) {
...
@@ -188,7 +156,7 @@ func (s *Server) registerUserRoutes(g *echo.Group) {
return
nil
return
nil
})
})
g
.
DELETE
(
"/user/:
userI
d"
,
func
(
c
echo
.
Context
)
error
{
g
.
DELETE
(
"/user/:
i
d"
,
func
(
c
echo
.
Context
)
error
{
currentUserID
:=
c
.
Get
(
getUserIDContextKey
())
.
(
int
)
currentUserID
:=
c
.
Get
(
getUserIDContextKey
())
.
(
int
)
currentUser
,
err
:=
s
.
Store
.
FindUser
(
&
api
.
UserFind
{
currentUser
,
err
:=
s
.
Store
.
FindUser
(
&
api
.
UserFind
{
ID
:
&
currentUserID
,
ID
:
&
currentUserID
,
...
@@ -202,9 +170,9 @@ func (s *Server) registerUserRoutes(g *echo.Group) {
...
@@ -202,9 +170,9 @@ func (s *Server) registerUserRoutes(g *echo.Group) {
return
echo
.
NewHTTPError
(
http
.
StatusForbidden
,
"Access forbidden for current session user"
)
.
SetInternal
(
err
)
return
echo
.
NewHTTPError
(
http
.
StatusForbidden
,
"Access forbidden for current session user"
)
.
SetInternal
(
err
)
}
}
userID
,
err
:=
strconv
.
Atoi
(
c
.
Param
(
"
userI
d"
))
userID
,
err
:=
strconv
.
Atoi
(
c
.
Param
(
"
i
d"
))
if
err
!=
nil
{
if
err
!=
nil
{
return
echo
.
NewHTTPError
(
http
.
StatusBadRequest
,
fmt
.
Sprintf
(
"ID is not a number: %s"
,
c
.
Param
(
"
userI
d"
)))
.
SetInternal
(
err
)
return
echo
.
NewHTTPError
(
http
.
StatusBadRequest
,
fmt
.
Sprintf
(
"ID is not a number: %s"
,
c
.
Param
(
"
i
d"
)))
.
SetInternal
(
err
)
}
}
userDelete
:=
&
api
.
UserDelete
{
userDelete
:=
&
api
.
UserDelete
{
...
@@ -216,5 +184,4 @@ func (s *Server) registerUserRoutes(g *echo.Group) {
...
@@ -216,5 +184,4 @@ func (s *Server) registerUserRoutes(g *echo.Group) {
return
c
.
JSON
(
http
.
StatusOK
,
true
)
return
c
.
JSON
(
http
.
StatusOK
,
true
)
})
})
}
}
store/memo.go
View file @
7b1bad5b
...
@@ -284,7 +284,10 @@ func findMemoRawList(db *sql.DB, find *api.MemoFind) ([]*memoRaw, error) {
...
@@ -284,7 +284,10 @@ func findMemoRawList(db *sql.DB, find *api.MemoFind) ([]*memoRaw, error) {
}
}
func
deleteMemo
(
db
*
sql
.
DB
,
delete
*
api
.
MemoDelete
)
error
{
func
deleteMemo
(
db
*
sql
.
DB
,
delete
*
api
.
MemoDelete
)
error
{
result
,
err
:=
db
.
Exec
(
`DELETE FROM memo WHERE id = ?`
,
delete
.
ID
)
result
,
err
:=
db
.
Exec
(
`
PRAGMA foreign_keys = ON;
DELETE FROM resource WHERE id = ?
`
,
delete
.
ID
)
if
err
!=
nil
{
if
err
!=
nil
{
return
FormatError
(
err
)
return
FormatError
(
err
)
}
}
...
...
store/resource.go
View file @
7b1bad5b
...
@@ -190,7 +190,10 @@ func findResourceList(db *sql.DB, find *api.ResourceFind) ([]*resourceRaw, error
...
@@ -190,7 +190,10 @@ func findResourceList(db *sql.DB, find *api.ResourceFind) ([]*resourceRaw, error
}
}
func
deleteResource
(
db
*
sql
.
DB
,
delete
*
api
.
ResourceDelete
)
error
{
func
deleteResource
(
db
*
sql
.
DB
,
delete
*
api
.
ResourceDelete
)
error
{
result
,
err
:=
db
.
Exec
(
`DELETE FROM resource WHERE id = ?`
,
delete
.
ID
)
result
,
err
:=
db
.
Exec
(
`
PRAGMA foreign_keys = ON;
DELETE FROM resource WHERE id = ?
`
,
delete
.
ID
)
if
err
!=
nil
{
if
err
!=
nil
{
return
FormatError
(
err
)
return
FormatError
(
err
)
}
}
...
...
store/shortcut.go
View file @
7b1bad5b
...
@@ -238,7 +238,10 @@ func findShortcutList(db *sql.DB, find *api.ShortcutFind) ([]*shortcutRaw, error
...
@@ -238,7 +238,10 @@ func findShortcutList(db *sql.DB, find *api.ShortcutFind) ([]*shortcutRaw, error
}
}
func
deleteShortcut
(
db
*
sql
.
DB
,
delete
*
api
.
ShortcutDelete
)
error
{
func
deleteShortcut
(
db
*
sql
.
DB
,
delete
*
api
.
ShortcutDelete
)
error
{
result
,
err
:=
db
.
Exec
(
`DELETE FROM shortcut WHERE id = ?`
,
delete
.
ID
)
result
,
err
:=
db
.
Exec
(
`
PRAGMA foreign_keys = ON;
DELETE FROM shortcut WHERE id = ?
`
,
delete
.
ID
)
if
err
!=
nil
{
if
err
!=
nil
{
return
FormatError
(
err
)
return
FormatError
(
err
)
}
}
...
...
store/user.go
View file @
7b1bad5b
...
@@ -270,7 +270,10 @@ func findUserList(db *sql.DB, find *api.UserFind) ([]*userRaw, error) {
...
@@ -270,7 +270,10 @@ func findUserList(db *sql.DB, find *api.UserFind) ([]*userRaw, error) {
}
}
func
deleteUser
(
db
*
sql
.
DB
,
delete
*
api
.
UserDelete
)
error
{
func
deleteUser
(
db
*
sql
.
DB
,
delete
*
api
.
UserDelete
)
error
{
result
,
err
:=
db
.
Exec
(
`DELETE FROM user WHERE id = ?`
,
delete
.
ID
)
result
,
err
:=
db
.
Exec
(
`
PRAGMA foreign_keys = ON;
DELETE FROM user WHERE id = ?
`
,
delete
.
ID
)
if
err
!=
nil
{
if
err
!=
nil
{
return
FormatError
(
err
)
return
FormatError
(
err
)
}
}
...
...
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