github.com/keybase/client/go@v0.0.0-20241007131713-f10651d043c8/protocol/keybase1/favorite.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/favorite.avdl
     3  
     4  package keybase1
     5  
     6  import (
     7  	"errors"
     8  	"fmt"
     9  	"github.com/keybase/go-framed-msgpack-rpc/rpc"
    10  	context "golang.org/x/net/context"
    11  	"time"
    12  )
    13  
    14  type FolderType int
    15  
    16  const (
    17  	FolderType_UNKNOWN FolderType = 0
    18  	FolderType_PRIVATE FolderType = 1
    19  	FolderType_PUBLIC  FolderType = 2
    20  	FolderType_TEAM    FolderType = 3
    21  )
    22  
    23  func (o FolderType) DeepCopy() FolderType { return o }
    24  
    25  var FolderTypeMap = map[string]FolderType{
    26  	"UNKNOWN": 0,
    27  	"PRIVATE": 1,
    28  	"PUBLIC":  2,
    29  	"TEAM":    3,
    30  }
    31  
    32  var FolderTypeRevMap = map[FolderType]string{
    33  	0: "UNKNOWN",
    34  	1: "PRIVATE",
    35  	2: "PUBLIC",
    36  	3: "TEAM",
    37  }
    38  
    39  func (e FolderType) String() string {
    40  	if v, ok := FolderTypeRevMap[e]; ok {
    41  		return v
    42  	}
    43  	return fmt.Sprintf("%v", int(e))
    44  }
    45  
    46  type FolderConflictType int
    47  
    48  const (
    49  	FolderConflictType_NONE                  FolderConflictType = 0
    50  	FolderConflictType_IN_CONFLICT           FolderConflictType = 1
    51  	FolderConflictType_IN_CONFLICT_AND_STUCK FolderConflictType = 2
    52  	FolderConflictType_CLEARED_CONFLICT      FolderConflictType = 3
    53  )
    54  
    55  func (o FolderConflictType) DeepCopy() FolderConflictType { return o }
    56  
    57  var FolderConflictTypeMap = map[string]FolderConflictType{
    58  	"NONE":                  0,
    59  	"IN_CONFLICT":           1,
    60  	"IN_CONFLICT_AND_STUCK": 2,
    61  	"CLEARED_CONFLICT":      3,
    62  }
    63  
    64  var FolderConflictTypeRevMap = map[FolderConflictType]string{
    65  	0: "NONE",
    66  	1: "IN_CONFLICT",
    67  	2: "IN_CONFLICT_AND_STUCK",
    68  	3: "CLEARED_CONFLICT",
    69  }
    70  
    71  func (e FolderConflictType) String() string {
    72  	if v, ok := FolderConflictTypeRevMap[e]; ok {
    73  		return v
    74  	}
    75  	return fmt.Sprintf("%v", int(e))
    76  }
    77  
    78  type ConflictStateType int
    79  
    80  const (
    81  	ConflictStateType_NormalView               ConflictStateType = 1
    82  	ConflictStateType_ManualResolvingLocalView ConflictStateType = 2
    83  )
    84  
    85  func (o ConflictStateType) DeepCopy() ConflictStateType { return o }
    86  
    87  var ConflictStateTypeMap = map[string]ConflictStateType{
    88  	"NormalView":               1,
    89  	"ManualResolvingLocalView": 2,
    90  }
    91  
    92  var ConflictStateTypeRevMap = map[ConflictStateType]string{
    93  	1: "NormalView",
    94  	2: "ManualResolvingLocalView",
    95  }
    96  
    97  func (e ConflictStateType) String() string {
    98  	if v, ok := ConflictStateTypeRevMap[e]; ok {
    99  		return v
   100  	}
   101  	return fmt.Sprintf("%v", int(e))
   102  }
   103  
   104  type FolderNormalView struct {
   105  	ResolvingConflict bool   `codec:"resolvingConflict" json:"resolvingConflict"`
   106  	StuckInConflict   bool   `codec:"stuckInConflict" json:"stuckInConflict"`
   107  	LocalViews        []Path `codec:"localViews" json:"localViews"`
   108  }
   109  
   110  func (o FolderNormalView) DeepCopy() FolderNormalView {
   111  	return FolderNormalView{
   112  		ResolvingConflict: o.ResolvingConflict,
   113  		StuckInConflict:   o.StuckInConflict,
   114  		LocalViews: (func(x []Path) []Path {
   115  			if x == nil {
   116  				return nil
   117  			}
   118  			ret := make([]Path, len(x))
   119  			for i, v := range x {
   120  				vCopy := v.DeepCopy()
   121  				ret[i] = vCopy
   122  			}
   123  			return ret
   124  		})(o.LocalViews),
   125  	}
   126  }
   127  
   128  type FolderConflictManualResolvingLocalView struct {
   129  	NormalView Path `codec:"normalView" json:"normalView"`
   130  }
   131  
   132  func (o FolderConflictManualResolvingLocalView) DeepCopy() FolderConflictManualResolvingLocalView {
   133  	return FolderConflictManualResolvingLocalView{
   134  		NormalView: o.NormalView.DeepCopy(),
   135  	}
   136  }
   137  
   138  type ConflictState struct {
   139  	ConflictStateType__        ConflictStateType                       `codec:"conflictStateType" json:"conflictStateType"`
   140  	Normalview__               *FolderNormalView                       `codec:"normalview,omitempty" json:"normalview,omitempty"`
   141  	Manualresolvinglocalview__ *FolderConflictManualResolvingLocalView `codec:"manualresolvinglocalview,omitempty" json:"manualresolvinglocalview,omitempty"`
   142  }
   143  
   144  func (o *ConflictState) ConflictStateType() (ret ConflictStateType, err error) {
   145  	switch o.ConflictStateType__ {
   146  	case ConflictStateType_NormalView:
   147  		if o.Normalview__ == nil {
   148  			err = errors.New("unexpected nil value for Normalview__")
   149  			return ret, err
   150  		}
   151  	case ConflictStateType_ManualResolvingLocalView:
   152  		if o.Manualresolvinglocalview__ == nil {
   153  			err = errors.New("unexpected nil value for Manualresolvinglocalview__")
   154  			return ret, err
   155  		}
   156  	}
   157  	return o.ConflictStateType__, nil
   158  }
   159  
   160  func (o ConflictState) Normalview() (res FolderNormalView) {
   161  	if o.ConflictStateType__ != ConflictStateType_NormalView {
   162  		panic("wrong case accessed")
   163  	}
   164  	if o.Normalview__ == nil {
   165  		return
   166  	}
   167  	return *o.Normalview__
   168  }
   169  
   170  func (o ConflictState) Manualresolvinglocalview() (res FolderConflictManualResolvingLocalView) {
   171  	if o.ConflictStateType__ != ConflictStateType_ManualResolvingLocalView {
   172  		panic("wrong case accessed")
   173  	}
   174  	if o.Manualresolvinglocalview__ == nil {
   175  		return
   176  	}
   177  	return *o.Manualresolvinglocalview__
   178  }
   179  
   180  func NewConflictStateWithNormalview(v FolderNormalView) ConflictState {
   181  	return ConflictState{
   182  		ConflictStateType__: ConflictStateType_NormalView,
   183  		Normalview__:        &v,
   184  	}
   185  }
   186  
   187  func NewConflictStateWithManualresolvinglocalview(v FolderConflictManualResolvingLocalView) ConflictState {
   188  	return ConflictState{
   189  		ConflictStateType__:        ConflictStateType_ManualResolvingLocalView,
   190  		Manualresolvinglocalview__: &v,
   191  	}
   192  }
   193  
   194  func (o ConflictState) DeepCopy() ConflictState {
   195  	return ConflictState{
   196  		ConflictStateType__: o.ConflictStateType__.DeepCopy(),
   197  		Normalview__: (func(x *FolderNormalView) *FolderNormalView {
   198  			if x == nil {
   199  				return nil
   200  			}
   201  			tmp := (*x).DeepCopy()
   202  			return &tmp
   203  		})(o.Normalview__),
   204  		Manualresolvinglocalview__: (func(x *FolderConflictManualResolvingLocalView) *FolderConflictManualResolvingLocalView {
   205  			if x == nil {
   206  				return nil
   207  			}
   208  			tmp := (*x).DeepCopy()
   209  			return &tmp
   210  		})(o.Manualresolvinglocalview__),
   211  	}
   212  }
   213  
   214  // Folder represents a favorite top-level folder in kbfs.
   215  // This type is likely to change significantly as all the various parts are
   216  // connected and tested.
   217  type Folder struct {
   218  	Name          string            `codec:"name" json:"name"`
   219  	Private       bool              `codec:"private" json:"private"`
   220  	Created       bool              `codec:"created" json:"created"`
   221  	FolderType    FolderType        `codec:"folderType" json:"folderType"`
   222  	TeamID        *TeamID           `codec:"team_id,omitempty" json:"team_id,omitempty"`
   223  	ResetMembers  []User            `codec:"reset_members" json:"reset_members"`
   224  	Mtime         *Time             `codec:"mtime,omitempty" json:"mtime,omitempty"`
   225  	ConflictState *ConflictState    `codec:"conflictState,omitempty" json:"conflictState,omitempty"`
   226  	SyncConfig    *FolderSyncConfig `codec:"syncConfig,omitempty" json:"syncConfig,omitempty"`
   227  }
   228  
   229  func (o Folder) DeepCopy() Folder {
   230  	return Folder{
   231  		Name:       o.Name,
   232  		Private:    o.Private,
   233  		Created:    o.Created,
   234  		FolderType: o.FolderType.DeepCopy(),
   235  		TeamID: (func(x *TeamID) *TeamID {
   236  			if x == nil {
   237  				return nil
   238  			}
   239  			tmp := (*x).DeepCopy()
   240  			return &tmp
   241  		})(o.TeamID),
   242  		ResetMembers: (func(x []User) []User {
   243  			if x == nil {
   244  				return nil
   245  			}
   246  			ret := make([]User, len(x))
   247  			for i, v := range x {
   248  				vCopy := v.DeepCopy()
   249  				ret[i] = vCopy
   250  			}
   251  			return ret
   252  		})(o.ResetMembers),
   253  		Mtime: (func(x *Time) *Time {
   254  			if x == nil {
   255  				return nil
   256  			}
   257  			tmp := (*x).DeepCopy()
   258  			return &tmp
   259  		})(o.Mtime),
   260  		ConflictState: (func(x *ConflictState) *ConflictState {
   261  			if x == nil {
   262  				return nil
   263  			}
   264  			tmp := (*x).DeepCopy()
   265  			return &tmp
   266  		})(o.ConflictState),
   267  		SyncConfig: (func(x *FolderSyncConfig) *FolderSyncConfig {
   268  			if x == nil {
   269  				return nil
   270  			}
   271  			tmp := (*x).DeepCopy()
   272  			return &tmp
   273  		})(o.SyncConfig),
   274  	}
   275  }
   276  
   277  type FolderHandle struct {
   278  	Name       string     `codec:"name" json:"name"`
   279  	FolderType FolderType `codec:"folderType" json:"folderType"`
   280  	Created    bool       `codec:"created" json:"created"`
   281  }
   282  
   283  func (o FolderHandle) DeepCopy() FolderHandle {
   284  	return FolderHandle{
   285  		Name:       o.Name,
   286  		FolderType: o.FolderType.DeepCopy(),
   287  		Created:    o.Created,
   288  	}
   289  }
   290  
   291  type FavoritesResult struct {
   292  	FavoriteFolders []Folder `codec:"favoriteFolders" json:"favoriteFolders"`
   293  	IgnoredFolders  []Folder `codec:"ignoredFolders" json:"ignoredFolders"`
   294  	NewFolders      []Folder `codec:"newFolders" json:"newFolders"`
   295  }
   296  
   297  func (o FavoritesResult) DeepCopy() FavoritesResult {
   298  	return FavoritesResult{
   299  		FavoriteFolders: (func(x []Folder) []Folder {
   300  			if x == nil {
   301  				return nil
   302  			}
   303  			ret := make([]Folder, len(x))
   304  			for i, v := range x {
   305  				vCopy := v.DeepCopy()
   306  				ret[i] = vCopy
   307  			}
   308  			return ret
   309  		})(o.FavoriteFolders),
   310  		IgnoredFolders: (func(x []Folder) []Folder {
   311  			if x == nil {
   312  				return nil
   313  			}
   314  			ret := make([]Folder, len(x))
   315  			for i, v := range x {
   316  				vCopy := v.DeepCopy()
   317  				ret[i] = vCopy
   318  			}
   319  			return ret
   320  		})(o.IgnoredFolders),
   321  		NewFolders: (func(x []Folder) []Folder {
   322  			if x == nil {
   323  				return nil
   324  			}
   325  			ret := make([]Folder, len(x))
   326  			for i, v := range x {
   327  				vCopy := v.DeepCopy()
   328  				ret[i] = vCopy
   329  			}
   330  			return ret
   331  		})(o.NewFolders),
   332  	}
   333  }
   334  
   335  type FavoriteAddArg struct {
   336  	SessionID int          `codec:"sessionID" json:"sessionID"`
   337  	Folder    FolderHandle `codec:"folder" json:"folder"`
   338  }
   339  
   340  type FavoriteIgnoreArg struct {
   341  	SessionID int          `codec:"sessionID" json:"sessionID"`
   342  	Folder    FolderHandle `codec:"folder" json:"folder"`
   343  }
   344  
   345  type GetFavoritesArg struct {
   346  	SessionID int `codec:"sessionID" json:"sessionID"`
   347  }
   348  
   349  type FavoriteInterface interface {
   350  	// Adds a folder to a user's list of favorite folders.
   351  	FavoriteAdd(context.Context, FavoriteAddArg) error
   352  	// Removes a folder from a user's list of favorite folders.
   353  	FavoriteIgnore(context.Context, FavoriteIgnoreArg) error
   354  	// Returns all of a user's favorite folders.
   355  	GetFavorites(context.Context, int) (FavoritesResult, error)
   356  }
   357  
   358  func FavoriteProtocol(i FavoriteInterface) rpc.Protocol {
   359  	return rpc.Protocol{
   360  		Name: "keybase.1.favorite",
   361  		Methods: map[string]rpc.ServeHandlerDescription{
   362  			"favoriteAdd": {
   363  				MakeArg: func() interface{} {
   364  					var ret [1]FavoriteAddArg
   365  					return &ret
   366  				},
   367  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
   368  					typedArgs, ok := args.(*[1]FavoriteAddArg)
   369  					if !ok {
   370  						err = rpc.NewTypeError((*[1]FavoriteAddArg)(nil), args)
   371  						return
   372  					}
   373  					err = i.FavoriteAdd(ctx, typedArgs[0])
   374  					return
   375  				},
   376  			},
   377  			"favoriteIgnore": {
   378  				MakeArg: func() interface{} {
   379  					var ret [1]FavoriteIgnoreArg
   380  					return &ret
   381  				},
   382  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
   383  					typedArgs, ok := args.(*[1]FavoriteIgnoreArg)
   384  					if !ok {
   385  						err = rpc.NewTypeError((*[1]FavoriteIgnoreArg)(nil), args)
   386  						return
   387  					}
   388  					err = i.FavoriteIgnore(ctx, typedArgs[0])
   389  					return
   390  				},
   391  			},
   392  			"getFavorites": {
   393  				MakeArg: func() interface{} {
   394  					var ret [1]GetFavoritesArg
   395  					return &ret
   396  				},
   397  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
   398  					typedArgs, ok := args.(*[1]GetFavoritesArg)
   399  					if !ok {
   400  						err = rpc.NewTypeError((*[1]GetFavoritesArg)(nil), args)
   401  						return
   402  					}
   403  					ret, err = i.GetFavorites(ctx, typedArgs[0].SessionID)
   404  					return
   405  				},
   406  			},
   407  		},
   408  	}
   409  }
   410  
   411  type FavoriteClient struct {
   412  	Cli rpc.GenericClient
   413  }
   414  
   415  // Adds a folder to a user's list of favorite folders.
   416  func (c FavoriteClient) FavoriteAdd(ctx context.Context, __arg FavoriteAddArg) (err error) {
   417  	err = c.Cli.Call(ctx, "keybase.1.favorite.favoriteAdd", []interface{}{__arg}, nil, 0*time.Millisecond)
   418  	return
   419  }
   420  
   421  // Removes a folder from a user's list of favorite folders.
   422  func (c FavoriteClient) FavoriteIgnore(ctx context.Context, __arg FavoriteIgnoreArg) (err error) {
   423  	err = c.Cli.Call(ctx, "keybase.1.favorite.favoriteIgnore", []interface{}{__arg}, nil, 0*time.Millisecond)
   424  	return
   425  }
   426  
   427  // Returns all of a user's favorite folders.
   428  func (c FavoriteClient) GetFavorites(ctx context.Context, sessionID int) (res FavoritesResult, err error) {
   429  	__arg := GetFavoritesArg{SessionID: sessionID}
   430  	err = c.Cli.Call(ctx, "keybase.1.favorite.getFavorites", []interface{}{__arg}, &res, 0*time.Millisecond)
   431  	return
   432  }