mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-17 15:03:07 +00:00
[CST-4875] Fixed response handling
This commit is contained in:
@@ -18,6 +18,7 @@ import { DSOChangeAnalyzer } from 'src/app/core/data/dso-change-analyzer.service
|
||||
import { getFirstSucceededRemoteData, getRemoteDataPayload, getFirstCompletedRemoteData } from 'src/app/core/shared/operators';
|
||||
import { HttpOptions } from '../dspace-rest/dspace-rest.service';
|
||||
import { PostRequest } from 'src/app/core/data/request.models';
|
||||
import { RemoteData } from 'src/app/core/data/remote-data';
|
||||
|
||||
/**
|
||||
* Service for checking and managing the status of the current end user agreement
|
||||
@@ -58,7 +59,7 @@ export class FeedbackDataService extends DataService<Feedback> {
|
||||
* @return Observable<Feedback>
|
||||
* server response
|
||||
*/
|
||||
createFeedback(payoload: Feedback): Observable<Feedback> {
|
||||
createFeedback(payoload: Feedback): Observable<RemoteData<Feedback>> {
|
||||
return this.postToEndpoint(this.linkPath, payoload);
|
||||
}
|
||||
|
||||
@@ -74,7 +75,7 @@ export class FeedbackDataService extends DataService<Feedback> {
|
||||
* @return Observable<Feedback>
|
||||
* server response
|
||||
*/
|
||||
public postToEndpoint(linkName: string, body: any, options?: HttpOptions): Observable<Feedback> {
|
||||
public postToEndpoint(linkName: string, body: any, options?: HttpOptions): Observable<RemoteData<Feedback>> {
|
||||
const requestId = this.requestService.generateRequestId();
|
||||
const href$ = this.halService.getEndpoint(linkName).pipe(
|
||||
filter((href: string) => isNotEmpty(href)),
|
||||
@@ -87,7 +88,7 @@ export class FeedbackDataService extends DataService<Feedback> {
|
||||
|
||||
return this.rdbService.buildFromRequestUUID<Feedback>(requestId).pipe(
|
||||
getFirstCompletedRemoteData(),
|
||||
getRemoteDataPayload(),
|
||||
// getRemoteDataPayload(),
|
||||
);
|
||||
}
|
||||
|
||||
|
@@ -1,8 +1,5 @@
|
||||
import { autoserialize, inheritSerialization } from 'cerialize';
|
||||
import { Observable } from 'rxjs';
|
||||
import { link, typedObject } from '../../cache/builders/build-decorators';
|
||||
import { PaginatedList } from '../../data/paginated-list.model';
|
||||
import { RemoteData } from '../../data/remote-data';
|
||||
|
||||
import { DSpaceObject } from '../../shared/dspace-object.model';
|
||||
import { HALLink } from '../../shared/hal-link.model';
|
||||
|
@@ -27,7 +27,7 @@
|
||||
class="alert">
|
||||
<ds-error *ngIf="feedbackForm.controls.message.errors?.required" message="{{'info.feedback.error.message.required' | translate}}"></ds-error>
|
||||
</ng-container>
|
||||
<input class="form-control" formControlName="page" name="page" type="hidden" value="{{routeService.getPreviousUrl() | async}}"
|
||||
<input class="form-control" formControlName="page" name="page" type="hidden" [value]="routeService.getPreviousUrl() | async"
|
||||
/>
|
||||
<div class="row">
|
||||
<div class="control-group col-sm-12">
|
||||
|
@@ -0,0 +1,3 @@
|
||||
ds-error{
|
||||
color:red;
|
||||
}
|
@@ -1,3 +1,6 @@
|
||||
import { isSuccess } from './../../../core/data/request.reducer';
|
||||
import { RemoteData } from './../../../core/data/remote-data';
|
||||
import { NoContent } from './../../../core/shared/NoContent.model';
|
||||
import { FeedbackDataService } from './../../../core/feedback/feedback-data.service';
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { RouteService } from 'src/app/core/services/route.service';
|
||||
@@ -41,20 +44,30 @@ export class FeedbackContentComponent implements OnInit {
|
||||
* On init check if user is logged in and use its email if so
|
||||
*/
|
||||
ngOnInit() {
|
||||
|
||||
this.authService.getAuthenticatedUserFromStore().subscribe((user: EPerson) => {
|
||||
if (!!user) {
|
||||
this.feedbackForm.patchValue({ email: user.email });
|
||||
}
|
||||
});
|
||||
|
||||
this.routeService.getPreviousUrl().subscribe((url: string) => {
|
||||
this.feedbackForm.patchValue({ page: url });
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Function to create the feedback from form values
|
||||
*/
|
||||
createFeedback() {
|
||||
this.feedbackDataService.createFeedback(this.feedbackForm.value).subscribe((response: Feedback) => {
|
||||
this.notificationsService.success(this.translate.instant('info.feedback.create.success'));
|
||||
this.feedbackForm.reset();
|
||||
createFeedback(): void {
|
||||
this.feedbackDataService.createFeedback(this.feedbackForm.value).subscribe((response: RemoteData<NoContent>) => {
|
||||
if (response.isSuccess) {
|
||||
this.notificationsService.success(this.translate.instant('info.feedback.create.success'));
|
||||
this.feedbackForm.reset();
|
||||
} else {
|
||||
this.notificationsService.error(response.errorMessage);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user