60 lines
1.5 KiB
Go
60 lines
1.5 KiB
Go
|
/*
|
||
|
* @Author: LinkLeong link@icewhale.org
|
||
|
* @Date: 2022-07-26 18:13:22
|
||
|
* @LastEditors: LinkLeong
|
||
|
* @LastEditTime: 2022-08-04 20:10:31
|
||
|
* @FilePath: /CasaOS/service/connections.go
|
||
|
* @Description:
|
||
|
* @Website: https://www.casaos.io
|
||
|
* Copyright (c) 2022 by icewhale, All Rights Reserved.
|
||
|
*/
|
||
|
package service
|
||
|
|
||
|
import (
|
||
|
"github.com/IceWhaleTech/CasaOS/service/model"
|
||
|
model2 "github.com/IceWhaleTech/CasaOS/service/model"
|
||
|
"gorm.io/gorm"
|
||
|
)
|
||
|
|
||
|
type PeerService interface {
|
||
|
GetPeerByUserAgent(ua string) (m model2.PeerDriveDBModel)
|
||
|
GetPeerByID(id string) (m model2.PeerDriveDBModel)
|
||
|
GetPeers() (peers []model2.PeerDriveDBModel)
|
||
|
CreatePeer(m *model2.PeerDriveDBModel)
|
||
|
DeletePeer(id string)
|
||
|
GetPeerByName(name string) (m model2.PeerDriveDBModel)
|
||
|
}
|
||
|
|
||
|
type peerStruct struct {
|
||
|
db *gorm.DB
|
||
|
}
|
||
|
|
||
|
func (s *peerStruct) GetPeerByName(name string) (m model2.PeerDriveDBModel) {
|
||
|
s.db.Where("display_name = ?", name).First(&m)
|
||
|
return
|
||
|
}
|
||
|
func (s *peerStruct) GetPeerByUserAgent(ua string) (m model2.PeerDriveDBModel) {
|
||
|
s.db.Where("user_agent = ?", ua).First(&m)
|
||
|
return
|
||
|
}
|
||
|
func (s *peerStruct) GetPeerByID(id string) (m model2.PeerDriveDBModel) {
|
||
|
s.db.Where("id = ?", id).First(&m)
|
||
|
return
|
||
|
}
|
||
|
func (s *peerStruct) GetPeers() (peers []model2.PeerDriveDBModel) {
|
||
|
s.db.Order("updated desc").Find(&peers)
|
||
|
return
|
||
|
}
|
||
|
func (s *peerStruct) CreatePeer(m *model2.PeerDriveDBModel) {
|
||
|
|
||
|
s.db.Create(m)
|
||
|
}
|
||
|
|
||
|
func (s *peerStruct) DeletePeer(id string) {
|
||
|
s.db.Where("id= ?", id).Delete(&model.PeerDriveDBModel{})
|
||
|
}
|
||
|
|
||
|
func NewPeerService(db *gorm.DB) PeerService {
|
||
|
return &peerStruct{db: db}
|
||
|
}
|