Skip to content

Commit

Permalink
feat: only update device necessary fields
Browse files Browse the repository at this point in the history
  • Loading branch information
lanthora committed Dec 24, 2024
1 parent 8dd485a commit 7b2af94
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 4 deletions.
2 changes: 1 addition & 1 deletion candy/net.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ func flush() {
for _, ws := range n.ipWsMap {
if ws.dev.model.Online {
hasDeviceOnline = true
ws.dev.model.Save()
ws.dev.model.SaveRxTxOnline()
}
}
if hasDeviceOnline && !refreshedUsers.ContainsOne(n.model.UserID) {
Expand Down
6 changes: 3 additions & 3 deletions candy/websocket.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ func handleWebsocket(c *gin.Context) {

if ws.dev != nil && ws.dev.model.Online {
ws.dev.model.Online = false
ws.dev.model.Save()
ws.dev.model.SaveRxTxOnline()

net.ipWsMapMutex.Lock()
defer net.ipWsMapMutex.Unlock()
Expand Down Expand Up @@ -144,7 +144,7 @@ func (ws *candysocket) handlePingMessage(buffer string) error {
}

if ws.dev.model.Online {
ws.dev.model.Save()
ws.dev.model.SaveOsVersionHostname()
}

ws.writePong([]byte(buffer))
Expand Down Expand Up @@ -181,7 +181,7 @@ func (ws *candysocket) handleAuthMessage(buffer []byte) error {

if oldws, ok := ws.net.ipWsMap[message.IP]; ok {
oldws.dev.model.Online = false
oldws.dev.model.Save()
oldws.dev.model.SaveRxTxOnline()
oldws.writeCloseMessage("vmac conflict")
oldws.conn.Close()
}
Expand Down
18 changes: 18 additions & 0 deletions model/device.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,24 @@ func (d *Device) Save() {
}
}

func (d *Device) SaveRxTxOnline() {
db := storage.Get()
if d.ID == 0 {
db.Create(d)
} else {
db.Model(d).Select("rx", "tx", "online").Updates(d)
}
}

func (d *Device) SaveOsVersionHostname() {
db := storage.Get()
if d.ID == 0 {
db.Create(d)
} else {
db.Model(d).Select("os", "version", "hostname").Updates(d)
}
}

func (d *Device) Delete() {
db := storage.Get()
db.Delete(d)
Expand Down

0 comments on commit 7b2af94

Please sign in to comment.