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
7680be1a
Unverified
Commit
7680be1a
authored
Oct 08, 2023
by
Athurg Gooth
Committed by
GitHub
Oct 08, 2023
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: create user without some attributes (#2357)
parent
55e0fbf2
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
66 additions
and
29 deletions
+66
-29
user.go
store/db/mysql/user.go
+30
-9
user.go
store/db/sqlite/user.go
+36
-20
No files found.
store/db/mysql/user.go
View file @
7680be1a
...
@@ -10,15 +10,36 @@ import (
...
@@ -10,15 +10,36 @@ import (
)
)
func
(
d
*
DB
)
CreateUser
(
ctx
context
.
Context
,
create
*
store
.
User
)
(
*
store
.
User
,
error
)
{
func
(
d
*
DB
)
CreateUser
(
ctx
context
.
Context
,
create
*
store
.
User
)
(
*
store
.
User
,
error
)
{
stmt
:=
"INSERT INTO `user` (`username`, `role`, `email`, `nickname`, `password_hash`, `avatar_url`) VALUES (?, ?, ?, ?, ?, ?)"
fields
:=
[]
string
{
"`username`"
,
"`role`"
,
"`email`"
,
"`nickname`"
,
"`password_hash`"
,
"`avatar_url`"
}
result
,
err
:=
d
.
db
.
ExecContext
(
ctx
,
stmt
,
placeholder
:=
[]
string
{
"?"
,
"?"
,
"?"
,
"?"
,
"?"
,
"?"
}
create
.
Username
,
args
:=
[]
any
{
create
.
Username
,
create
.
Role
,
create
.
Email
,
create
.
Nickname
,
create
.
PasswordHash
,
create
.
AvatarURL
}
create
.
Role
,
create
.
Email
,
if
create
.
RowStatus
!=
""
{
create
.
Nickname
,
fields
=
append
(
fields
,
"`row_status`"
)
create
.
PasswordHash
,
placeholder
=
append
(
placeholder
,
"?"
)
create
.
AvatarURL
,
args
=
append
(
args
,
create
.
RowStatus
)
)
}
if
create
.
CreatedTs
!=
0
{
fields
=
append
(
fields
,
"`created_ts`"
)
placeholder
=
append
(
placeholder
,
"FROM_UNIXTIME(?)"
)
args
=
append
(
args
,
create
.
CreatedTs
)
}
if
create
.
UpdatedTs
!=
0
{
fields
=
append
(
fields
,
"`updated_ts`"
)
placeholder
=
append
(
placeholder
,
"FROM_UNIXTIME(?)"
)
args
=
append
(
args
,
create
.
UpdatedTs
)
}
if
create
.
ID
!=
0
{
fields
=
append
(
fields
,
"`id`"
)
placeholder
=
append
(
placeholder
,
"?"
)
args
=
append
(
args
,
create
.
ID
)
}
stmt
:=
"INSERT INTO user ("
+
strings
.
Join
(
fields
,
", "
)
+
") VALUES ("
+
strings
.
Join
(
placeholder
,
", "
)
+
")"
result
,
err
:=
d
.
db
.
ExecContext
(
ctx
,
stmt
,
args
...
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
}
}
...
...
store/db/sqlite/user.go
View file @
7680be1a
...
@@ -8,26 +8,42 @@ import (
...
@@ -8,26 +8,42 @@ import (
)
)
func
(
d
*
DB
)
CreateUser
(
ctx
context
.
Context
,
create
*
store
.
User
)
(
*
store
.
User
,
error
)
{
func
(
d
*
DB
)
CreateUser
(
ctx
context
.
Context
,
create
*
store
.
User
)
(
*
store
.
User
,
error
)
{
stmt
:=
`
fields
:=
[]
string
{
"`username`"
,
"`role`"
,
"`email`"
,
"`nickname`"
,
"`password_hash`"
}
INSERT INTO user (
placeholder
:=
[]
string
{
"?"
,
"?"
,
"?"
,
"?"
,
"?"
}
username,
args
:=
[]
any
{
create
.
Username
,
create
.
Role
,
create
.
Email
,
create
.
Nickname
,
create
.
PasswordHash
}
role,
email,
if
create
.
AvatarURL
!=
""
{
nickname,
fields
=
append
(
fields
,
"`avatar_url`"
)
password_hash
placeholder
=
append
(
placeholder
,
"?"
)
)
args
=
append
(
args
,
create
.
AvatarURL
)
VALUES (?, ?, ?, ?, ?)
}
RETURNING id, avatar_url, created_ts, updated_ts, row_status
`
if
create
.
RowStatus
!=
""
{
if
err
:=
d
.
db
.
QueryRowContext
(
fields
=
append
(
fields
,
"`row_status`"
)
ctx
,
placeholder
=
append
(
placeholder
,
"?"
)
stmt
,
args
=
append
(
args
,
create
.
RowStatus
)
create
.
Username
,
}
create
.
Role
,
create
.
Email
,
if
create
.
CreatedTs
!=
0
{
create
.
Nickname
,
fields
=
append
(
fields
,
"`created_ts`"
)
create
.
PasswordHash
,
placeholder
=
append
(
placeholder
,
"?"
)
)
.
Scan
(
args
=
append
(
args
,
create
.
CreatedTs
)
}
if
create
.
UpdatedTs
!=
0
{
fields
=
append
(
fields
,
"`updated_ts`"
)
placeholder
=
append
(
placeholder
,
"?"
)
args
=
append
(
args
,
create
.
UpdatedTs
)
}
if
create
.
ID
!=
0
{
fields
=
append
(
fields
,
"`id`"
)
placeholder
=
append
(
placeholder
,
"?"
)
args
=
append
(
args
,
create
.
ID
)
}
stmt
:=
"INSERT INTO user ("
+
strings
.
Join
(
fields
,
", "
)
+
") VALUES ("
+
strings
.
Join
(
placeholder
,
", "
)
+
") RETURNING id, avatar_url, created_ts, updated_ts, row_status"
if
err
:=
d
.
db
.
QueryRowContext
(
ctx
,
stmt
,
args
...
)
.
Scan
(
&
create
.
ID
,
&
create
.
ID
,
&
create
.
AvatarURL
,
&
create
.
AvatarURL
,
&
create
.
CreatedTs
,
&
create
.
CreatedTs
,
...
...
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