github.com/keybase/client/go@v0.0.0-20241007131713-f10651d043c8/bot/service_helper.go (about)

     1  package bot
     2  
     3  import (
     4  	"github.com/keybase/client/go/libkb"
     5  	"github.com/keybase/client/go/protocol/keybase1"
     6  )
     7  
     8  func ListTokens(mctx libkb.MetaContext) (res []keybase1.BotTokenInfo, err error) {
     9  	type resType struct {
    10  		libkb.AppStatusEmbed
    11  		Tokens []keybase1.BotTokenInfo `json:"bot_tokens"`
    12  	}
    13  	var tmp resType
    14  	err = mctx.G().API.GetDecode(mctx, libkb.APIArg{
    15  		Endpoint:    "bot/token/list",
    16  		SessionType: libkb.APISessionTypeREQUIRED,
    17  	}, &tmp)
    18  	if err != nil {
    19  		return res, err
    20  	}
    21  	return tmp.Tokens, nil
    22  }
    23  
    24  func CreateToken(mctx libkb.MetaContext) (res keybase1.BotToken, err error) {
    25  	type resType struct {
    26  		libkb.AppStatusEmbed
    27  		Token keybase1.BotToken `json:"bot_token"`
    28  	}
    29  	var tmp resType
    30  	err = mctx.G().API.PostDecode(mctx, libkb.APIArg{
    31  		Endpoint:    "bot/token/create",
    32  		SessionType: libkb.APISessionTypeREQUIRED,
    33  	}, &tmp)
    34  	if err != nil {
    35  		return res, err
    36  	}
    37  
    38  	return tmp.Token, nil
    39  }
    40  
    41  func DeleteToken(mctx libkb.MetaContext, tok keybase1.BotToken) (err error) {
    42  	_, err = mctx.G().API.Post(mctx, libkb.APIArg{
    43  		Endpoint:    "bot/token/delete",
    44  		SessionType: libkb.APISessionTypeREQUIRED,
    45  		Args: libkb.HTTPArgs{
    46  			"bot_token": libkb.S{Val: tok.String()},
    47  		},
    48  	})
    49  	return err
    50  }