package google

import (
	"context"
	"os"

	log "github.com/sirupsen/logrus"
	admin "google.golang.org/api/admin/directory/v1"
)

func GetAllUsers() []*admin.User {
	// config.Init()
	// work.UpdateUser()
	// google.Start()

	ctx := context.TODO()
	userEmail := "yumin.li@pingcap.com"
	serviceAccountFile := "service_account.json"
	// scope := "admin.AdminDirectoryGroupReadonlyScope, admin.AdminDirectoryGroupMemberReadonlyScope, admin.AdminDirectoryUserReadonlyScope"

	serviceAccount, err := os.ReadFile(serviceAccountFile)
	if err != nil {

	}
	srv, err := NewAdminSrv(ctx, userEmail, serviceAccount, admin.AdminDirectoryUserScope)
	var resUsers []*admin.User
	var pageToken string
	for {
		var err error
		var r *admin.Users
		if pageToken != "" {
			r, err = srv.Users.List().Customer("my_customer").MaxResults(500).PageToken(pageToken).Do()
		} else {
			r, err = srv.Users.List().Customer("my_customer").MaxResults(500).Do()
		}
		if err != nil {
			log.Fatalf("Unable to retrieve users in domain: %v", err)
		}
		resUsers = append(resUsers, r.Users...)
		pageToken = r.NextPageToken
		if pageToken == "" {
			break
		}
	}
	return resUsers
}
