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

@ -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)