parent
fe92d7c9db
commit
dfcba3bf0a
@ -43,8 +43,9 @@ type GraphConnector struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type graphService struct {
|
type graphService struct {
|
||||||
client msgraphsdk.GraphServiceClient
|
client msgraphsdk.GraphServiceClient
|
||||||
adapter msgraphsdk.GraphRequestAdapter
|
adapter msgraphsdk.GraphRequestAdapter
|
||||||
|
failFast bool // if true service will exit sequence upon encountering an error
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewGraphConnector(acct account.Account) (*GraphConnector, error) {
|
func NewGraphConnector(acct account.Account) (*GraphConnector, error) {
|
||||||
@ -59,7 +60,7 @@ func NewGraphConnector(acct account.Account) (*GraphConnector, error) {
|
|||||||
statusCh: make(chan *support.ConnectorOperationStatus),
|
statusCh: make(chan *support.ConnectorOperationStatus),
|
||||||
credentials: m365,
|
credentials: m365,
|
||||||
}
|
}
|
||||||
aService, err := gc.createService()
|
aService, err := gc.createService(false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -86,17 +87,21 @@ func createAdapter(tenant, client, secret string) (*msgraphsdk.GraphRequestAdapt
|
|||||||
}
|
}
|
||||||
|
|
||||||
// createSubConnector private constructor method for subConnector
|
// createSubConnector private constructor method for subConnector
|
||||||
func (gc *GraphConnector) createService() (*graphService, error) {
|
func (gc *GraphConnector) createService(shouldFailFast bool) (*graphService, error) {
|
||||||
adapter, err := createAdapter(gc.credentials.TenantID, gc.credentials.ClientID, gc.credentials.ClientSecret)
|
adapter, err := createAdapter(gc.credentials.TenantID, gc.credentials.ClientID, gc.credentials.ClientSecret)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
connector := graphService{
|
connector := graphService{
|
||||||
adapter: *adapter,
|
adapter: *adapter,
|
||||||
client: *msgraphsdk.NewGraphServiceClient(adapter),
|
client: *msgraphsdk.NewGraphServiceClient(adapter),
|
||||||
|
failFast: shouldFailFast,
|
||||||
}
|
}
|
||||||
return &connector, err
|
return &connector, err
|
||||||
}
|
}
|
||||||
|
func (gs *graphService) EnableFailFast() {
|
||||||
|
gs.failFast = true
|
||||||
|
}
|
||||||
|
|
||||||
// createMailFolder will create a mail folder iff a folder of the same name does not exit
|
// createMailFolder will create a mail folder iff a folder of the same name does not exit
|
||||||
func createMailFolder(gc graphService, user, folder string) (models.MailFolderable, error) {
|
func createMailFolder(gc graphService, user, folder string) (models.MailFolderable, error) {
|
||||||
@ -350,7 +355,7 @@ func (gc *GraphConnector) serializeMessages(ctx context.Context, user string) (m
|
|||||||
// return empty collection when no items found
|
// return empty collection when no items found
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
service, err := gc.createService()
|
service, err := gc.createService(gc.failFast)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, support.WrapAndAppend(user, err, err)
|
return nil, support.WrapAndAppend(user, err, err)
|
||||||
}
|
}
|
||||||
@ -396,6 +401,9 @@ func (sc *graphService) populateFromTaskList(
|
|||||||
errs = support.WrapAndAppendf(edc.user, err, errs)
|
errs = support.WrapAndAppendf(edc.user, err, errs)
|
||||||
success--
|
success--
|
||||||
}
|
}
|
||||||
|
if errs != nil && sc.failFast {
|
||||||
|
break
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
edc.FinishPopulation()
|
edc.FinishPopulation()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user