peer.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. /*
  2. * @Author: LinkLeong link@icewhale.org
  3. * @Date: 2022-07-26 18:13:22
  4. * @LastEditors: LinkLeong
  5. * @LastEditTime: 2022-08-04 20:10:31
  6. * @FilePath: /CasaOS/service/connections.go
  7. * @Description:
  8. * @Website: https://www.casaos.io
  9. * Copyright (c) 2022 by icewhale, All Rights Reserved.
  10. */
  11. package service
  12. import (
  13. "github.com/IceWhaleTech/CasaOS/service/model"
  14. model2 "github.com/IceWhaleTech/CasaOS/service/model"
  15. "gorm.io/gorm"
  16. )
  17. type PeerService interface {
  18. GetPeerByUserAgent(ua string) (m model2.PeerDriveDBModel)
  19. GetPeerByID(id string) (m model2.PeerDriveDBModel)
  20. GetPeers() (peers []model2.PeerDriveDBModel)
  21. CreatePeer(m *model2.PeerDriveDBModel)
  22. DeletePeer(id string)
  23. GetPeerByName(name string) (m model2.PeerDriveDBModel)
  24. }
  25. type peerStruct struct {
  26. db *gorm.DB
  27. }
  28. func (s *peerStruct) GetPeerByName(name string) (m model2.PeerDriveDBModel) {
  29. s.db.Where("display_name = ?", name).First(&m)
  30. return
  31. }
  32. func (s *peerStruct) GetPeerByUserAgent(ua string) (m model2.PeerDriveDBModel) {
  33. s.db.Where("user_agent = ?", ua).First(&m)
  34. return
  35. }
  36. func (s *peerStruct) GetPeerByID(id string) (m model2.PeerDriveDBModel) {
  37. s.db.Where("id = ?", id).First(&m)
  38. return
  39. }
  40. func (s *peerStruct) GetPeers() (peers []model2.PeerDriveDBModel) {
  41. s.db.Order("updated desc").Find(&peers)
  42. return
  43. }
  44. func (s *peerStruct) CreatePeer(m *model2.PeerDriveDBModel) {
  45. s.db.Create(m)
  46. }
  47. func (s *peerStruct) DeletePeer(id string) {
  48. s.db.Where("id= ?", id).Delete(&model.PeerDriveDBModel{})
  49. }
  50. func NewPeerService(db *gorm.DB) PeerService {
  51. return &peerStruct{db: db}
  52. }