Skip to content

Commit 9d5cf91

Browse files
committed
[users] introduce users package
1 parent 980c8a5 commit 9d5cf91

File tree

20 files changed

+150
-58
lines changed

20 files changed

+150
-58
lines changed

internal/sms-gateway/handlers/devices/3rdparty.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ import (
77
"github.com/android-sms-gateway/server/internal/sms-gateway/handlers/base"
88
"github.com/android-sms-gateway/server/internal/sms-gateway/handlers/converters"
99
"github.com/android-sms-gateway/server/internal/sms-gateway/handlers/middlewares/userauth"
10-
"github.com/android-sms-gateway/server/internal/sms-gateway/models"
1110
"github.com/android-sms-gateway/server/internal/sms-gateway/modules/devices"
11+
"github.com/android-sms-gateway/server/internal/sms-gateway/users"
1212
"github.com/capcom6/go-helpers/slices"
1313
"github.com/gofiber/fiber/v2"
1414
"go.uber.org/fx"
@@ -41,7 +41,7 @@ type ThirdPartyController struct {
4141
// @Router /3rdparty/v1/devices [get]
4242
//
4343
// List devices
44-
func (h *ThirdPartyController) get(user models.User, c *fiber.Ctx) error {
44+
func (h *ThirdPartyController) get(user users.User, c *fiber.Ctx) error {
4545
devices, err := h.devicesSvc.Select(user.ID)
4646
if err != nil {
4747
return fmt.Errorf("can't select devices: %w", err)
@@ -66,7 +66,7 @@ func (h *ThirdPartyController) get(user models.User, c *fiber.Ctx) error {
6666
// @Router /3rdparty/v1/devices/{id} [delete]
6767
//
6868
// Remove device
69-
func (h *ThirdPartyController) remove(user models.User, c *fiber.Ctx) error {
69+
func (h *ThirdPartyController) remove(user users.User, c *fiber.Ctx) error {
7070
id := c.Params("id")
7171

7272
err := h.devicesSvc.Remove(user.ID, devices.WithID(id))

internal/sms-gateway/handlers/logs/3rdparty.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package logs
33
import (
44
"github.com/android-sms-gateway/server/internal/sms-gateway/handlers/base"
55
"github.com/android-sms-gateway/server/internal/sms-gateway/handlers/middlewares/userauth"
6-
"github.com/android-sms-gateway/server/internal/sms-gateway/models"
6+
"github.com/android-sms-gateway/server/internal/sms-gateway/users"
77
"github.com/go-playground/validator/v10"
88
"github.com/gofiber/fiber/v2"
99
"go.uber.org/fx"
@@ -35,7 +35,7 @@ type ThirdPartyController struct {
3535
// @Router /3rdparty/v1/logs [get]
3636
//
3737
// List webhooks
38-
func (h *ThirdPartyController) get(user models.User, c *fiber.Ctx) error {
38+
func (h *ThirdPartyController) get(user users.User, c *fiber.Ctx) error {
3939
return fiber.NewError(fiber.StatusNotImplemented, "For privacy reasons, device's logs are not accessible through Cloud server")
4040
}
4141

internal/sms-gateway/handlers/messages/3rdparty.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import (
1313
"github.com/android-sms-gateway/server/internal/sms-gateway/models"
1414
"github.com/android-sms-gateway/server/internal/sms-gateway/modules/devices"
1515
"github.com/android-sms-gateway/server/internal/sms-gateway/modules/messages"
16+
"github.com/android-sms-gateway/server/internal/sms-gateway/users"
1617
"github.com/capcom6/go-helpers/slices"
1718
"github.com/go-playground/validator/v10"
1819
"github.com/gofiber/fiber/v2"
@@ -59,7 +60,7 @@ type ThirdPartyController struct {
5960
// @Router /3rdparty/v1/messages [post]
6061
//
6162
// Enqueue message
62-
func (h *ThirdPartyController) post(user models.User, c *fiber.Ctx) error {
63+
func (h *ThirdPartyController) post(user users.User, c *fiber.Ctx) error {
6364
var params thirdPartyPostQueryParams
6465
if err := h.QueryParserValidator(c, &params); err != nil {
6566
return err
@@ -189,7 +190,7 @@ func (h *ThirdPartyController) post(user models.User, c *fiber.Ctx) error {
189190
// @Router /3rdparty/v1/messages [get]
190191
//
191192
// Get message history
192-
func (h *ThirdPartyController) list(user models.User, c *fiber.Ctx) error {
193+
func (h *ThirdPartyController) list(user users.User, c *fiber.Ctx) error {
193194
params := thirdPartyGetQueryParams{}
194195
if err := h.QueryParserValidator(c, &params); err != nil {
195196
return err
@@ -220,7 +221,7 @@ func (h *ThirdPartyController) list(user models.User, c *fiber.Ctx) error {
220221
// @Router /3rdparty/v1/messages/{id} [get]
221222
//
222223
// Get message state
223-
func (h *ThirdPartyController) get(user models.User, c *fiber.Ctx) error {
224+
func (h *ThirdPartyController) get(user users.User, c *fiber.Ctx) error {
224225
id := c.Params("id")
225226

226227
state, err := h.messagesSvc.GetState(user, id)
@@ -249,7 +250,7 @@ func (h *ThirdPartyController) get(user models.User, c *fiber.Ctx) error {
249250
// @Router /3rdparty/v1/messages/inbox/export [post]
250251
//
251252
// Export inbox
252-
func (h *ThirdPartyController) postInboxExport(user models.User, c *fiber.Ctx) error {
253+
func (h *ThirdPartyController) postInboxExport(user users.User, c *fiber.Ctx) error {
253254
req := smsgateway.MessagesExportRequest{}
254255
if err := h.BodyParserValidator(c, &req); err != nil {
255256
return err

internal/sms-gateway/handlers/middlewares/userauth/userauth.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ import (
44
"encoding/base64"
55
"strings"
66

7-
"github.com/android-sms-gateway/server/internal/sms-gateway/models"
87
"github.com/android-sms-gateway/server/internal/sms-gateway/modules/auth"
8+
"github.com/android-sms-gateway/server/internal/sms-gateway/users"
99
"github.com/gofiber/fiber/v2"
1010
"github.com/gofiber/fiber/v2/utils"
1111
)
@@ -92,11 +92,11 @@ func HasUser(c *fiber.Ctx) bool {
9292

9393
// GetUser returns the user stored in the Locals under the key LocalsUser.
9494
// It is a convenience function that wraps the call to c.Locals(LocalsUser) and
95-
// casts the result to models.User.
95+
// casts the result to users.User.
9696
//
97-
// It panics if the value stored in Locals is not a models.User.
98-
func GetUser(c *fiber.Ctx) models.User {
99-
return c.Locals(localsUser).(models.User)
97+
// It panics if the value stored in Locals is not a users.User.
98+
func GetUser(c *fiber.Ctx) users.User {
99+
return c.Locals(localsUser).(users.User)
100100
}
101101

102102
// UserRequired is a middleware that ensures a user is present in the request's Locals.
@@ -118,7 +118,7 @@ func UserRequired() fiber.Handler {
118118
//
119119
// It is a convenience function that wraps the call to GetUser and calls the
120120
// handler with the user as the first argument.
121-
func WithUser(handler func(models.User, *fiber.Ctx) error) fiber.Handler {
121+
func WithUser(handler func(users.User, *fiber.Ctx) error) fiber.Handler {
122122
return func(c *fiber.Ctx) error {
123123
return handler(GetUser(c), c)
124124
}

internal/sms-gateway/handlers/mobile.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import (
1616
"github.com/android-sms-gateway/server/internal/sms-gateway/models"
1717
"github.com/android-sms-gateway/server/internal/sms-gateway/modules/auth"
1818
"github.com/android-sms-gateway/server/internal/sms-gateway/modules/devices"
19+
"github.com/android-sms-gateway/server/internal/sms-gateway/users"
1920
"github.com/capcom6/go-helpers/anys"
2021
"github.com/go-playground/validator/v10"
2122
"github.com/gofiber/fiber/v2"
@@ -100,7 +101,7 @@ func (h *mobileHandler) postDevice(c *fiber.Ctx) (err error) {
100101
}
101102

102103
var (
103-
user models.User
104+
user users.User
104105
login string
105106
password string
106107
)
@@ -175,7 +176,7 @@ func (h *mobileHandler) patchDevice(device models.Device, c *fiber.Ctx) error {
175176
// @Router /mobile/v1/user/code [get]
176177
//
177178
// Get user code
178-
func (h *mobileHandler) getUserCode(user models.User, c *fiber.Ctx) error {
179+
func (h *mobileHandler) getUserCode(user users.User, c *fiber.Ctx) error {
179180
code, err := h.authSvc.GenerateUserCode(user.ID)
180181
if err != nil {
181182
return err

internal/sms-gateway/handlers/settings/3rdparty.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ import (
66
"github.com/android-sms-gateway/client-go/smsgateway"
77
"github.com/android-sms-gateway/server/internal/sms-gateway/handlers/base"
88
"github.com/android-sms-gateway/server/internal/sms-gateway/handlers/middlewares/userauth"
9-
"github.com/android-sms-gateway/server/internal/sms-gateway/models"
109
"github.com/android-sms-gateway/server/internal/sms-gateway/modules/devices"
1110
"github.com/android-sms-gateway/server/internal/sms-gateway/modules/settings"
11+
"github.com/android-sms-gateway/server/internal/sms-gateway/users"
1212
"github.com/go-playground/validator/v10"
1313
"github.com/gofiber/fiber/v2"
1414
"go.uber.org/fx"
@@ -43,7 +43,7 @@ type ThirdPartyController struct {
4343
// @Router /3rdparty/v1/settings [get]
4444
//
4545
// Get settings
46-
func (h *ThirdPartyController) get(user models.User, c *fiber.Ctx) error {
46+
func (h *ThirdPartyController) get(user users.User, c *fiber.Ctx) error {
4747
settings, err := h.settingsSvc.GetSettings(user.ID, true)
4848
if err != nil {
4949
return fmt.Errorf("can't get settings: %w", err)
@@ -66,7 +66,7 @@ func (h *ThirdPartyController) get(user models.User, c *fiber.Ctx) error {
6666
// @Router /3rdparty/v1/settings [put]
6767
//
6868
// Update settings
69-
func (h *ThirdPartyController) put(user models.User, c *fiber.Ctx) error {
69+
func (h *ThirdPartyController) put(user users.User, c *fiber.Ctx) error {
7070
if err := h.BodyParserValidator(c, &smsgateway.DeviceSettings{}); err != nil {
7171
return fiber.NewError(fiber.StatusBadRequest, fmt.Sprintf("Invalid settings format: %v", err))
7272
}
@@ -100,7 +100,7 @@ func (h *ThirdPartyController) put(user models.User, c *fiber.Ctx) error {
100100
// @Router /3rdparty/v1/settings [patch]
101101
//
102102
// Partially update settings
103-
func (h *ThirdPartyController) patch(user models.User, c *fiber.Ctx) error {
103+
func (h *ThirdPartyController) patch(user users.User, c *fiber.Ctx) error {
104104
if err := h.BodyParserValidator(c, &smsgateway.DeviceSettings{}); err != nil {
105105
return fiber.NewError(fiber.StatusBadRequest, fmt.Sprintf("Invalid settings format: %v", err))
106106
}

internal/sms-gateway/handlers/thirdparty/auth.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import (
66
"github.com/android-sms-gateway/server/internal/sms-gateway/handlers/base"
77
"github.com/android-sms-gateway/server/internal/sms-gateway/handlers/middlewares/userauth"
88
"github.com/android-sms-gateway/server/internal/sms-gateway/jwt"
9-
"github.com/android-sms-gateway/server/internal/sms-gateway/models"
9+
"github.com/android-sms-gateway/server/internal/sms-gateway/users"
1010
"github.com/go-playground/validator/v10"
1111
"github.com/gofiber/fiber/v2"
1212
"go.uber.org/zap"
@@ -48,7 +48,7 @@ type tokenResponse struct {
4848
ExpiresAt time.Time `json:"expires_at"`
4949
}
5050

51-
func (h *AuthHandler) postToken(user models.User, c *fiber.Ctx) error {
51+
func (h *AuthHandler) postToken(user users.User, c *fiber.Ctx) error {
5252
req := new(tokenRequest)
5353
if err := h.BodyParserValidator(c, req); err != nil {
5454
return err
@@ -67,6 +67,6 @@ func (h *AuthHandler) postToken(user models.User, c *fiber.Ctx) error {
6767
})
6868
}
6969

70-
func (h *AuthHandler) deleteToken(user models.User, c *fiber.Ctx) error {
70+
func (h *AuthHandler) deleteToken(user users.User, c *fiber.Ctx) error {
7171
return fiber.ErrNotImplemented
7272
}

internal/sms-gateway/handlers/webhooks/3rdparty.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import (
66
"github.com/android-sms-gateway/client-go/smsgateway"
77
"github.com/android-sms-gateway/server/internal/sms-gateway/handlers/base"
88
"github.com/android-sms-gateway/server/internal/sms-gateway/handlers/middlewares/userauth"
9-
"github.com/android-sms-gateway/server/internal/sms-gateway/models"
109
"github.com/android-sms-gateway/server/internal/sms-gateway/modules/webhooks"
10+
"github.com/android-sms-gateway/server/internal/sms-gateway/users"
1111
"github.com/go-playground/validator/v10"
1212
"github.com/gofiber/fiber/v2"
1313
"go.uber.org/fx"
@@ -40,7 +40,7 @@ type ThirdPartyController struct {
4040
// @Router /3rdparty/v1/webhooks [get]
4141
//
4242
// List webhooks
43-
func (h *ThirdPartyController) get(user models.User, c *fiber.Ctx) error {
43+
func (h *ThirdPartyController) get(user users.User, c *fiber.Ctx) error {
4444
items, err := h.webhooksSvc.Select(user.ID)
4545
if err != nil {
4646
return fmt.Errorf("can't select webhooks: %w", err)
@@ -63,7 +63,7 @@ func (h *ThirdPartyController) get(user models.User, c *fiber.Ctx) error {
6363
// @Router /3rdparty/v1/webhooks [post]
6464
//
6565
// Register webhook
66-
func (h *ThirdPartyController) post(user models.User, c *fiber.Ctx) error {
66+
func (h *ThirdPartyController) post(user users.User, c *fiber.Ctx) error {
6767
dto := smsgateway.Webhook{}
6868

6969
if err := h.BodyParserValidator(c, &dto); err != nil {
@@ -93,7 +93,7 @@ func (h *ThirdPartyController) post(user models.User, c *fiber.Ctx) error {
9393
// @Router /3rdparty/v1/webhooks/{id} [delete]
9494
//
9595
// Delete webhook
96-
func (h *ThirdPartyController) delete(user models.User, c *fiber.Ctx) error {
96+
func (h *ThirdPartyController) delete(user users.User, c *fiber.Ctx) error {
9797
id := c.Params("id")
9898

9999
if err := h.webhooksSvc.Delete(user.ID, webhooks.WithExtID(id)); err != nil {

internal/sms-gateway/models/migration.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,5 @@ import (
1010
var migrations embed.FS
1111

1212
func Migrate(db *gorm.DB) error {
13-
return db.AutoMigrate(&User{}, &Device{})
13+
return db.AutoMigrate(&Device{})
1414
}

internal/sms-gateway/models/models.go

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,6 @@ type SoftDeletableModel struct {
1414
DeletedAt *time.Time `gorm:"<-:update"`
1515
}
1616

17-
type User struct {
18-
ID string `gorm:"primaryKey;type:varchar(32)"`
19-
PasswordHash string `gorm:"not null;type:varchar(72)"`
20-
Devices []Device `gorm:"-,foreignKey:UserID;constraint:OnDelete:CASCADE"`
21-
22-
SoftDeletableModel
23-
}
24-
2517
type Device struct {
2618
ID string `gorm:"primaryKey;type:char(21)"`
2719
Name *string `gorm:"type:varchar(128)"`

0 commit comments

Comments
 (0)