Merge pull request #78 from 4Science/coar-notify-7-part-two-refactor-enqueue

ldn message: move enqueueretry from get to post
This commit is contained in:
frabacche
2024-03-04 13:25:32 +01:00
committed by GitHub

View File

@@ -13,7 +13,7 @@ import { map, mergeMap, switchMap, tap } from 'rxjs/operators';
import { getAllSucceededRemoteDataPayload, getFirstCompletedRemoteData } from '../../../core/shared/operators'; import { getAllSucceededRemoteDataPayload, getFirstCompletedRemoteData } from '../../../core/shared/operators';
import { LdnServicesService } from '../../admin-ldn-services/ldn-services-data/ldn-services-data.service'; import { LdnServicesService } from '../../admin-ldn-services/ldn-services-data/ldn-services-data.service';
import { ItemDataService } from '../../../core/data/item-data.service'; import { ItemDataService } from '../../../core/data/item-data.service';
import { GetRequest } from '../../../core/data/request.models'; import { PostRequest } from '../../../core/data/request.models';
import { RestRequest } from '../../../core/data/rest-request.model'; import { RestRequest } from '../../../core/data/rest-request.model';
/** /**
@@ -73,28 +73,28 @@ export class AdminNotifyMessagesService extends IdentifiableDataService<AdminNot
const requestId = this.requestService.generateRequestId(); const requestId = this.requestService.generateRequestId();
return this.halService.getEndpoint(this.reprocessEndpoint).pipe( return this.halService.getEndpoint(this.reprocessEndpoint).pipe(
map(endpoint => endpoint.replace('{id}', message.id)), map(endpoint => endpoint.replace('{id}', message.id)),
map((endpointURL: string) => new GetRequest(requestId, endpointURL)), map((endpointURL: string) => new PostRequest(requestId, endpointURL)),
tap(request => this.requestService.send(request)), tap(request => this.requestService.send(request)),
switchMap((request: RestRequest) => this.rdbService.buildFromRequestUUID<AdminNotifyMessage>(request.uuid)), switchMap((request: RestRequest) => this.rdbService.buildFromRequestUUID<AdminNotifyMessage>(request.uuid)),
getFirstCompletedRemoteData(), getFirstCompletedRemoteData(),
getAllSucceededRemoteDataPayload(), getAllSucceededRemoteDataPayload(),
mergeMap(reprocessedMessage => this.getDetailedMessages([reprocessedMessage])), mergeMap(reprocessedMessage => this.getDetailedMessages([reprocessedMessage])),
).pipe( ).pipe(
mergeMap((newMessages) => messageSubject.pipe( mergeMap((newMessages) => messageSubject.pipe(
map(messages => { map(messages => {
const detailedReprocessedMessage = newMessages[0]; const detailedReprocessedMessage = newMessages[0];
const messageToUpdate = messages.find(currentMessage => currentMessage.id === message.id); const messageToUpdate = messages.find(currentMessage => currentMessage.id === message.id);
const indexOfMessageToUpdate = messages.indexOf(messageToUpdate); const indexOfMessageToUpdate = messages.indexOf(messageToUpdate);
detailedReprocessedMessage.target = message.target; detailedReprocessedMessage.target = message.target;
detailedReprocessedMessage.object = message.object; detailedReprocessedMessage.object = message.object;
detailedReprocessedMessage.origin = message.origin; detailedReprocessedMessage.origin = message.origin;
detailedReprocessedMessage.context = message.context; detailedReprocessedMessage.context = message.context;
messages[indexOfMessageToUpdate] = detailedReprocessedMessage; messages[indexOfMessageToUpdate] = detailedReprocessedMessage;
return messages; return messages;
}) })
)), )),
); );
} }
} }