Introduce WebAnnotationSerializer.
import Note from '../store/noteRecord';
class WebAnnotationSerializer {
static serialize = (note) => {
const categories = note.categories;
const baseAnnotation = {
'@context': "http://www.w3.org/ns/anno.jsonld",
"type": "Annotation",
}
const source = "/session/" + note.session + "/notes/" + note._id;
return categories.map((category, index) => {
let annotation = Object.assign({}, baseAnnotation, {
id: index
});
if (category.hasOwnProperty('hasComment') && category.hasComment) {
const body = {
"type": "TextualBody",
"value": category.comment,
"format": "text/plain"
};
annotation = Object.assign({}, annotation, { body })
}
return Object.assign({}, annotation, {
"target": {
"source": source,
"selector": {
"type": "TextQuoteSelector",
"exact": category.text,
}
}
})
});
}
}
export default WebAnnotationSerializer