peer.go 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package api
  2. import "github.com/lejianwen/rustdesk-api/v2/model"
  3. /*
  4. GroupPeerPayload
  5. https://github.com/rustdesk/rustdesk/blob/master/flutter/lib/common/hbbs/hbbs.dart#L64
  6. String id = '';
  7. Map<String, dynamic> info = {};
  8. int? status;
  9. String user = '';
  10. String user_name = '';
  11. String note = '';
  12. PeerPayload.fromJson(Map<String, dynamic> json)
  13. : id = json['id'] ?? '',
  14. info = (json['info'] is Map<String, dynamic>) ? json['info'] : {},
  15. status = json['status'],
  16. user = json['user'] ?? '',
  17. user_name = json['user_name'] ?? '',
  18. note = json['note'] ?? '';
  19. static Peer toPeer(GroupPeerPayload p) {
  20. return Peer.fromJson({
  21. "id": p.id,
  22. 'loginName': p.user_name,
  23. "username": p.info['username'] ?? '',
  24. "platform": _platform(p.info['os']),
  25. "hostname": p.info['device_name'],
  26. });
  27. }
  28. */
  29. type GroupPeerPayload struct {
  30. Id string `json:"id"`
  31. Info *PeerPayloadInfo `json:"info"`
  32. Status int `json:"status"`
  33. User string `json:"user"`
  34. UserName string `json:"user_name"`
  35. Note string `json:"note"`
  36. DeviceGroupName string `json:"device_group_name"`
  37. }
  38. type PeerPayloadInfo struct {
  39. DeviceName string `json:"device_name"`
  40. Os string `json:"os"`
  41. Username string `json:"username"`
  42. }
  43. func (gpp *GroupPeerPayload) FromAddressBook(a *model.AddressBook, username string) {
  44. gpp.Id = a.Id
  45. os := a.Platform
  46. if a.Platform == "Mac OS" {
  47. os = "MacOS"
  48. }
  49. gpp.Info = &PeerPayloadInfo{
  50. DeviceName: a.Hostname,
  51. Os: os,
  52. Username: a.Username,
  53. }
  54. gpp.UserName = username
  55. }
  56. func (gpp *GroupPeerPayload) FromPeer(p *model.Peer, username string) {
  57. gpp.Id = p.Id
  58. gpp.Info = &PeerPayloadInfo{
  59. DeviceName: p.Hostname,
  60. Os: p.Os,
  61. Username: p.Username,
  62. }
  63. gpp.Note = ""
  64. gpp.UserName = username
  65. }