github.com/taubyte/tau-cli@v0.1.13-0.20240326000942-487f0d57edfc/lib/login/extract_info.go (about)

     1  package loginLib
     2  
     3  import (
     4  	loginI18n "github.com/taubyte/tau-cli/i18n/login"
     5  	"github.com/taubyte/tau-cli/states"
     6  )
     7  
     8  func extractInfo(token, provider string) (name, email string, err error) {
     9  	// TODO provider
    10  
    11  	client := githubApiClient(token)
    12  
    13  	user, _, err := client.Users.Get(
    14  		states.Context,
    15  		"",
    16  	)
    17  	if err != nil {
    18  		err = loginI18n.GettingUserInfoFailed(err)
    19  		return
    20  	}
    21  
    22  	name = user.GetLogin()
    23  
    24  	emails, _, err := client.Users.ListEmails(
    25  		states.Context,
    26  		nil,
    27  	)
    28  	if err != nil {
    29  		err = loginI18n.ListingEmailsFailed(err)
    30  		return
    31  	}
    32  	if len(emails) == 0 {
    33  		err = loginI18n.ErrorNoEmailsFound
    34  		return
    35  	}
    36  
    37  	email = emails[0].GetEmail()
    38  
    39  	return
    40  }