@@ -59,59 +59,76 @@ export default Mixin.create(MutableArray, CustomFormMixin, {
59
59
}
60
60
}
61
61
}
62
+ const numberOfTickets = data . tickets ? data . tickets . length : 0 ;
63
+ if ( event . name && event . locationName && event . startsAtDate && event . endsAtDate && numberOfTickets > 0 ) {
64
+ await event . save ( ) ;
62
65
63
- await event . save ( ) ;
64
-
65
- for ( const ticket of data . tickets ? data . tickets . toArray ( ) : [ ] ) {
66
- ticket . set ( 'maxOrder' , Math . min ( ticket . get ( 'maxOrder' ) , ticket . get ( 'quantity' ) ) ) ;
67
- await ticket . save ( ) ;
68
- }
66
+ for ( const ticket of data . tickets ? data . tickets . toArray ( ) : [ ] ) {
67
+ ticket . set ( 'maxOrder' , Math . min ( ticket . get ( 'maxOrder' ) , ticket . get ( 'quantity' ) ) ) ;
68
+ await ticket . save ( ) ;
69
+ }
69
70
70
- for ( const socialLink of data . socialLinks ? data . socialLinks . toArray ( ) : [ ] ) {
71
- await socialLink . save ( ) ;
72
- }
71
+ for ( const socialLink of data . socialLinks ? data . socialLinks . toArray ( ) : [ ] ) {
72
+ await socialLink . save ( ) ;
73
+ }
73
74
74
- if ( data . copyright && data . copyright . get ( 'licence' ) ) {
75
- await data . copyright . save ( ) ;
76
- }
75
+ if ( data . copyright && data . copyright . get ( 'licence' ) ) {
76
+ await data . copyright . save ( ) ;
77
+ }
77
78
78
- if ( data . tax && data . tax . get ( 'name' ) ) {
79
- let tax = this . setRelationship ( data . tax , event ) ;
80
- if ( event . get ( 'isTaxEnabled' ) ) {
81
- await tax . save ( ) ;
82
- } else {
83
- await tax . destroyRecord ( ) ;
79
+ if ( data . tax && data . tax . get ( 'name' ) ) {
80
+ let tax = this . setRelationship ( data . tax , event ) ;
81
+ if ( event . get ( 'isTaxEnabled' ) ) {
82
+ await tax . save ( ) ;
83
+ } else {
84
+ await tax . destroyRecord ( ) ;
85
+ }
84
86
}
85
- }
86
87
87
- if ( data . stripeAuthorization && data . stripeAuthorization . get ( 'stripeAuthCode' ) ) {
88
- let stripeAuthorization = this . setRelationship ( data . stripeAuthorization , event ) ;
89
- if ( event . get ( 'canPayByStripe' ) ) {
90
- await stripeAuthorization . save ( ) ;
91
- } else {
92
- await stripeAuthorization . destroyRecord ( ) ;
88
+ if ( data . stripeAuthorization && data . stripeAuthorization . get ( 'stripeAuthCode' ) ) {
89
+ let stripeAuthorization = this . setRelationship ( data . stripeAuthorization , event ) ;
90
+ if ( event . get ( 'canPayByStripe' ) ) {
91
+ await stripeAuthorization . save ( ) ;
92
+ } else {
93
+ await stripeAuthorization . destroyRecord ( ) ;
94
+ }
93
95
}
94
- }
95
96
96
- const bulkPromises = [ ] ;
97
+ const bulkPromises = [ ] ;
97
98
98
- for ( const property of [ 'tracks' , 'sessionTypes' , 'microlocations' , 'customForms' ] ) {
99
- const items = data [ property ] ;
100
- for ( const item of items ? items . toArray ( ) : [ ] ) {
101
- bulkPromises . push ( event . get ( 'isSessionsSpeakersEnabled' ) ? item . save ( ) : item . destroyRecord ( ) ) ;
99
+ for ( const property of [ 'tracks' , 'sessionTypes' , 'microlocations' , 'customForms' ] ) {
100
+ const items = data [ property ] ;
101
+ for ( const item of items ? items . toArray ( ) : [ ] ) {
102
+ bulkPromises . push ( event . get ( 'isSessionsSpeakersEnabled' ) ? item . save ( ) : item . destroyRecord ( ) ) ;
103
+ }
102
104
}
103
- }
104
105
105
- for ( const property of [ 'sponsors' ] ) {
106
- const items = data [ property ] ;
107
- for ( const item of items ? items . toArray ( ) : [ ] ) {
108
- bulkPromises . push ( event . get ( 'isSponsorsEnabled' ) ? item . save ( ) : item . destroyRecord ( ) ) ;
106
+ for ( const property of [ 'sponsors' ] ) {
107
+ const items = data [ property ] ;
108
+ for ( const item of items ? items . toArray ( ) : [ ] ) {
109
+ bulkPromises . push ( event . get ( 'isSponsorsEnabled' ) ? item . save ( ) : item . destroyRecord ( ) ) ;
110
+ }
109
111
}
110
- }
111
112
112
- await Promise . all ( bulkPromises ) ;
113
+ await Promise . all ( bulkPromises ) ;
113
114
114
- return event ;
115
+ return event ;
116
+ } else {
117
+ let errorObject = { 'errors' : [ ] } ;
118
+ if ( event . name === undefined || event . name === '' ) {
119
+ errorObject . errors . push ( { 'detail' : 'Event name has not been provided' } ) ;
120
+ }
121
+ if ( event . locationName === undefined || event . locationName === '' ) {
122
+ errorObject . errors . push ( { 'detail' : 'Location has not been provided' } ) ;
123
+ }
124
+ if ( event . startsAtDate === undefined || event . endsAtDate === undefined ) {
125
+ errorObject . errors . push ( { 'detail' : 'Dates have not been provided' } ) ;
126
+ }
127
+ if ( numberOfTickets === 0 ) {
128
+ errorObject . errors . push ( { 'detail' : 'Tickets are required for publishing event' } ) ;
129
+ }
130
+ throw ( errorObject ) ;
131
+ }
115
132
} ,
116
133
117
134
/**
@@ -128,8 +145,9 @@ export default Mixin.create(MutableArray, CustomFormMixin, {
128
145
this . transitionToRoute ( route , data . id ) ;
129
146
} )
130
147
. catch ( e => {
131
- console . error ( e ) ;
132
- this . notify . error ( this . l10n . t ( e . errors [ 0 ] . detail ) ) ;
148
+ e . errors . forEach ( error => {
149
+ this . notify . error ( this . l10n . tVar ( error . detail ) ) ;
150
+ } ) ;
133
151
} )
134
152
. finally ( ( ) => {
135
153
this . set ( 'isLoading' , false ) ;
0 commit comments