add createMethod #1
|
@ -13,3 +13,5 @@
|
||||||
|
|
||||||
# Dependency directories (remove the comment below to include it)
|
# Dependency directories (remove the comment below to include it)
|
||||||
# vendor/
|
# vendor/
|
||||||
|
|
||||||
|
.idea
|
||||||
|
|
|
@ -0,0 +1,62 @@
|
||||||
|
|||||||
|
package usermngmt
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
import (
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
"context"
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
"github.com/Selly-Modules/mongodb"
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
)
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
// CreateOptions ...
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
type CreateOptions struct {
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
Name string
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
Phone string
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
Email string
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
Password string
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
Status string
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
RoleID string
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
Other string
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
}
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
// Create ...
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
func (s Service) Create(payload CreateOptions) error {
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
var (
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
ctx = context.Background()
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
)
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
// Validate payload
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
err := payload.validate(ctx)
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
if err != nil {
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
return err
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
}
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
// New user data from payload
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
doc, err := payload.newUser()
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
if err != nil {
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
return err
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
}
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
// Create user
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
err = s.userCreate(ctx, doc)
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
if err != nil {
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
return err
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
}
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
return nil
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
}
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
func (payload CreateOptions) newUser() (result User, err error) {
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
timeNow := now()
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
roleID, _ := mongodb.NewIDFromString(payload.RoleID)
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
return User{
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
ID: mongodb.NewObjectID(),
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
Name: payload.Name,
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
Phone: payload.Phone,
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
Email: payload.Email,
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
HashedPassword: hashPassword(payload.Password),
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
Status: payload.Status,
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
RoleID: roleID,
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
Other: payload.Other,
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
CreatedAt: timeNow,
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
UpdatedAt: timeNow,
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
}, nil
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|||||||
|
}
|
||||||
boolean thì:
trên sửa lại boolean thì:
- check existed dùng prefix `is`
- check có value, field nào đó dùng prefix `has`
trên sửa lại `isNameOrPhoneExisted`
have name or phone existed -> phone number or email already existed have name or phone existed -> phone number or email already existed
thiếu check roleId trong db thiếu check roleId trong db
done done
done done
done done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist lỗi là ngữ cảnh cho user đọc, nên viết clear tí roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func func này với func isRoleIDExisted nên đưa vô func `payload.validate()`, gom tất cả validate trước khi xử lý về 1 chỗ
bỏ dấu space sau Create bỏ dấu space sau Create
password do module này hash, xem link này: password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done done
done done
done done
done done
done done
done done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được nên là `string`, nếu client không dùng mongodb thì phải cài thêm thư viện
note: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done done
done done
|
|
@ -0,0 +1,12 @@
|
||||||
|
package usermngmt
|
||||||
|
|
||||||
|
// Constant ...
|
||||||
|
const (
|
||||||
|
tableUser = "users"
|
||||||
|
tableRole = "roles"
|
||||||
|
tablePrefixDefault = "usermngmt"
|
||||||
|
|
||||||
|
timezoneHCM = "Asia/Ho_Chi_Minh"
|
||||||
|
|
||||||
|
passwordHashingCost = 14
|
||||||
|
)
|
|
@ -0,0 +1,85 @@
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
count luôn count luôn
done done
done done
done done
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
done done
|
|||||||
|
package usermngmt
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
import (
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
"context"
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
"fmt"
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
"github.com/Selly-Modules/logger"
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
"go.mongodb.org/mongo-driver/bson"
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
"go.mongodb.org/mongo-driver/bson/primitive"
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
"go.mongodb.org/mongo-driver/mongo"
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
)
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
// getUserCollection ...
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
func (s Service) getUserCollection() *mongo.Collection {
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
return s.DB.Collection(fmt.Sprintf("%s-%s", s.TablePrefix, tableUser))
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
}
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
// getRoleCollection ...
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
func (s Service) getRoleCollection() *mongo.Collection {
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
return s.DB.Collection(fmt.Sprintf("%s-%s", s.TablePrefix, tableRole))
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
}
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
func (s Service) isPhoneNumberOrEmailExisted(ctx context.Context, phone, email string) bool {
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
var (
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
col = s.getUserCollection()
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
)
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
// Find
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
cond := bson.M{
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
"$or": []bson.M{
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
{
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
"phone": phone,
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
},
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
{
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
"email": email,
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
},
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
},
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
}
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
total, err := col.CountDocuments(ctx, cond)
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
if err != nil {
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
logger.Error("usermngmt - countUserByCondition", logger.LogData{
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
"condition": cond,
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
"err": err.Error(),
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
})
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
return true
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
}
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
return total != 0
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
}
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
func (s Service) isRoleIDExisted(ctx context.Context, roleID primitive.ObjectID) bool {
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
var (
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
col = s.getRoleCollection()
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
)
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
// Find
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
cond := bson.M{
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
"_id": roleID,
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
}
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
total, err := col.CountDocuments(ctx, cond)
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
if err != nil {
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
logger.Error("usermngmt - countRoleByCondition", logger.LogData{
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
"condition": cond,
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
"err": err.Error(),
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
})
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
return false
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
}
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
return total != 0
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
}
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
func (s Service) userCreate(ctx context.Context, doc User) error {
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
var (
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
col = s.getUserCollection()
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
)
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
_, err := col.InsertOne(ctx, doc)
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
if err != nil {
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
logger.Error("usermngmt - Create", logger.LogData{
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
"doc": doc,
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
"err": err.Error(),
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
})
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
return fmt.Errorf("error when create user: %s", err.Error())
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
}
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
return nil
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|||||||
|
}
|
||||||
isPhoneNumberOrPhoneExisted isPhoneNumberOrPhoneExisted
chỗ này count là được chớ cần gì find chỗ này count là được chớ cần gì find
count luôn count luôn
done done
done done
done done
set default rồi, bỏ cái này đi set default rồi, bỏ cái này đi
done done
|
|
@ -0,0 +1,44 @@
|
||||||
|
module github.com/selly-Modules/usermngmt
|
||||||
|
|
||||||
|
go 1.17
|
||||||
|
|
||||||
|
require (
|
||||||
|
github.com/Selly-Modules/logger v0.0.0-20210809034923-140a51f39ec9
|
||||||
|
github.com/Selly-Modules/mongodb v0.0.0-20211013094205-a8ab24a96c4c
|
||||||
|
go.mongodb.org/mongo-driver v1.7.4
|
||||||
|
)
|
||||||
|
|
||||||
|
require (
|
||||||
|
github.com/armon/go-radix v1.0.0 // indirect
|
||||||
|
github.com/elastic/go-licenser v0.3.1 // indirect
|
||||||
|
github.com/elastic/go-sysinfo v1.1.1 // indirect
|
||||||
|
github.com/elastic/go-windows v1.0.0 // indirect
|
||||||
|
github.com/go-stack/stack v1.8.0 // indirect
|
||||||
|
github.com/golang/snappy v0.0.1 // indirect
|
||||||
|
github.com/jcchavezs/porto v0.1.0 // indirect
|
||||||
|
github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 // indirect
|
||||||
|
github.com/klauspost/compress v1.13.6 // indirect
|
||||||
|
github.com/logrusorgru/aurora v2.0.3+incompatible // indirect
|
||||||
|
github.com/pkg/errors v0.9.1 // indirect
|
||||||
|
github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0 // indirect
|
||||||
|
github.com/santhosh-tekuri/jsonschema v1.2.4 // indirect
|
||||||
|
github.com/xdg-go/pbkdf2 v1.0.0 // indirect
|
||||||
|
github.com/xdg-go/scram v1.0.2 // indirect
|
||||||
|
github.com/xdg-go/stringprep v1.0.2 // indirect
|
||||||
|
github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d // indirect
|
||||||
|
go.elastic.co/apm v1.13.1 // indirect
|
||||||
|
go.elastic.co/apm/module/apmzap v1.13.1 // indirect
|
||||||
|
go.elastic.co/fastjson v1.1.0 // indirect
|
||||||
|
go.uber.org/atomic v1.7.0 // indirect
|
||||||
|
go.uber.org/multierr v1.6.0 // indirect
|
||||||
|
go.uber.org/zap v1.18.1 // indirect
|
||||||
|
golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073 // indirect
|
||||||
|
golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5 // indirect
|
||||||
|
golang.org/x/mod v0.3.0 // indirect
|
||||||
|
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e // indirect
|
||||||
|
golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e // indirect
|
||||||
|
golang.org/x/text v0.3.7 // indirect
|
||||||
|
golang.org/x/tools v0.0.0-20200509030707-2212a7e161a5 // indirect
|
||||||
|
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 // indirect
|
||||||
|
howett.net/plist v0.0.0-20181124034731-591f970eefbb // indirect
|
||||||
|
)
|
|
@ -0,0 +1,184 @@
|
||||||
|
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
||||||
|
github.com/Selly-Modules/logger v0.0.0-20210809034923-140a51f39ec9 h1:AuJ/IIZ7yppyP19ILEYkwz26CwGXR4xUyXANKSG0+1U=
|
||||||
|
github.com/Selly-Modules/logger v0.0.0-20210809034923-140a51f39ec9/go.mod h1:RWhSQ3F01an8KD00VjzRBZOMcE5eV2Cy0/l4ZkeieyU=
|
||||||
|
github.com/Selly-Modules/mongodb v0.0.0-20211013094205-a8ab24a96c4c h1:1l6QmAl43maG9zFyUXrPQVUjyVt0vy/2Saz992UR+Sc=
|
||||||
|
github.com/Selly-Modules/mongodb v0.0.0-20211013094205-a8ab24a96c4c/go.mod h1:C9O0Bgl9i6szjntMjBdEvaFSqG2UPOgHUspIWIJ93JQ=
|
||||||
|
github.com/armon/go-radix v1.0.0 h1:F4z6KzEeeQIMeLFa97iZU6vupzoecKdU5TX24SNppXI=
|
||||||
|
github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
|
||||||
|
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
|
||||||
|
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
|
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
|
github.com/elastic/go-licenser v0.3.1 h1:RmRukU/JUmts+rpexAw0Fvt2ly7VVu6mw8z4HrEzObU=
|
||||||
|
github.com/elastic/go-licenser v0.3.1/go.mod h1:D8eNQk70FOCVBl3smCGQt/lv7meBeQno2eI1S5apiHQ=
|
||||||
|
github.com/elastic/go-sysinfo v1.1.1 h1:ZVlaLDyhVkDfjwPGU55CQRCRolNpc7P0BbyhhQZQmMI=
|
||||||
|
github.com/elastic/go-sysinfo v1.1.1/go.mod h1:i1ZYdU10oLNfRzq4vq62BEwD2fH8KaWh6eh0ikPT9F0=
|
||||||
|
github.com/elastic/go-windows v1.0.0 h1:qLURgZFkkrYyTTkvYpsZIgf83AUsdIHfvlJaqaZ7aSY=
|
||||||
|
github.com/elastic/go-windows v1.0.0/go.mod h1:TsU0Nrp7/y3+VwE82FoZF8gC/XFg/Elz6CcloAxnPgU=
|
||||||
|
github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk=
|
||||||
|
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
|
||||||
|
github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0=
|
||||||
|
github.com/gobuffalo/depgen v0.0.0-20190329151759-d478694a28d3/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY=
|
||||||
|
github.com/gobuffalo/depgen v0.1.0/go.mod h1:+ifsuy7fhi15RWncXQQKjWS9JPkdah5sZvtHc2RXGlg=
|
||||||
|
github.com/gobuffalo/envy v1.6.15/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI=
|
||||||
|
github.com/gobuffalo/envy v1.7.0/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI=
|
||||||
|
github.com/gobuffalo/flect v0.1.0/go.mod h1:d2ehjJqGOH/Kjqcoz+F7jHTBbmDb38yXA598Hb50EGs=
|
||||||
|
github.com/gobuffalo/flect v0.1.1/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI=
|
||||||
|
github.com/gobuffalo/flect v0.1.3/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI=
|
||||||
|
github.com/gobuffalo/genny v0.0.0-20190329151137-27723ad26ef9/go.mod h1:rWs4Z12d1Zbf19rlsn0nurr75KqhYp52EAGGxTbBhNk=
|
||||||
|
github.com/gobuffalo/genny v0.0.0-20190403191548-3ca520ef0d9e/go.mod h1:80lIj3kVJWwOrXWWMRzzdhW3DsrdjILVil/SFKBzF28=
|
||||||
|
github.com/gobuffalo/genny v0.1.0/go.mod h1:XidbUqzak3lHdS//TPu2OgiFB+51Ur5f7CSnXZ/JDvo=
|
||||||
|
github.com/gobuffalo/genny v0.1.1/go.mod h1:5TExbEyY48pfunL4QSXxlDOmdsD44RRq4mVZ0Ex28Xk=
|
||||||
|
github.com/gobuffalo/gitgen v0.0.0-20190315122116-cc086187d211/go.mod h1:vEHJk/E9DmhejeLeNt7UVvlSGv3ziL+djtTr3yyzcOw=
|
||||||
|
github.com/gobuffalo/gogen v0.0.0-20190315121717-8f38393713f5/go.mod h1:V9QVDIxsgKNZs6L2IYiGR8datgMhB577vzTDqypH360=
|
||||||
|
github.com/gobuffalo/gogen v0.1.0/go.mod h1:8NTelM5qd8RZ15VjQTFkAW6qOMx5wBbW4dSCS3BY8gg=
|
||||||
|
github.com/gobuffalo/gogen v0.1.1/go.mod h1:y8iBtmHmGc4qa3urIyo1shvOD8JftTtfcKi+71xfDNE=
|
||||||
|
github.com/gobuffalo/logger v0.0.0-20190315122211-86e12af44bc2/go.mod h1:QdxcLw541hSGtBnhUc4gaNIXRjiDppFGaDqzbrBd3v8=
|
||||||
|
github.com/gobuffalo/mapi v1.0.1/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc=
|
||||||
|
github.com/gobuffalo/mapi v1.0.2/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc=
|
||||||
|
github.com/gobuffalo/packd v0.0.0-20190315124812-a385830c7fc0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4=
|
||||||
|
github.com/gobuffalo/packd v0.1.0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4=
|
||||||
|
github.com/gobuffalo/packr/v2 v2.0.9/go.mod h1:emmyGweYTm6Kdper+iywB6YK5YzuKchGtJQZ0Odn4pQ=
|
||||||
|
github.com/gobuffalo/packr/v2 v2.2.0/go.mod h1:CaAwI0GPIAv+5wKLtv8Afwl+Cm78K/I/VCm/3ptBN+0=
|
||||||
|
github.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw=
|
||||||
|
github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4=
|
||||||
|
github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
||||||
|
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
||||||
|
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||||
|
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
|
||||||
|
github.com/jcchavezs/porto v0.1.0 h1:Xmxxn25zQMmgE7/yHYmh19KcItG81hIwfbEEFnd6w/Q=
|
||||||
|
github.com/jcchavezs/porto v0.1.0/go.mod h1:fESH0gzDHiutHRdX2hv27ojnOVFco37hg1W6E9EZF4A=
|
||||||
|
github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
|
||||||
|
github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 h1:rp+c0RAYOWj8l6qbCUTSiRLG/iKnW3K3/QfPPuSsBt4=
|
||||||
|
github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901/go.mod h1:Z86h9688Y0wesXCyonoVr47MasHilkuLMqGhRZ4Hpak=
|
||||||
|
github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg=
|
||||||
|
github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4=
|
||||||
|
github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA=
|
||||||
|
github.com/klauspost/compress v1.9.5/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=
|
||||||
|
github.com/klauspost/compress v1.13.6 h1:P76CopJELS0TiO2mebmnzgWaajssP/EszplttgQxcgc=
|
||||||
|
github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
|
||||||
|
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||||
|
github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||||
|
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
||||||
|
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
||||||
|
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
||||||
|
github.com/logrusorgru/aurora v2.0.3+incompatible h1:tOpm7WcpBTn4fjmVfgpQq0EfczGlG91VSDkswnjF5A8=
|
||||||
|
github.com/logrusorgru/aurora v2.0.3+incompatible/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4=
|
||||||
|
github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE=
|
||||||
|
github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0=
|
||||||
|
github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
|
||||||
|
github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE=
|
||||||
|
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
|
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
|
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||||
|
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
|
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
|
github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0 h1:c8R11WC8m7KNMkTv/0+Be8vvwo4I3/Ut9AC2FW8fX3U=
|
||||||
|
github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
|
||||||
|
github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
||||||
|
github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
||||||
|
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
||||||
|
github.com/santhosh-tekuri/jsonschema v1.2.4 h1:hNhW8e7t+H1vgY+1QeEQpveR6D4+OwKPXCfD2aieJis=
|
||||||
|
github.com/santhosh-tekuri/jsonschema v1.2.4/go.mod h1:TEAUOeZSmIxTTuHatJzrvARHiuO9LYd+cIxzgEHCQI4=
|
||||||
|
github.com/sirupsen/logrus v1.4.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
|
||||||
|
github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q=
|
||||||
|
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
|
||||||
|
github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
|
||||||
|
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
||||||
|
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
|
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
|
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||||
|
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||||
|
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
||||||
|
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||||
|
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||||
|
github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
|
||||||
|
github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c=
|
||||||
|
github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI=
|
||||||
|
github.com/xdg-go/scram v1.0.2 h1:akYIkZ28e6A96dkWNJQu3nmCzH3YfwMPQExUYDaRv7w=
|
||||||
|
github.com/xdg-go/scram v1.0.2/go.mod h1:1WAq6h33pAW+iRreB34OORO2Nf7qel3VV3fjBj+hCSs=
|
||||||
|
github.com/xdg-go/stringprep v1.0.2 h1:6iq84/ryjjeRmMJwxutI51F2GIPlP5BfTvXHeYjyhBc=
|
||||||
|
github.com/xdg-go/stringprep v1.0.2/go.mod h1:8F9zXuvzgwmyT5DUm4GUfZGDdT3W+LCvS6+da4O5kxM=
|
||||||
|
github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d h1:splanxYIlg+5LfHAM6xpdFEAYOk8iySO56hMFq6uLyA=
|
||||||
|
github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA=
|
||||||
|
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
|
go.elastic.co/apm v1.13.1 h1:ICIcUcQOImg/bve9mQVyLCvm1cSUZ1afdwK6ACnxczU=
|
||||||
|
go.elastic.co/apm v1.13.1/go.mod h1:dylGv2HKR0tiCV+wliJz1KHtDyuD8SPe69oV7VyK6WY=
|
||||||
|
go.elastic.co/apm/module/apmzap v1.13.1 h1:Soa4vNYYabPvOW1vm1A00C0UcEmfEzcx3YBjAgf5ue4=
|
||||||
|
go.elastic.co/apm/module/apmzap v1.13.1/go.mod h1:Tu8/TwffpBoNGmI05VcL1Ye2AC8oXrlMKNaKD1TIQy0=
|
||||||
|
go.elastic.co/fastjson v1.1.0 h1:3MrGBWWVIxe/xvsbpghtkFoPciPhOCmjsR/HfwEeQR4=
|
||||||
|
go.elastic.co/fastjson v1.1.0/go.mod h1:boNGISWMjQsUPy/t6yqt2/1Wx4YNPSe+mZjlyw9vKKI=
|
||||||
|
go.mongodb.org/mongo-driver v1.7.1/go.mod h1:Q4oFMbo1+MSNqICAdYMlC/zSTrwCogR4R8NzkI+yfU8=
|
||||||
|
go.mongodb.org/mongo-driver v1.7.4 h1:sllcioag8Mec0LYkftYWq+cKNPIR4Kqq3iv9ZXY0g/E=
|
||||||
|
go.mongodb.org/mongo-driver v1.7.4/go.mod h1:NqaYOwnXWr5Pm7AOpO5QFxKJ503nbMse/R79oO62zWg=
|
||||||
|
go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
|
||||||
|
go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw=
|
||||||
|
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
|
||||||
|
go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A=
|
||||||
|
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
|
||||||
|
go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4=
|
||||||
|
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
|
||||||
|
go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
|
||||||
|
go.uber.org/zap v1.18.1 h1:CSUJ2mjFszzEWt4CdKISEuChVIXGBn3lAPwkRGyVrc4=
|
||||||
|
go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
|
||||||
|
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
||||||
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
|
golang.org/x/crypto v0.0.0-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE=
|
||||||
|
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
|
golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073 h1:xMPOj6Pz6UipU1wXLkrtqpHbR0AVFnyPEQq/wRWz9lM=
|
||||||
|
golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
|
golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
||||||
|
golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5 h1:2M3HP5CCK1Si9FQhwnzYhXdG6DXeebvUHFpre8QvbyI=
|
||||||
|
golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
|
||||||
|
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
|
||||||
|
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
|
golang.org/x/mod v0.3.0 h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4=
|
||||||
|
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
|
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
|
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
|
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
|
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
|
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
|
golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
|
golang.org/x/sync v0.0.0-20190412183630-56d357773e84/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
|
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
|
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e h1:vcxGaoTs7kV8m5Np9uUNQin4BrLOthgV7252N8V+FwY=
|
||||||
|
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
|
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
|
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
|
golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20190419153524-e8e3143a4f4a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20190531175056-4c3a928424d2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20191025021431-6c3a3bfe00ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e h1:9vRrk9YW2BTzLP0VCB9ZDjU4cPqkg+IDWL7XgxA1yxQ=
|
||||||
|
golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
|
golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||||
|
golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
|
||||||
|
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
||||||
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
|
golang.org/x/tools v0.0.0-20190329151228-23e29df326fe/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
|
golang.org/x/tools v0.0.0-20190416151739-9c9e1878f421/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
|
golang.org/x/tools v0.0.0-20190420181800-aa740d480789/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
|
golang.org/x/tools v0.0.0-20190531172133-b3315ee88b7d/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
|
golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
|
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
|
golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
||||||
|
golang.org/x/tools v0.0.0-20200509030707-2212a7e161a5 h1:MeC2gMlMdkd67dn17MEby3rGXRxZtWeiRXOnISfTQ74=
|
||||||
|
golang.org/x/tools v0.0.0-20200509030707-2212a7e161a5/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||||
|
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
|
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
|
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
|
||||||
|
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
|
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
|
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
|
||||||
|
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
|
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
|
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
|
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
|
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
|
howett.net/plist v0.0.0-20181124034731-591f970eefbb h1:jhnBjNi9UFpfpl8YZhA9CrOqpnJdvzuiHsl/dnxl11M=
|
||||||
|
howett.net/plist v0.0.0-20181124034731-591f970eefbb/go.mod h1:vMygbs4qMhSZSc4lCUl2OEE+rDiIIJAIdR4m7MiMcm0=
|
|
@ -0,0 +1,13 @@
|
||||||
mấy method này nên tạo 1 file db.go để đưa vào, bên hàm export chỉ cần call vào thôi mấy method này nên tạo 1 file db.go để đưa vào, bên hàm export chỉ cần call vào thôi
xử lý db gom về 1 chỗ đúng hơn
mấy method này nên tạo 1 file db.go để đưa vào, bên hàm export chỉ cần call vào thôi mấy method này nên tạo 1 file db.go để đưa vào, bên hàm export chỉ cần call vào thôi
xử lý db gom về 1 chỗ đúng hơn
done done
done done
|
|||||||
|
package usermngmt
|
||||||
mấy method này nên tạo 1 file db.go để đưa vào, bên hàm export chỉ cần call vào thôi mấy method này nên tạo 1 file db.go để đưa vào, bên hàm export chỉ cần call vào thôi
xử lý db gom về 1 chỗ đúng hơn
done done
|
|||||||
|
|
||||||
mấy method này nên tạo 1 file db.go để đưa vào, bên hàm export chỉ cần call vào thôi mấy method này nên tạo 1 file db.go để đưa vào, bên hàm export chỉ cần call vào thôi
xử lý db gom về 1 chỗ đúng hơn
done done
|
|||||||
|
import "golang.org/x/crypto/bcrypt"
|
||||||
mấy method này nên tạo 1 file db.go để đưa vào, bên hàm export chỉ cần call vào thôi mấy method này nên tạo 1 file db.go để đưa vào, bên hàm export chỉ cần call vào thôi
xử lý db gom về 1 chỗ đúng hơn
done done
|
|||||||
|
|
||||||
mấy method này nên tạo 1 file db.go để đưa vào, bên hàm export chỉ cần call vào thôi mấy method này nên tạo 1 file db.go để đưa vào, bên hàm export chỉ cần call vào thôi
xử lý db gom về 1 chỗ đúng hơn
done done
|
|||||||
|
func hashPassword(password string) string {
|
||||||
mấy method này nên tạo 1 file db.go để đưa vào, bên hàm export chỉ cần call vào thôi mấy method này nên tạo 1 file db.go để đưa vào, bên hàm export chỉ cần call vào thôi
xử lý db gom về 1 chỗ đúng hơn
done done
|
|||||||
|
bytes, _ := bcrypt.GenerateFromPassword([]byte(password), passwordHashingCost)
|
||||||
mấy method này nên tạo 1 file db.go để đưa vào, bên hàm export chỉ cần call vào thôi mấy method này nên tạo 1 file db.go để đưa vào, bên hàm export chỉ cần call vào thôi
xử lý db gom về 1 chỗ đúng hơn
done done
|
|||||||
|
return string(bytes)
|
||||||
mấy method này nên tạo 1 file db.go để đưa vào, bên hàm export chỉ cần call vào thôi mấy method này nên tạo 1 file db.go để đưa vào, bên hàm export chỉ cần call vào thôi
xử lý db gom về 1 chỗ đúng hơn
done done
|
|||||||
|
}
|
||||||
mấy method này nên tạo 1 file db.go để đưa vào, bên hàm export chỉ cần call vào thôi mấy method này nên tạo 1 file db.go để đưa vào, bên hàm export chỉ cần call vào thôi
xử lý db gom về 1 chỗ đúng hơn
done done
|
|||||||
|
|
||||||
mấy method này nên tạo 1 file db.go để đưa vào, bên hàm export chỉ cần call vào thôi mấy method này nên tạo 1 file db.go để đưa vào, bên hàm export chỉ cần call vào thôi
xử lý db gom về 1 chỗ đúng hơn
done done
|
|||||||
|
func checkPasswordHash(password, hash string) bool {
|
||||||
mấy method này nên tạo 1 file db.go để đưa vào, bên hàm export chỉ cần call vào thôi mấy method này nên tạo 1 file db.go để đưa vào, bên hàm export chỉ cần call vào thôi
xử lý db gom về 1 chỗ đúng hơn
done done
|
|||||||
|
err := bcrypt.CompareHashAndPassword([]byte(hash), []byte(password))
|
||||||
mấy method này nên tạo 1 file db.go để đưa vào, bên hàm export chỉ cần call vào thôi mấy method này nên tạo 1 file db.go để đưa vào, bên hàm export chỉ cần call vào thôi
xử lý db gom về 1 chỗ đúng hơn
done done
|
|||||||
|
return err == nil
|
||||||
mấy method này nên tạo 1 file db.go để đưa vào, bên hàm export chỉ cần call vào thôi mấy method này nên tạo 1 file db.go để đưa vào, bên hàm export chỉ cần call vào thôi
xử lý db gom về 1 chỗ đúng hơn
done done
|
|||||||
|
}
|
||||||
mấy method này nên tạo 1 file db.go để đưa vào, bên hàm export chỉ cần call vào thôi mấy method này nên tạo 1 file db.go để đưa vào, bên hàm export chỉ cần call vào thôi
xử lý db gom về 1 chỗ đúng hơn
done done
|
|
@ -0,0 +1,31 @@
|
||||||
HashedPassword HashedPassword
HashedPassword HashedPassword
done done
done done
password không trả về ở json, để password không trả về ở json, để `-`
password không trả về ở json, để password không trả về ở json, để `-`
`bson:"roleId"`
`bson:"roleId"`
done done
done done
done done
done done
|
|||||||
|
package usermngmt
|
||||||
HashedPassword HashedPassword
done done
password không trả về ở json, để password không trả về ở json, để `-`
`bson:"roleId"`
done done
done done
|
|||||||
|
|
||||||
HashedPassword HashedPassword
done done
password không trả về ở json, để password không trả về ở json, để `-`
`bson:"roleId"`
done done
done done
|
|||||||
|
import (
|
||||||
HashedPassword HashedPassword
done done
password không trả về ở json, để password không trả về ở json, để `-`
`bson:"roleId"`
done done
done done
|
|||||||
|
"time"
|
||||||
HashedPassword HashedPassword
done done
password không trả về ở json, để password không trả về ở json, để `-`
`bson:"roleId"`
done done
done done
|
|||||||
|
|
||||||
HashedPassword HashedPassword
done done
password không trả về ở json, để password không trả về ở json, để `-`
`bson:"roleId"`
done done
done done
|
|||||||
|
"go.mongodb.org/mongo-driver/bson/primitive"
|
||||||
HashedPassword HashedPassword
done done
password không trả về ở json, để password không trả về ở json, để `-`
`bson:"roleId"`
done done
done done
|
|||||||
|
)
|
||||||
HashedPassword HashedPassword
done done
password không trả về ở json, để password không trả về ở json, để `-`
`bson:"roleId"`
done done
done done
|
|||||||
|
|
||||||
HashedPassword HashedPassword
done done
password không trả về ở json, để password không trả về ở json, để `-`
`bson:"roleId"`
done done
done done
|
|||||||
|
// User ...
|
||||||
HashedPassword HashedPassword
done done
password không trả về ở json, để password không trả về ở json, để `-`
`bson:"roleId"`
done done
done done
|
|||||||
|
type User struct {
|
||||||
HashedPassword HashedPassword
done done
password không trả về ở json, để password không trả về ở json, để `-`
`bson:"roleId"`
done done
done done
|
|||||||
|
ID primitive.ObjectID `bson:"_id" json:"_id"`
|
||||||
HashedPassword HashedPassword
done done
password không trả về ở json, để password không trả về ở json, để `-`
`bson:"roleId"`
done done
done done
|
|||||||
|
Name string `bson:"name" json:"name"`
|
||||||
HashedPassword HashedPassword
done done
password không trả về ở json, để password không trả về ở json, để `-`
`bson:"roleId"`
done done
done done
|
|||||||
|
Phone string `bson:"phone" json:"phone"` // unique
|
||||||
HashedPassword HashedPassword
done done
password không trả về ở json, để password không trả về ở json, để `-`
`bson:"roleId"`
done done
done done
|
|||||||
|
Email string `bson:"email" json:"email"` // unique
|
||||||
HashedPassword HashedPassword
done done
password không trả về ở json, để password không trả về ở json, để `-`
`bson:"roleId"`
done done
done done
|
|||||||
|
HashedPassword string `bson:"hashedPassword" json:"-"`
|
||||||
HashedPassword HashedPassword
done done
password không trả về ở json, để password không trả về ở json, để `-`
`bson:"roleId"`
done done
done done
|
|||||||
|
Status string `bson:"status" json:"status"`
|
||||||
HashedPassword HashedPassword
done done
password không trả về ở json, để password không trả về ở json, để `-`
`bson:"roleId"`
done done
done done
|
|||||||
|
RoleID primitive.ObjectID `bson:"roleId" json:"roleId"`
|
||||||
HashedPassword HashedPassword
done done
password không trả về ở json, để password không trả về ở json, để `-`
`bson:"roleId"`
done done
done done
|
|||||||
|
Other string `bson:"other" json:"other"`
|
||||||
HashedPassword HashedPassword
done done
password không trả về ở json, để password không trả về ở json, để `-`
`bson:"roleId"`
done done
done done
|
|||||||
|
CreatedAt time.Time `bson:"createdAt" json:"createdAt"`
|
||||||
HashedPassword HashedPassword
done done
password không trả về ở json, để password không trả về ở json, để `-`
`bson:"roleId"`
done done
done done
|
|||||||
|
UpdatedAt time.Time `bson:"updatedAt" json:"updatedAt"`
|
||||||
HashedPassword HashedPassword
done done
password không trả về ở json, để password không trả về ở json, để `-`
`bson:"roleId"`
done done
done done
|
|||||||
|
}
|
||||||
HashedPassword HashedPassword
done done
password không trả về ở json, để password không trả về ở json, để `-`
`bson:"roleId"`
done done
done done
|
|||||||
|
|
||||||
HashedPassword HashedPassword
done done
password không trả về ở json, để password không trả về ở json, để `-`
`bson:"roleId"`
done done
done done
|
|||||||
|
// Role ...
|
||||||
HashedPassword HashedPassword
done done
password không trả về ở json, để password không trả về ở json, để `-`
`bson:"roleId"`
done done
done done
|
|||||||
|
type Role struct {
|
||||||
HashedPassword HashedPassword
done done
password không trả về ở json, để password không trả về ở json, để `-`
`bson:"roleId"`
done done
done done
|
|||||||
|
ID primitive.ObjectID `bson:"_id" json:"_id"`
|
||||||
HashedPassword HashedPassword
done done
password không trả về ở json, để password không trả về ở json, để `-`
`bson:"roleId"`
done done
done done
|
|||||||
|
Name string `bson:"name" json:"name"`
|
||||||
HashedPassword HashedPassword
done done
password không trả về ở json, để password không trả về ở json, để `-`
`bson:"roleId"`
done done
done done
|
|||||||
|
Code string `bson:"code" json:"code"`
|
||||||
HashedPassword HashedPassword
done done
password không trả về ở json, để password không trả về ở json, để `-`
`bson:"roleId"`
done done
done done
|
|||||||
|
IsAdmin bool `bson:"isAdmin" json:"isAdmin"`
|
||||||
HashedPassword HashedPassword
done done
password không trả về ở json, để password không trả về ở json, để `-`
`bson:"roleId"`
done done
done done
|
|||||||
|
CreatedAt time.Time `bson:"createdAt" json:"createdAt"`
|
||||||
HashedPassword HashedPassword
done done
password không trả về ở json, để password không trả về ở json, để `-`
`bson:"roleId"`
done done
done done
|
|||||||
|
UpdatedAt time.Time `bson:"updatedAt" json:"updatedAt"`
|
||||||
HashedPassword HashedPassword
done done
password không trả về ở json, để password không trả về ở json, để `-`
`bson:"roleId"`
done done
done done
|
|||||||
|
}
|
||||||
HashedPassword HashedPassword
done done
password không trả về ở json, để password không trả về ở json, để `-`
`bson:"roleId"`
done done
done done
|
|
@ -0,0 +1,20 @@
|
||||||
|
package usermngmt
|
||||||
|
|
||||||
|
import "time"
|
||||||
|
|
||||||
|
//
|
||||||
|
// NOTE: due to unique timezone in server's code, all using time will be convert to HCM timezone (UTC +7)
|
||||||
|
// All functions generate time, must be call util functions here
|
||||||
|
// WARNING: don't accept call time.Now() directly
|
||||||
|
//
|
||||||
|
|
||||||
|
// getHCMLocation ...
|
||||||
|
func getHCMLocation() *time.Location {
|
||||||
|
l, _ := time.LoadLocation(timezoneHCM)
|
||||||
|
return l
|
||||||
|
}
|
||||||
|
|
||||||
|
// now ...
|
||||||
|
func now() time.Time {
|
||||||
|
return time.Now().In(getHCMLocation())
|
||||||
|
}
|
|
@ -0,0 +1,68 @@
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
done done
|
|||||||
|
package usermngmt
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
import (
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
"errors"
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
"fmt"
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
"github.com/Selly-Modules/mongodb"
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
"go.mongodb.org/mongo-driver/mongo"
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
)
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
// MongoDBConfig ...
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
type MongoDBConfig struct {
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
Host, User, Password, DBName, Mechanism, Source string
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
}
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
// Config ...
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
type Config struct {
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
// MongoDB config, for save documents
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
MongoDB MongoDBConfig
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
// Table prefix, each service has its own prefix
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
TablePrefix string
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
}
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
// Service ...
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
type Service struct {
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
Config
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
DB *mongo.Database
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
}
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
var s *Service
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
// Init ...
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
func Init(config Config) (*Service, error) {
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
if config.MongoDB.Host == "" {
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
return nil, errors.New("please provide all necessary information for init user")
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
}
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
// If prefixTable is empty then it is usermngmt
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
if config.TablePrefix == "" {
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
config.TablePrefix = tablePrefixDefault
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
}
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
// Connect MongoDB
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
db, err := mongodb.Connect(
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
config.MongoDB.Host,
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
config.MongoDB.User,
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
config.MongoDB.Password,
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
config.MongoDB.DBName,
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
config.MongoDB.Mechanism,
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
config.MongoDB.Source,
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
)
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
if err != nil {
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
fmt.Println("Cannot init module User MANAGEMENT", err)
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
return nil, err
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
}
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
s = &Service{
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
Config: config,
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
DB: db,
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
}
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
return s, nil
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
}
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
// GetInstance ...
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
func GetInstance() *Service {
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
return s
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|||||||
|
}
|
||||||
TablePrefix không require, nếu không có thì để default là TablePrefix không require, nếu không có thì để default là `usermngmt`
done done
chỗ này chưa thấy check default
bên func get collection không cần check gì nữa chỗ này chưa thấy check default
```go
if config.TablePrefix == "" {
config.TablePrefix = ... // set trong config, default `usermngmt `
}
```
bên func get collection không cần check gì nữa
done done
|
|
@ -0,0 +1,75 @@
|
||||||
check plain password check plain password
check plain password check plain password
done done
done done
|
|||||||
|
package usermngmt
|
||||||
check plain password check plain password
done done
|
|||||||
|
|
||||||
check plain password check plain password
done done
|
|||||||
|
import (
|
||||||
check plain password check plain password
done done
|
|||||||
|
"context"
|
||||||
check plain password check plain password
done done
|
|||||||
|
"errors"
|
||||||
check plain password check plain password
done done
|
|||||||
|
|
||||||
check plain password check plain password
done done
|
|||||||
|
"github.com/Selly-Modules/logger"
|
||||||
check plain password check plain password
done done
|
|||||||
|
"github.com/Selly-Modules/mongodb"
|
||||||
check plain password check plain password
done done
|
|||||||
|
)
|
||||||
check plain password check plain password
done done
|
|||||||
|
|
||||||
check plain password check plain password
done done
|
|||||||
|
func (co CreateOptions) validate(ctx context.Context) error {
|
||||||
check plain password check plain password
done done
|
|||||||
|
// Name
|
||||||
check plain password check plain password
done done
|
|||||||
|
if co.Name == "" {
|
||||||
check plain password check plain password
done done
|
|||||||
|
logger.Error("usermngmt - Create: no Name data", logger.LogData{
|
||||||
check plain password check plain password
done done
|
|||||||
|
"payload": co,
|
||||||
check plain password check plain password
done done
|
|||||||
|
})
|
||||||
check plain password check plain password
done done
|
|||||||
|
return errors.New("no name data")
|
||||||
check plain password check plain password
done done
|
|||||||
|
}
|
||||||
check plain password check plain password
done done
|
|||||||
|
|
||||||
check plain password check plain password
done done
|
|||||||
|
// Phone
|
||||||
check plain password check plain password
done done
|
|||||||
|
if co.Phone == "" {
|
||||||
check plain password check plain password
done done
|
|||||||
|
logger.Error("usermngmt - Create: no phone data", logger.LogData{
|
||||||
check plain password check plain password
done done
|
|||||||
|
"payload": co,
|
||||||
check plain password check plain password
done done
|
|||||||
|
})
|
||||||
check plain password check plain password
done done
|
|||||||
|
return errors.New("no phone data")
|
||||||
check plain password check plain password
done done
|
|||||||
|
}
|
||||||
check plain password check plain password
done done
|
|||||||
|
|
||||||
check plain password check plain password
done done
|
|||||||
|
// Email
|
||||||
check plain password check plain password
done done
|
|||||||
|
if co.Email == "" {
|
||||||
check plain password check plain password
done done
|
|||||||
|
logger.Error("usermngmt - Create: no email data", logger.LogData{
|
||||||
check plain password check plain password
done done
|
|||||||
|
"payload": co,
|
||||||
check plain password check plain password
done done
|
|||||||
|
})
|
||||||
check plain password check plain password
done done
|
|||||||
|
return errors.New("no email data")
|
||||||
check plain password check plain password
done done
|
|||||||
|
}
|
||||||
check plain password check plain password
done done
|
|||||||
|
|
||||||
check plain password check plain password
done done
|
|||||||
|
// Password
|
||||||
check plain password check plain password
done done
|
|||||||
|
if co.Password == "" {
|
||||||
check plain password check plain password
done done
|
|||||||
|
logger.Error("usermngmt - Create: no password data", logger.LogData{
|
||||||
check plain password check plain password
done done
|
|||||||
|
"payload": co,
|
||||||
check plain password check plain password
done done
|
|||||||
|
})
|
||||||
check plain password check plain password
done done
|
|||||||
|
return errors.New("no password data")
|
||||||
check plain password check plain password
done done
|
|||||||
|
}
|
||||||
check plain password check plain password
done done
|
|||||||
|
|
||||||
check plain password check plain password
done done
|
|||||||
|
// Status
|
||||||
check plain password check plain password
done done
|
|||||||
|
if co.Status == "" {
|
||||||
check plain password check plain password
done done
|
|||||||
|
logger.Error("usermngmt - Create: no status data", logger.LogData{
|
||||||
check plain password check plain password
done done
|
|||||||
|
"payload": co,
|
||||||
check plain password check plain password
done done
|
|||||||
|
})
|
||||||
check plain password check plain password
done done
|
|||||||
|
return errors.New("no status data")
|
||||||
check plain password check plain password
done done
|
|||||||
|
}
|
||||||
check plain password check plain password
done done
|
|||||||
|
|
||||||
check plain password check plain password
done done
|
|||||||
|
// RoleID
|
||||||
check plain password check plain password
done done
|
|||||||
|
if co.RoleID == "" {
|
||||||
check plain password check plain password
done done
|
|||||||
|
logger.Error("usermngmt - Create: no roleID data", logger.LogData{
|
||||||
check plain password check plain password
done done
|
|||||||
|
"payload": co,
|
||||||
check plain password check plain password
done done
|
|||||||
|
})
|
||||||
check plain password check plain password
done done
|
|||||||
|
return errors.New("no role id data")
|
||||||
check plain password check plain password
done done
|
|||||||
|
}
|
||||||
check plain password check plain password
done done
|
|||||||
|
|
||||||
check plain password check plain password
done done
|
|||||||
|
// Find roleID exists or not
|
||||||
check plain password check plain password
done done
|
|||||||
|
roleID, isValid := mongodb.NewIDFromString(co.RoleID)
|
||||||
check plain password check plain password
done done
|
|||||||
|
if !isValid {
|
||||||
check plain password check plain password
done done
|
|||||||
|
return errors.New("invalid role id data")
|
||||||
check plain password check plain password
done done
|
|||||||
|
}
|
||||||
check plain password check plain password
done done
|
|||||||
|
if !s.isRoleIDExisted(ctx, roleID) {
|
||||||
check plain password check plain password
done done
|
|||||||
|
return errors.New("role id does not exist")
|
||||||
check plain password check plain password
done done
|
|||||||
|
}
|
||||||
check plain password check plain password
done done
|
|||||||
|
|
||||||
check plain password check plain password
done done
|
|||||||
|
// Find phone number,email exists or not
|
||||||
check plain password check plain password
done done
|
|||||||
|
if s.isPhoneNumberOrEmailExisted(ctx, co.Phone, co.Email) {
|
||||||
check plain password check plain password
done done
|
|||||||
|
return errors.New("phone number or email already existed")
|
||||||
check plain password check plain password
done done
|
|||||||
|
}
|
||||||
check plain password check plain password
done done
|
|||||||
|
|
||||||
check plain password check plain password
done done
|
|||||||
|
return nil
|
||||||
check plain password check plain password
done done
|
|||||||
|
}
|
||||||
check plain password check plain password
done done
|
boolean thì:
is
has
trên sửa lại
isNameOrPhoneExisted
boolean thì:
is
has
trên sửa lại
isNameOrPhoneExisted
have name or phone existed -> phone number or email already existed
have name or phone existed -> phone number or email already existed
thiếu check roleId trong db
thiếu check roleId trong db
done
done
done
done
done
done
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
password client truyền vào là plain text, module này mới convert qua hash, đặt là hashedPassword
isRoleIDAlreadyExisted -> isRoleIDExisted
isRoleIDAlreadyExisted -> isRoleIDExisted
roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
roleID does not exist -> role id does not exist
lỗi là ngữ cảnh cho user đọc, nên viết clear tí
func này với func isRoleIDExisted nên đưa vô func
payload.validate()
, gom tất cả validate trước khi xử lý về 1 chỗfunc này với func isRoleIDExisted nên đưa vô func
payload.validate()
, gom tất cả validate trước khi xử lý về 1 chỗbỏ dấu space sau Create
bỏ dấu space sau Create
password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
password do module này hash, xem link này:
https://gowebexamples.com/password-hashing/
done
done
done
done
done
done
done
done
done
done
done
done
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
đoạn này move qua db.go luôn, phân tách ra để gọn hàm, và đúng file
nên là
string
, nếu client không dùng mongodb thì phải cài thêm thư việnnote: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
nên là
string
, nếu client không dùng mongodb thì phải cài thêm thư việnnote: xử lý làm sao chỉ dùng type của go và của module, client chỉ cần cài 1 module này là sử dụng được
done
done
done
done