github.com/keybase/client/go@v0.0.0-20241007131713-f10651d043c8/protocol/keybase1/usersearch.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/usersearch.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 APIUserServiceID string
    13  
    14  func (o APIUserServiceID) DeepCopy() APIUserServiceID {
    15  	return o
    16  }
    17  
    18  type APIUserKeybaseResult struct {
    19  	Username   string  `codec:"username" json:"username"`
    20  	Uid        UID     `codec:"uid" json:"uid"`
    21  	PictureUrl *string `codec:"pictureUrl,omitempty" json:"picture_url,omitempty"`
    22  	FullName   *string `codec:"fullName,omitempty" json:"full_name,omitempty"`
    23  	RawScore   float64 `codec:"rawScore" json:"raw_score"`
    24  	Stellar    *string `codec:"stellar,omitempty" json:"stellar,omitempty"`
    25  	IsFollowee bool    `codec:"isFollowee" json:"is_followee"`
    26  }
    27  
    28  func (o APIUserKeybaseResult) DeepCopy() APIUserKeybaseResult {
    29  	return APIUserKeybaseResult{
    30  		Username: o.Username,
    31  		Uid:      o.Uid.DeepCopy(),
    32  		PictureUrl: (func(x *string) *string {
    33  			if x == nil {
    34  				return nil
    35  			}
    36  			tmp := (*x)
    37  			return &tmp
    38  		})(o.PictureUrl),
    39  		FullName: (func(x *string) *string {
    40  			if x == nil {
    41  				return nil
    42  			}
    43  			tmp := (*x)
    44  			return &tmp
    45  		})(o.FullName),
    46  		RawScore: o.RawScore,
    47  		Stellar: (func(x *string) *string {
    48  			if x == nil {
    49  				return nil
    50  			}
    51  			tmp := (*x)
    52  			return &tmp
    53  		})(o.Stellar),
    54  		IsFollowee: o.IsFollowee,
    55  	}
    56  }
    57  
    58  type APIUserServiceResult struct {
    59  	ServiceName APIUserServiceID `codec:"serviceName" json:"service_name"`
    60  	Username    string           `codec:"username" json:"username"`
    61  	PictureUrl  string           `codec:"pictureUrl" json:"picture_url"`
    62  	Bio         string           `codec:"bio" json:"bio"`
    63  	Location    string           `codec:"location" json:"location"`
    64  	FullName    string           `codec:"fullName" json:"full_name"`
    65  	Confirmed   *bool            `codec:"confirmed,omitempty" json:"confirmed,omitempty"`
    66  }
    67  
    68  func (o APIUserServiceResult) DeepCopy() APIUserServiceResult {
    69  	return APIUserServiceResult{
    70  		ServiceName: o.ServiceName.DeepCopy(),
    71  		Username:    o.Username,
    72  		PictureUrl:  o.PictureUrl,
    73  		Bio:         o.Bio,
    74  		Location:    o.Location,
    75  		FullName:    o.FullName,
    76  		Confirmed: (func(x *bool) *bool {
    77  			if x == nil {
    78  				return nil
    79  			}
    80  			tmp := (*x)
    81  			return &tmp
    82  		})(o.Confirmed),
    83  	}
    84  }
    85  
    86  type APIUserServiceSummary struct {
    87  	ServiceName APIUserServiceID `codec:"serviceName" json:"service_name"`
    88  	Username    string           `codec:"username" json:"username"`
    89  }
    90  
    91  func (o APIUserServiceSummary) DeepCopy() APIUserServiceSummary {
    92  	return APIUserServiceSummary{
    93  		ServiceName: o.ServiceName.DeepCopy(),
    94  		Username:    o.Username,
    95  	}
    96  }
    97  
    98  type ImpTofuSearchResult struct {
    99  	Assertion       string `codec:"assertion" json:"assertion"`
   100  	AssertionValue  string `codec:"assertionValue" json:"assertionValue"`
   101  	AssertionKey    string `codec:"assertionKey" json:"assertionKey"`
   102  	Label           string `codec:"label" json:"label"`
   103  	PrettyName      string `codec:"prettyName" json:"prettyName"`
   104  	KeybaseUsername string `codec:"keybaseUsername" json:"keybaseUsername"`
   105  }
   106  
   107  func (o ImpTofuSearchResult) DeepCopy() ImpTofuSearchResult {
   108  	return ImpTofuSearchResult{
   109  		Assertion:       o.Assertion,
   110  		AssertionValue:  o.AssertionValue,
   111  		AssertionKey:    o.AssertionKey,
   112  		Label:           o.Label,
   113  		PrettyName:      o.PrettyName,
   114  		KeybaseUsername: o.KeybaseUsername,
   115  	}
   116  }
   117  
   118  type APIUserSearchResult struct {
   119  	Score           float64                                    `codec:"score" json:"score"`
   120  	Keybase         *APIUserKeybaseResult                      `codec:"keybase,omitempty" json:"keybase,omitempty"`
   121  	Service         *APIUserServiceResult                      `codec:"service,omitempty" json:"service,omitempty"`
   122  	Contact         *ProcessedContact                          `codec:"contact,omitempty" json:"contact,omitempty"`
   123  	Imptofu         *ImpTofuSearchResult                       `codec:"imptofu,omitempty" json:"imptofu,omitempty"`
   124  	ServicesSummary map[APIUserServiceID]APIUserServiceSummary `codec:"servicesSummary" json:"services_summary"`
   125  	RawScore        float64                                    `codec:"rawScore" json:"rawScore"`
   126  }
   127  
   128  func (o APIUserSearchResult) DeepCopy() APIUserSearchResult {
   129  	return APIUserSearchResult{
   130  		Score: o.Score,
   131  		Keybase: (func(x *APIUserKeybaseResult) *APIUserKeybaseResult {
   132  			if x == nil {
   133  				return nil
   134  			}
   135  			tmp := (*x).DeepCopy()
   136  			return &tmp
   137  		})(o.Keybase),
   138  		Service: (func(x *APIUserServiceResult) *APIUserServiceResult {
   139  			if x == nil {
   140  				return nil
   141  			}
   142  			tmp := (*x).DeepCopy()
   143  			return &tmp
   144  		})(o.Service),
   145  		Contact: (func(x *ProcessedContact) *ProcessedContact {
   146  			if x == nil {
   147  				return nil
   148  			}
   149  			tmp := (*x).DeepCopy()
   150  			return &tmp
   151  		})(o.Contact),
   152  		Imptofu: (func(x *ImpTofuSearchResult) *ImpTofuSearchResult {
   153  			if x == nil {
   154  				return nil
   155  			}
   156  			tmp := (*x).DeepCopy()
   157  			return &tmp
   158  		})(o.Imptofu),
   159  		ServicesSummary: (func(x map[APIUserServiceID]APIUserServiceSummary) map[APIUserServiceID]APIUserServiceSummary {
   160  			if x == nil {
   161  				return nil
   162  			}
   163  			ret := make(map[APIUserServiceID]APIUserServiceSummary, len(x))
   164  			for k, v := range x {
   165  				kCopy := k.DeepCopy()
   166  				vCopy := v.DeepCopy()
   167  				ret[kCopy] = vCopy
   168  			}
   169  			return ret
   170  		})(o.ServicesSummary),
   171  		RawScore: o.RawScore,
   172  	}
   173  }
   174  
   175  type NonUserDetails struct {
   176  	IsNonUser            bool                  `codec:"isNonUser" json:"isNonUser"`
   177  	AssertionValue       string                `codec:"assertionValue" json:"assertionValue"`
   178  	AssertionKey         string                `codec:"assertionKey" json:"assertionKey"`
   179  	Description          string                `codec:"description" json:"description"`
   180  	Contact              *ProcessedContact     `codec:"contact,omitempty" json:"contact,omitempty"`
   181  	Service              *APIUserServiceResult `codec:"service,omitempty" json:"service,omitempty"`
   182  	SiteIcon             []SizedImage          `codec:"siteIcon" json:"siteIcon"`
   183  	SiteIconDarkmode     []SizedImage          `codec:"siteIconDarkmode" json:"siteIconDarkmode"`
   184  	SiteIconFull         []SizedImage          `codec:"siteIconFull" json:"siteIconFull"`
   185  	SiteIconFullDarkmode []SizedImage          `codec:"siteIconFullDarkmode" json:"siteIconFullDarkmode"`
   186  }
   187  
   188  func (o NonUserDetails) DeepCopy() NonUserDetails {
   189  	return NonUserDetails{
   190  		IsNonUser:      o.IsNonUser,
   191  		AssertionValue: o.AssertionValue,
   192  		AssertionKey:   o.AssertionKey,
   193  		Description:    o.Description,
   194  		Contact: (func(x *ProcessedContact) *ProcessedContact {
   195  			if x == nil {
   196  				return nil
   197  			}
   198  			tmp := (*x).DeepCopy()
   199  			return &tmp
   200  		})(o.Contact),
   201  		Service: (func(x *APIUserServiceResult) *APIUserServiceResult {
   202  			if x == nil {
   203  				return nil
   204  			}
   205  			tmp := (*x).DeepCopy()
   206  			return &tmp
   207  		})(o.Service),
   208  		SiteIcon: (func(x []SizedImage) []SizedImage {
   209  			if x == nil {
   210  				return nil
   211  			}
   212  			ret := make([]SizedImage, len(x))
   213  			for i, v := range x {
   214  				vCopy := v.DeepCopy()
   215  				ret[i] = vCopy
   216  			}
   217  			return ret
   218  		})(o.SiteIcon),
   219  		SiteIconDarkmode: (func(x []SizedImage) []SizedImage {
   220  			if x == nil {
   221  				return nil
   222  			}
   223  			ret := make([]SizedImage, len(x))
   224  			for i, v := range x {
   225  				vCopy := v.DeepCopy()
   226  				ret[i] = vCopy
   227  			}
   228  			return ret
   229  		})(o.SiteIconDarkmode),
   230  		SiteIconFull: (func(x []SizedImage) []SizedImage {
   231  			if x == nil {
   232  				return nil
   233  			}
   234  			ret := make([]SizedImage, len(x))
   235  			for i, v := range x {
   236  				vCopy := v.DeepCopy()
   237  				ret[i] = vCopy
   238  			}
   239  			return ret
   240  		})(o.SiteIconFull),
   241  		SiteIconFullDarkmode: (func(x []SizedImage) []SizedImage {
   242  			if x == nil {
   243  				return nil
   244  			}
   245  			ret := make([]SizedImage, len(x))
   246  			for i, v := range x {
   247  				vCopy := v.DeepCopy()
   248  				ret[i] = vCopy
   249  			}
   250  			return ret
   251  		})(o.SiteIconFullDarkmode),
   252  	}
   253  }
   254  
   255  type EmailOrPhoneNumberSearchResult struct {
   256  	Input          string `codec:"input" json:"input"`
   257  	Assertion      string `codec:"assertion" json:"assertion"`
   258  	AssertionValue string `codec:"assertionValue" json:"assertionValue"`
   259  	AssertionKey   string `codec:"assertionKey" json:"assertionKey"`
   260  	FoundUser      bool   `codec:"foundUser" json:"foundUser"`
   261  	Username       string `codec:"username" json:"username"`
   262  	FullName       string `codec:"fullName" json:"fullName"`
   263  }
   264  
   265  func (o EmailOrPhoneNumberSearchResult) DeepCopy() EmailOrPhoneNumberSearchResult {
   266  	return EmailOrPhoneNumberSearchResult{
   267  		Input:          o.Input,
   268  		Assertion:      o.Assertion,
   269  		AssertionValue: o.AssertionValue,
   270  		AssertionKey:   o.AssertionKey,
   271  		FoundUser:      o.FoundUser,
   272  		Username:       o.Username,
   273  		FullName:       o.FullName,
   274  	}
   275  }
   276  
   277  type GetNonUserDetailsArg struct {
   278  	SessionID int    `codec:"sessionID" json:"sessionID"`
   279  	Assertion string `codec:"assertion" json:"assertion"`
   280  }
   281  
   282  type UserSearchArg struct {
   283  	Query                  string `codec:"query" json:"query"`
   284  	Service                string `codec:"service" json:"service"`
   285  	MaxResults             int    `codec:"maxResults" json:"maxResults"`
   286  	IncludeServicesSummary bool   `codec:"includeServicesSummary" json:"includeServicesSummary"`
   287  	IncludeContacts        bool   `codec:"includeContacts" json:"includeContacts"`
   288  }
   289  
   290  type BulkEmailOrPhoneSearchArg struct {
   291  	SessionID    int           `codec:"sessionID" json:"sessionID"`
   292  	Emails       string        `codec:"emails" json:"emails"`
   293  	PhoneNumbers []PhoneNumber `codec:"phoneNumbers" json:"phoneNumbers"`
   294  }
   295  
   296  type UserSearchInterface interface {
   297  	GetNonUserDetails(context.Context, GetNonUserDetailsArg) (NonUserDetails, error)
   298  	UserSearch(context.Context, UserSearchArg) ([]APIUserSearchResult, error)
   299  	BulkEmailOrPhoneSearch(context.Context, BulkEmailOrPhoneSearchArg) ([]EmailOrPhoneNumberSearchResult, error)
   300  }
   301  
   302  func UserSearchProtocol(i UserSearchInterface) rpc.Protocol {
   303  	return rpc.Protocol{
   304  		Name: "keybase.1.userSearch",
   305  		Methods: map[string]rpc.ServeHandlerDescription{
   306  			"getNonUserDetails": {
   307  				MakeArg: func() interface{} {
   308  					var ret [1]GetNonUserDetailsArg
   309  					return &ret
   310  				},
   311  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
   312  					typedArgs, ok := args.(*[1]GetNonUserDetailsArg)
   313  					if !ok {
   314  						err = rpc.NewTypeError((*[1]GetNonUserDetailsArg)(nil), args)
   315  						return
   316  					}
   317  					ret, err = i.GetNonUserDetails(ctx, typedArgs[0])
   318  					return
   319  				},
   320  			},
   321  			"userSearch": {
   322  				MakeArg: func() interface{} {
   323  					var ret [1]UserSearchArg
   324  					return &ret
   325  				},
   326  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
   327  					typedArgs, ok := args.(*[1]UserSearchArg)
   328  					if !ok {
   329  						err = rpc.NewTypeError((*[1]UserSearchArg)(nil), args)
   330  						return
   331  					}
   332  					ret, err = i.UserSearch(ctx, typedArgs[0])
   333  					return
   334  				},
   335  			},
   336  			"bulkEmailOrPhoneSearch": {
   337  				MakeArg: func() interface{} {
   338  					var ret [1]BulkEmailOrPhoneSearchArg
   339  					return &ret
   340  				},
   341  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
   342  					typedArgs, ok := args.(*[1]BulkEmailOrPhoneSearchArg)
   343  					if !ok {
   344  						err = rpc.NewTypeError((*[1]BulkEmailOrPhoneSearchArg)(nil), args)
   345  						return
   346  					}
   347  					ret, err = i.BulkEmailOrPhoneSearch(ctx, typedArgs[0])
   348  					return
   349  				},
   350  			},
   351  		},
   352  	}
   353  }
   354  
   355  type UserSearchClient struct {
   356  	Cli rpc.GenericClient
   357  }
   358  
   359  func (c UserSearchClient) GetNonUserDetails(ctx context.Context, __arg GetNonUserDetailsArg) (res NonUserDetails, err error) {
   360  	err = c.Cli.Call(ctx, "keybase.1.userSearch.getNonUserDetails", []interface{}{__arg}, &res, 0*time.Millisecond)
   361  	return
   362  }
   363  
   364  func (c UserSearchClient) UserSearch(ctx context.Context, __arg UserSearchArg) (res []APIUserSearchResult, err error) {
   365  	err = c.Cli.Call(ctx, "keybase.1.userSearch.userSearch", []interface{}{__arg}, &res, 0*time.Millisecond)
   366  	return
   367  }
   368  
   369  func (c UserSearchClient) BulkEmailOrPhoneSearch(ctx context.Context, __arg BulkEmailOrPhoneSearchArg) (res []EmailOrPhoneNumberSearchResult, err error) {
   370  	err = c.Cli.Call(ctx, "keybase.1.userSearch.bulkEmailOrPhoneSearch", []interface{}{__arg}, &res, 0*time.Millisecond)
   371  	return
   372  }