51 lines
1.3 KiB
Go
51 lines
1.3 KiB
Go
package migration
|
|
|
|
import (
|
|
"database/sql"
|
|
"federated.computer/wp-sync-slowtwitch/services/slowtwitch"
|
|
"federated.computer/wp-sync-slowtwitch/services/wordpress"
|
|
"fmt"
|
|
)
|
|
|
|
type MigrateAuthors struct {
|
|
SlowtwitchDatabase *sql.DB
|
|
ResultsDatabase *sql.DB
|
|
WordpressBaseUrl string
|
|
WordpressUser string
|
|
WordpressPassword string
|
|
}
|
|
|
|
func (migration *MigrateAuthors) Execute() []EditorResult {
|
|
editors := slowtwitch.GetUsers(migration.SlowtwitchDatabase)
|
|
var output []EditorResult
|
|
|
|
for _, editor := range editors {
|
|
hasBeenMigrated := EditorHasBeenMigrated(editor.Username, migration.ResultsDatabase)
|
|
|
|
if hasBeenMigrated == false {
|
|
createUser := wordpress.CreateUser{
|
|
Username: editor.Username,
|
|
Email: editor.Email,
|
|
Password: editor.Password,
|
|
Roles: "editor",
|
|
}
|
|
|
|
result := createUser.Execute(migration.WordpressBaseUrl, migration.WordpressUser, migration.WordpressPassword)
|
|
editorResult := EditorResult{
|
|
Username: result.Username,
|
|
Email: result.Username,
|
|
WordpressId: result.Id,
|
|
IsSuccess: true,
|
|
}
|
|
err := CreateEditorResult(editorResult, migration.ResultsDatabase)
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
}
|
|
output = append(output, editorResult)
|
|
fmt.Println("Created user:", result.Username)
|
|
}
|
|
}
|
|
|
|
return output
|
|
}
|