@@ -248,28 +248,18 @@ func (s *notificationConfigurations) List(ctx context.Context, subscribableID st
248
248
249
249
// Create a notification configuration with the given options.
250
250
func (s * notificationConfigurations ) Create (ctx context.Context , subscribableID string , options NotificationConfigurationCreateOptions ) (* NotificationConfiguration , error ) {
251
- if err := options .valid (); err != nil {
252
- return nil , err
253
- }
254
-
255
251
var u string
256
252
var subscribableChoice * NotificationConfigurationSubscribableChoice
257
- if options .SubscribableChoice == nil || options .SubscribableChoice .Workspace != nil {
258
- if ! validStringID (& subscribableID ) {
259
- return nil , ErrInvalidWorkspaceID
260
- }
261
-
253
+ if options .SubscribableChoice == nil || options .SubscribableChoice .Team == nil {
262
254
u = fmt .Sprintf ("workspaces/%s/notification-configurations" , url .PathEscape (subscribableID ))
263
- subscribableChoice = & NotificationConfigurationSubscribableChoice {Workspace : & Workspace {ID : subscribableID }}
264
- } else if options .SubscribableChoice != nil && options .SubscribableChoice .Team != nil {
265
- if ! validStringID (& subscribableID ) {
266
- return nil , ErrInvalidTeamID
267
- }
268
-
269
- u = fmt .Sprintf ("teams/%s/notification-configurations" , url .PathEscape (subscribableID ))
270
- subscribableChoice = & NotificationConfigurationSubscribableChoice {Team : & Team {ID : subscribableID }}
255
+ options .SubscribableChoice = & NotificationConfigurationSubscribableChoice {Workspace : & Workspace {ID : subscribableID }}
271
256
} else {
272
- return nil , ErrInvalidNotificationConfigSubscribableChoice
257
+ u = fmt .Sprintf ("teams/%s/notification-configurations" , url .PathEscape (subscribableID ))
258
+ options .SubscribableChoice = & NotificationConfigurationSubscribableChoice {Team : & Team {ID : subscribableID }}
259
+ }
260
+
261
+ if err := options .valid (); err != nil {
262
+ return nil , err
273
263
}
274
264
275
265
req , err := s .client .NewRequest ("POST" , u , & options )
@@ -378,6 +368,16 @@ func (s *notificationConfigurations) Verify(ctx context.Context, notificationCon
378
368
}
379
369
380
370
func (o NotificationConfigurationCreateOptions ) valid () error {
371
+ if o .SubscribableChoice == nil || o .SubscribableChoice .Workspace != nil {
372
+ if ! validStringID (& o .SubscribableChoice .Workspace .ID ) {
373
+ return ErrInvalidWorkspaceID
374
+ }
375
+ } else {
376
+ if ! validStringID (& o .SubscribableChoice .Team .ID ) {
377
+ return ErrInvalidTeamID
378
+ }
379
+ }
380
+
381
381
if o .DestinationType == nil {
382
382
return ErrRequiredDestinationType
383
383
}
0 commit comments