|
1 | 1 | import { Component, OnInit } from '@angular/core'; |
2 | 2 | import { ActivatedRoute, Router } from '@angular/router'; |
3 | | -import { map, take } from 'rxjs/operators'; |
| 3 | +import { map, switchMap, take } from 'rxjs/operators'; |
4 | 4 | import { Registration } from '../../core/shared/registration.model'; |
5 | 5 | import { Observable } from 'rxjs'; |
6 | 6 | import { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms'; |
@@ -158,20 +158,24 @@ export class CreateProfileComponent implements OnInit { |
158 | 158 | }; |
159 | 159 |
|
160 | 160 | // If the End User Agreement cookie is accepted, add end-user agreement metadata to the user |
161 | | - this.endUserAgreementService.isUserAgreementEnabled().subscribe((isUserAgreementEnabled) => { |
162 | | - if (isUserAgreementEnabled && this.userAgreementAccept) { |
163 | | - values.metadata[END_USER_AGREEMENT_METADATA_FIELD] = [ |
164 | | - { |
165 | | - value: String(true) |
166 | | - } |
167 | | - ]; |
168 | | - this.endUserAgreementService.removeCookieAccepted(); |
169 | | - } |
170 | | - }); |
171 | | - |
172 | | - const eperson = Object.assign(new EPerson(), values); |
173 | | - this.ePersonDataService.createEPersonForToken(eperson, this.token).pipe( |
174 | | - getFirstCompletedRemoteData(), |
| 161 | + this.endUserAgreementService.isUserAgreementEnabled().pipe( |
| 162 | + map((isUserAgreementEnabled: boolean) => { |
| 163 | + if (isUserAgreementEnabled && this.userAgreementAccept) { |
| 164 | + values.metadata[END_USER_AGREEMENT_METADATA_FIELD] = [ |
| 165 | + { |
| 166 | + value: String(true) |
| 167 | + } |
| 168 | + ]; |
| 169 | + this.endUserAgreementService.removeCookieAccepted(); |
| 170 | + } |
| 171 | + |
| 172 | + return Object.assign(new EPerson(), values); |
| 173 | + }), |
| 174 | + switchMap((eperson: EPerson) => { |
| 175 | + return this.ePersonDataService.createEPersonForToken(eperson, this.token).pipe( |
| 176 | + getFirstCompletedRemoteData(), |
| 177 | + ); |
| 178 | + }) |
175 | 179 | ).subscribe((rd: RemoteData<EPerson>) => { |
176 | 180 | if (rd.hasSucceeded) { |
177 | 181 | this.notificationsService.success(this.translateService.get('register-page.create-profile.submit.success.head'), |
|
0 commit comments