github.com/keybase/client/go@v0.0.0-20240309051027-028f7c731f8b/engine/favorite_ignore.go (about)

     1  // Copyright 2015 Keybase, Inc. All rights reserved. Use of
     2  // this source code is governed by the included BSD license.
     3  
     4  package engine
     5  
     6  import (
     7  	"fmt"
     8  
     9  	"github.com/keybase/client/go/libkb"
    10  	keybase1 "github.com/keybase/client/go/protocol/keybase1"
    11  )
    12  
    13  // FavoriteIgnore is an engine.
    14  type FavoriteIgnore struct {
    15  	arg *keybase1.FavoriteIgnoreArg
    16  	libkb.Contextified
    17  }
    18  
    19  // NewFavoriteIgnore creates a FavoriteIgnore engine.
    20  func NewFavoriteIgnore(g *libkb.GlobalContext, arg *keybase1.FavoriteIgnoreArg) *FavoriteIgnore {
    21  	return &FavoriteIgnore{
    22  		arg:          arg,
    23  		Contextified: libkb.NewContextified(g),
    24  	}
    25  }
    26  
    27  // Name is the unique engine name.
    28  func (e *FavoriteIgnore) Name() string {
    29  	return "FavoriteIgnore"
    30  }
    31  
    32  // GetPrereqs returns the engine prereqs.
    33  func (e *FavoriteIgnore) Prereqs() Prereqs {
    34  	return Prereqs{
    35  		Device: true,
    36  	}
    37  }
    38  
    39  // RequiredUIs returns the required UIs.
    40  func (e *FavoriteIgnore) RequiredUIs() []libkb.UIKind {
    41  	return []libkb.UIKind{}
    42  }
    43  
    44  // SubConsumers returns the other UI consumers for this engine.
    45  func (e *FavoriteIgnore) SubConsumers() []libkb.UIConsumer {
    46  	return nil
    47  }
    48  
    49  // Run starts the engine.
    50  func (e *FavoriteIgnore) Run(m libkb.MetaContext) error {
    51  	if e.arg == nil {
    52  		return fmt.Errorf("FavoriteIgnore arg is nil")
    53  	}
    54  	_, err := m.G().API.Post(m, libkb.APIArg{
    55  		Endpoint:    "kbfs/favorite/add",
    56  		SessionType: libkb.APISessionTypeREQUIRED,
    57  		Args: libkb.HTTPArgs{
    58  			"tlf_name":    libkb.S{Val: e.arg.Folder.Name},
    59  			"folder_type": libkb.I{Val: int(e.arg.Folder.FolderType)},
    60  			"status":      libkb.S{Val: "ignored"},
    61  		},
    62  	})
    63  	return err
    64  }