Autenticate OAuth backends

This commit is contained in:
Philipp Wolfer 2023-11-21 17:51:13 +01:00
parent 94704f9cd0
commit fa7732c538
No known key found for this signature in database
GPG key ID: 8FDF744D4919943B
15 changed files with 61 additions and 20 deletions

View file

@ -96,7 +96,7 @@ var authCmd = &cobra.Command{
db, err := storage.New(viper.GetString("database"))
cobra.CheckErr(err)
err = db.SetOAuth2Token(serviceName, *tok)
err = db.SetOAuth2Token(serviceName, tok)
cobra.CheckErr(err)
// oauth2.Token{

View file

@ -54,8 +54,21 @@ var listensCmd = &cobra.Command{
cobra.CheckErr(err)
// Authenticate backends, if needed
backends.Authenticate(exportBackend, db, viper.GetViper())
backends.Authenticate(importBackend, db, viper.GetViper())
token, err := db.GetOAuth2Token(sourceName)
cobra.CheckErr(err)
auth, err := backends.Authenticate(exportBackend, token, viper.GetViper())
cobra.CheckErr(err)
if auth {
db.SetOAuth2Token(sourceName, token)
}
token, err = db.GetOAuth2Token(targetName)
cobra.CheckErr(err)
auth, err = backends.Authenticate(importBackend, token, viper.GetViper())
cobra.CheckErr(err)
if auth {
defer db.SetOAuth2Token(targetName, token)
}
// Read timestamp
timestamp := time.Unix(getInt64FromFlag(cmd, "timestamp"), 0)

View file

@ -43,15 +43,32 @@ var lovesCmd = &cobra.Command{
targetName, targetConfig := getConfigFromFlag(cmd, "to")
fmt.Printf("Transferring loves from %s to %s...\n", sourceName, targetName)
// Setup database
db, err := storage.New(viper.GetString("database"))
cobra.CheckErr(err)
// Initialize backends
exportBackend, err := backends.ResolveBackend[models.LovesExport](sourceConfig)
cobra.CheckErr(err)
importBackend, err := backends.ResolveBackend[models.LovesImport](targetConfig)
cobra.CheckErr(err)
// Setup database
db, err := storage.New(viper.GetString("database"))
// Authenticate backends, if needed
token, err := db.GetOAuth2Token(sourceName)
cobra.CheckErr(err)
auth, err := backends.Authenticate(exportBackend, token, viper.GetViper())
cobra.CheckErr(err)
if auth {
db.SetOAuth2Token(sourceName, token)
}
token, err = db.GetOAuth2Token(targetName)
cobra.CheckErr(err)
auth, err = backends.Authenticate(importBackend, token, viper.GetViper())
cobra.CheckErr(err)
if auth {
defer db.SetOAuth2Token(targetName, token)
}
// Read timestamp
timestamp := time.Unix(getInt64FromFlag(cmd, "timestamp"), 0)