github.com/keybase/client/go@v0.0.0-20240309051027-028f7c731f8b/protocol/keybase1/contacts.go (about) 1 // Auto-generated to Go types and interfaces using avdl-compiler v1.4.10 (https://github.com/keybase/node-avdl-compiler) 2 // Input file: avdl/keybase1/contacts.avdl 3 4 package keybase1 5 6 import ( 7 "github.com/keybase/go-framed-msgpack-rpc/rpc" 8 context "golang.org/x/net/context" 9 "time" 10 ) 11 12 type ContactComponent struct { 13 Label string `codec:"label" json:"label"` 14 PhoneNumber *RawPhoneNumber `codec:"phoneNumber,omitempty" json:"phoneNumber,omitempty"` 15 Email *EmailAddress `codec:"email,omitempty" json:"email,omitempty"` 16 } 17 18 func (o ContactComponent) DeepCopy() ContactComponent { 19 return ContactComponent{ 20 Label: o.Label, 21 PhoneNumber: (func(x *RawPhoneNumber) *RawPhoneNumber { 22 if x == nil { 23 return nil 24 } 25 tmp := (*x).DeepCopy() 26 return &tmp 27 })(o.PhoneNumber), 28 Email: (func(x *EmailAddress) *EmailAddress { 29 if x == nil { 30 return nil 31 } 32 tmp := (*x).DeepCopy() 33 return &tmp 34 })(o.Email), 35 } 36 } 37 38 type Contact struct { 39 Name string `codec:"name" json:"name"` 40 Components []ContactComponent `codec:"components" json:"components"` 41 } 42 43 func (o Contact) DeepCopy() Contact { 44 return Contact{ 45 Name: o.Name, 46 Components: (func(x []ContactComponent) []ContactComponent { 47 if x == nil { 48 return nil 49 } 50 ret := make([]ContactComponent, len(x)) 51 for i, v := range x { 52 vCopy := v.DeepCopy() 53 ret[i] = vCopy 54 } 55 return ret 56 })(o.Components), 57 } 58 } 59 60 type ProcessedContact struct { 61 ContactIndex int `codec:"contactIndex" json:"contactIndex"` 62 ContactName string `codec:"contactName" json:"contactName"` 63 Component ContactComponent `codec:"component" json:"component"` 64 Resolved bool `codec:"resolved" json:"resolved"` 65 Uid UID `codec:"uid" json:"uid"` 66 Username string `codec:"username" json:"username"` 67 FullName string `codec:"fullName" json:"fullName"` 68 Following bool `codec:"following" json:"following"` 69 ServiceMap map[string]string `codec:"serviceMap" json:"serviceMap"` 70 Assertion string `codec:"assertion" json:"assertion"` 71 DisplayName string `codec:"displayName" json:"displayName"` 72 DisplayLabel string `codec:"displayLabel" json:"displayLabel"` 73 } 74 75 func (o ProcessedContact) DeepCopy() ProcessedContact { 76 return ProcessedContact{ 77 ContactIndex: o.ContactIndex, 78 ContactName: o.ContactName, 79 Component: o.Component.DeepCopy(), 80 Resolved: o.Resolved, 81 Uid: o.Uid.DeepCopy(), 82 Username: o.Username, 83 FullName: o.FullName, 84 Following: o.Following, 85 ServiceMap: (func(x map[string]string) map[string]string { 86 if x == nil { 87 return nil 88 } 89 ret := make(map[string]string, len(x)) 90 for k, v := range x { 91 kCopy := k 92 vCopy := v 93 ret[kCopy] = vCopy 94 } 95 return ret 96 })(o.ServiceMap), 97 Assertion: o.Assertion, 98 DisplayName: o.DisplayName, 99 DisplayLabel: o.DisplayLabel, 100 } 101 } 102 103 type ContactListResolutionResult struct { 104 NewlyResolved []ProcessedContact `codec:"newlyResolved" json:"newlyResolved"` 105 Resolved []ProcessedContact `codec:"resolved" json:"resolved"` 106 } 107 108 func (o ContactListResolutionResult) DeepCopy() ContactListResolutionResult { 109 return ContactListResolutionResult{ 110 NewlyResolved: (func(x []ProcessedContact) []ProcessedContact { 111 if x == nil { 112 return nil 113 } 114 ret := make([]ProcessedContact, len(x)) 115 for i, v := range x { 116 vCopy := v.DeepCopy() 117 ret[i] = vCopy 118 } 119 return ret 120 })(o.NewlyResolved), 121 Resolved: (func(x []ProcessedContact) []ProcessedContact { 122 if x == nil { 123 return nil 124 } 125 ret := make([]ProcessedContact, len(x)) 126 for i, v := range x { 127 vCopy := v.DeepCopy() 128 ret[i] = vCopy 129 } 130 return ret 131 })(o.Resolved), 132 } 133 } 134 135 type LookupContactListArg struct { 136 SessionID int `codec:"sessionID" json:"sessionID"` 137 Contacts []Contact `codec:"contacts" json:"contacts"` 138 } 139 140 type SaveContactListArg struct { 141 SessionID int `codec:"sessionID" json:"sessionID"` 142 Contacts []Contact `codec:"contacts" json:"contacts"` 143 } 144 145 type LookupSavedContactsListArg struct { 146 SessionID int `codec:"sessionID" json:"sessionID"` 147 } 148 149 type GetContactsForUserRecommendationsArg struct { 150 SessionID int `codec:"sessionID" json:"sessionID"` 151 } 152 153 type ContactsInterface interface { 154 LookupContactList(context.Context, LookupContactListArg) ([]ProcessedContact, error) 155 SaveContactList(context.Context, SaveContactListArg) (ContactListResolutionResult, error) 156 LookupSavedContactsList(context.Context, int) ([]ProcessedContact, error) 157 GetContactsForUserRecommendations(context.Context, int) ([]ProcessedContact, error) 158 } 159 160 func ContactsProtocol(i ContactsInterface) rpc.Protocol { 161 return rpc.Protocol{ 162 Name: "keybase.1.contacts", 163 Methods: map[string]rpc.ServeHandlerDescription{ 164 "lookupContactList": { 165 MakeArg: func() interface{} { 166 var ret [1]LookupContactListArg 167 return &ret 168 }, 169 Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) { 170 typedArgs, ok := args.(*[1]LookupContactListArg) 171 if !ok { 172 err = rpc.NewTypeError((*[1]LookupContactListArg)(nil), args) 173 return 174 } 175 ret, err = i.LookupContactList(ctx, typedArgs[0]) 176 return 177 }, 178 }, 179 "saveContactList": { 180 MakeArg: func() interface{} { 181 var ret [1]SaveContactListArg 182 return &ret 183 }, 184 Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) { 185 typedArgs, ok := args.(*[1]SaveContactListArg) 186 if !ok { 187 err = rpc.NewTypeError((*[1]SaveContactListArg)(nil), args) 188 return 189 } 190 ret, err = i.SaveContactList(ctx, typedArgs[0]) 191 return 192 }, 193 }, 194 "lookupSavedContactsList": { 195 MakeArg: func() interface{} { 196 var ret [1]LookupSavedContactsListArg 197 return &ret 198 }, 199 Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) { 200 typedArgs, ok := args.(*[1]LookupSavedContactsListArg) 201 if !ok { 202 err = rpc.NewTypeError((*[1]LookupSavedContactsListArg)(nil), args) 203 return 204 } 205 ret, err = i.LookupSavedContactsList(ctx, typedArgs[0].SessionID) 206 return 207 }, 208 }, 209 "getContactsForUserRecommendations": { 210 MakeArg: func() interface{} { 211 var ret [1]GetContactsForUserRecommendationsArg 212 return &ret 213 }, 214 Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) { 215 typedArgs, ok := args.(*[1]GetContactsForUserRecommendationsArg) 216 if !ok { 217 err = rpc.NewTypeError((*[1]GetContactsForUserRecommendationsArg)(nil), args) 218 return 219 } 220 ret, err = i.GetContactsForUserRecommendations(ctx, typedArgs[0].SessionID) 221 return 222 }, 223 }, 224 }, 225 } 226 } 227 228 type ContactsClient struct { 229 Cli rpc.GenericClient 230 } 231 232 func (c ContactsClient) LookupContactList(ctx context.Context, __arg LookupContactListArg) (res []ProcessedContact, err error) { 233 err = c.Cli.Call(ctx, "keybase.1.contacts.lookupContactList", []interface{}{__arg}, &res, 0*time.Millisecond) 234 return 235 } 236 237 func (c ContactsClient) SaveContactList(ctx context.Context, __arg SaveContactListArg) (res ContactListResolutionResult, err error) { 238 err = c.Cli.Call(ctx, "keybase.1.contacts.saveContactList", []interface{}{__arg}, &res, 0*time.Millisecond) 239 return 240 } 241 242 func (c ContactsClient) LookupSavedContactsList(ctx context.Context, sessionID int) (res []ProcessedContact, err error) { 243 __arg := LookupSavedContactsListArg{SessionID: sessionID} 244 err = c.Cli.Call(ctx, "keybase.1.contacts.lookupSavedContactsList", []interface{}{__arg}, &res, 0*time.Millisecond) 245 return 246 } 247 248 func (c ContactsClient) GetContactsForUserRecommendations(ctx context.Context, sessionID int) (res []ProcessedContact, err error) { 249 __arg := GetContactsForUserRecommendationsArg{SessionID: sessionID} 250 err = c.Cli.Call(ctx, "keybase.1.contacts.getContactsForUserRecommendations", []interface{}{__arg}, &res, 0*time.Millisecond) 251 return 252 }