add allMethod
This commit is contained in:
parent
85c9692da0
commit
8fcb6cdb08
|
@ -11,14 +11,16 @@ import (
|
|||
|
||||
// CreateOptions ...
|
||||
type CreateOptions struct {
|
||||
DeviceID string
|
||||
UserID string
|
||||
UserAgent string
|
||||
AppVersion string
|
||||
IP string
|
||||
FCMToken string
|
||||
AuthToken string
|
||||
Language string
|
||||
DeviceID string
|
||||
UserID string
|
||||
UserAgent string
|
||||
AppVersion string
|
||||
IP string
|
||||
FCMToken string
|
||||
AuthToken string
|
||||
Language string
|
||||
Model string
|
||||
Manufacturer string
|
||||
}
|
||||
|
||||
// Create ...
|
||||
|
@ -71,6 +73,8 @@ func (payload CreateOptions) newDevice() (result Device, err error) {
|
|||
LastActivatedAt: timeNow,
|
||||
CreatedAt: timeNow,
|
||||
FCMToken: payload.FCMToken,
|
||||
Model: payload.Model,
|
||||
Manufacturer: payload.Manufacturer,
|
||||
}
|
||||
|
||||
// App version
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
package devicemngmt
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/Selly-Modules/mongodb"
|
||||
"go.mongodb.org/mongo-driver/bson"
|
||||
)
|
||||
|
||||
// FindAllDevicesByUserID ...
|
||||
func (s Service) FindAllDevicesByUserID(userID string) []ResponseDevice {
|
||||
var (
|
||||
ctx = context.Background()
|
||||
col = s.getDeviceCollection()
|
||||
docs = make([]Device, 0)
|
||||
result = make([]ResponseDevice, 0)
|
||||
cond = bson.M{
|
||||
"userID": mongodb.NewIDFromString(userID),
|
||||
}
|
||||
)
|
||||
|
||||
// Find
|
||||
cursor, err := col.Find(ctx, cond)
|
||||
if err != nil {
|
||||
return result
|
||||
}
|
||||
defer cursor.Close(ctx)
|
||||
cursor.All(ctx, &docs)
|
||||
|
||||
// Get response data
|
||||
for _, doc := range docs {
|
||||
result = append(result, ResponseDevice{
|
||||
ID: doc.ID,
|
||||
DeviceID: doc.DeviceID,
|
||||
IP: doc.IP,
|
||||
OS: ResponseOS{
|
||||
Name: doc.OSName,
|
||||
Version: doc.OSVersion,
|
||||
},
|
||||
AppVersion: doc.AppVersion,
|
||||
Language: doc.Language,
|
||||
IsMobile: doc.IsMobile,
|
||||
FCMToken: doc.FCMToken,
|
||||
Model: doc.Model,
|
||||
Manufacturer: doc.Manufacturer,
|
||||
LastActivatedAt: doc.LastActivatedAt,
|
||||
CreatedAt: doc.CreatedAt,
|
||||
})
|
||||
}
|
||||
|
||||
return result
|
||||
}
|
24
model.go
24
model.go
|
@ -20,5 +20,29 @@ type Device struct {
|
|||
UserID primitive.ObjectID `bson:"userID" json:"userId"`
|
||||
AuthToken string `bson:"authToken" json:"authToken"`
|
||||
FCMToken string `bson:"fcmToken" json:"fcmToken"`
|
||||
Model string `bson:"model,omitempty" json:"model,omitempty"`
|
||||
Manufacturer string `bson:"manufacturer,omitempty" json:"manufacturer,omitempty"`
|
||||
CreatedAt time.Time `bson:"createdAt" json:"createdAt"`
|
||||
}
|
||||
|
||||
// ResponseOS ...
|
||||
type ResponseOS struct {
|
||||
Name string `json:"name"`
|
||||
Version string `json:"version"`
|
||||
}
|
||||
|
||||
// ResponseDevice ...
|
||||
type ResponseDevice struct {
|
||||
ID primitive.ObjectID `json:"_id"`
|
||||
DeviceID string `json:"deviceId"`
|
||||
IP string `json:"ip"`
|
||||
OS ResponseOS `json:"os"`
|
||||
AppVersion string `json:"appVersion"`
|
||||
Language string `json:"language"`
|
||||
IsMobile bool `json:"isMobile"`
|
||||
FCMToken string `json:"fcmToken"`
|
||||
Model string `json:"model,omitempty"`
|
||||
Manufacturer string `json:"manufacturer,omitempty"`
|
||||
LastActivatedAt time.Time `json:"lastActivatedAt"`
|
||||
CreatedAt time.Time `json:"createdAt"`
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@ import (
|
|||
"github.com/Selly-Modules/logger"
|
||||
)
|
||||
|
||||
func (co CreateOptions) validate() error{
|
||||
func (co CreateOptions) validate() error {
|
||||
// DeviceID
|
||||
if co.DeviceID == "" {
|
||||
logger.Error("devicemngt - Create: no deviceID data", logger.LogData{
|
||||
|
@ -20,7 +20,7 @@ func (co CreateOptions) validate() error{
|
|||
logger.Error("devicemngt - Create: no userAgent data", logger.LogData{
|
||||
"payload": co,
|
||||
})
|
||||
return errors.New("no userAgent data")
|
||||
return errors.New("no userAgent data")
|
||||
}
|
||||
|
||||
// IP
|
||||
|
|
Loading…
Reference in New Issue