extract methods here

This commit is contained in:
Bruno Windels 2021-06-24 12:56:23 +02:00
parent a4a7c23148
commit 061f44f475

View file

@ -64,17 +64,7 @@ export class BaseEventEntry extends BaseEntry {
const relationEntry = entry.redactingEntry || entry; const relationEntry = entry.redactingEntry || entry;
if (relationEntry.isRelatedToId(this.id)) { if (relationEntry.isRelatedToId(this.id)) {
if (relationEntry.relation.rel_type === ANNOTATION_RELATION_TYPE) { if (relationEntry.relation.rel_type === ANNOTATION_RELATION_TYPE) {
if (!this._pendingAnnotations) { if (this._addPendingAnnotation(entry)) {
this._pendingAnnotations = new Map();
}
const {key} = (entry.redactingEntry || entry).relation;
if (key) {
let annotation = this._pendingAnnotations.get(key);
if (!annotation) {
annotation = new PendingAnnotation();
this._pendingAnnotations.set(key, annotation);
}
annotation.add(entry);
return "pendingAnnotations"; return "pendingAnnotations";
} }
} }
@ -100,15 +90,7 @@ export class BaseEventEntry extends BaseEntry {
const relationEntry = entry.redactingEntry || entry; const relationEntry = entry.redactingEntry || entry;
if (relationEntry.isRelatedToId(this.id)) { if (relationEntry.isRelatedToId(this.id)) {
if (relationEntry.relation?.rel_type === ANNOTATION_RELATION_TYPE && this._pendingAnnotations) { if (relationEntry.relation?.rel_type === ANNOTATION_RELATION_TYPE && this._pendingAnnotations) {
const {key} = (entry.redactingEntry || entry).relation; if (this._removePendingAnnotation(entry)) {
if (key) {
let annotation = this._pendingAnnotations.get(key);
if (annotation.remove(entry) && annotation.isEmpty) {
this._pendingAnnotations.delete(key);
}
if (this._pendingAnnotations.size === 0) {
this._pendingAnnotations = null;
}
return "pendingAnnotations"; return "pendingAnnotations";
} }
} }
@ -116,6 +98,38 @@ export class BaseEventEntry extends BaseEntry {
} }
} }
_addPendingAnnotation(entry) {
if (!this._pendingAnnotations) {
this._pendingAnnotations = new Map();
}
const {key} = (entry.redactingEntry || entry).relation;
if (key) {
let annotation = this._pendingAnnotations.get(key);
if (!annotation) {
annotation = new PendingAnnotation();
this._pendingAnnotations.set(key, annotation);
}
annotation.add(entry);
return true;
}
return false;
}
_removePendingAnnotation(entry) {
const {key} = (entry.redactingEntry || entry).relation;
if (key) {
let annotation = this._pendingAnnotations.get(key);
if (annotation.remove(entry) && annotation.isEmpty) {
this._pendingAnnotations.delete(key);
}
if (this._pendingAnnotations.size === 0) {
this._pendingAnnotations = null;
}
return true;
}
return false;
}
async abortPendingRedaction() { async abortPendingRedaction() {
if (this._pendingRedactions) { if (this._pendingRedactions) {
for (const pee of this._pendingRedactions) { for (const pee of this._pendingRedactions) {