ReactiveCache, id Methods can contain now selector to get the first object (findOne())

This commit is contained in:
Martin Filser 2023-02-03 23:00:41 +01:00
parent bf27ffb92e
commit 3a7eece244

View file

@ -3,60 +3,60 @@ import { Jsons } from './jsons';
// Server isn't reactive, so search for the data always. // Server isn't reactive, so search for the data always.
ReactiveCacheServer = { ReactiveCacheServer = {
getBoard(id) { getBoard(idOrFirstObjectSelector) {
const ret = Boards.findOne(id); const ret = Boards.findOne(idOrFirstObjectSelector);
return ret; return ret;
}, },
getList(id) { getList(idOrFirstObjectSelector) {
const ret = Lists.findOne(id); const ret = Lists.findOne(idOrFirstObjectSelector);
return ret; return ret;
}, },
getSwimlane(id) { getSwimlane(idOrFirstObjectSelector) {
const ret = Swimlanes.findOne(id); const ret = Swimlanes.findOne(idOrFirstObjectSelector);
return ret; return ret;
}, },
getChecklist(id) { getChecklist(idOrFirstObjectSelector) {
const ret = Checklists.findOne(id); const ret = Checklists.findOne(idOrFirstObjectSelector);
return ret; return ret;
}, },
getChecklistItem(id) { getChecklistItem(idOrFirstObjectSelector) {
const ret = ChecklistItems.findOne(id); const ret = ChecklistItems.findOne(idOrFirstObjectSelector);
return ret; return ret;
}, },
getCard(id) { getCard(idOrFirstObjectSelector) {
const ret = Cards.findOne(id); const ret = Cards.findOne(idOrFirstObjectSelector);
return ret; return ret;
}, },
getCardComment(id) { getCardComment(idOrFirstObjectSelector) {
const ret = CardComments.findOne(id); const ret = CardComments.findOne(idOrFirstObjectSelector);
return ret; return ret;
}, },
getCustomField(id) { getCustomField(idOrFirstObjectSelector) {
const ret = CustomFields.findOne(id); const ret = CustomFields.findOne(idOrFirstObjectSelector);
return ret; return ret;
}, },
getCustomFields(selector) { getCustomFields(selector) {
const ret = CustomFields.find(selector).fetch(); const ret = CustomFields.find(selector).fetch();
return ret; return ret;
}, },
getAttachment(id) { getAttachment(idOrFirstObjectSelector) {
const ret = Attachments.findOne(id); const ret = Attachments.findOne(idOrFirstObjectSelector);
return ret; return ret;
}, },
getUser(id) { getUser(idOrFirstObjectSelector) {
const ret = Users.findOne(id); const ret = Users.findOne(idOrFirstObjectSelector);
return ret; return ret;
}, },
getOrg(id) { getOrg(idOrFirstObjectSelector) {
const ret = Org.findOne(id); const ret = Org.findOne(idOrFirstObjectSelector);
return ret; return ret;
}, },
getTeam(id) { getTeam(idOrFirstObjectSelector) {
const ret = Team.findOne(id); const ret = Team.findOne(idOrFirstObjectSelector);
return ret; return ret;
}, },
getActivity(id) { getActivity(idOrFirstObjectSelector) {
const ret = Activities.findOne(id); const ret = Activities.findOne(idOrFirstObjectSelector);
return ret; return ret;
}, },
getCurrentSetting() { getCurrentSetting() {
@ -73,144 +73,144 @@ ReactiveCacheServer = {
// saving the result has a big advantage if the query is big and often searched for the same data again and again // saving the result has a big advantage if the query is big and often searched for the same data again and again
// if the data is changed in the client, the data is saved to the server and depending code is reactive called again // if the data is changed in the client, the data is saved to the server and depending code is reactive called again
ReactiveCacheClient = { ReactiveCacheClient = {
getBoard(id) { getBoard(idOrFirstObjectSelector) {
if (!this.__board) { if (!this.__board) {
this.__board = new DataCache(boardId => { this.__board = new DataCache(_idOrFirstObjectSelector => {
const _ret = Boards.findOne(boardId); const _ret = Boards.findOne(Jsons.parse(_idOrFirstObjectSelector));
return _ret; return _ret;
}); });
} }
const ret = this.__board.get(id); const ret = this.__board.get(Jsons.stringify(idOrFirstObjectSelector));
return ret; return ret;
}, },
getList(id) { getList(idOrFirstObjectSelector) {
if (!this.__list) { if (!this.__list) {
this.__list = new DataCache(listId => { this.__list = new DataCache(_idOrFirstObjectSelector => {
const _ret = Lists.findOne(listId); const _ret = Lists.findOne(Jsons.parse(_idOrFirstObjectSelector));
return _ret; return _ret;
}); });
} }
const ret = this.__list.get(id); const ret = this.__list.get(Jsons.stringify(idOrFirstObjectSelector));
return ret; return ret;
}, },
getSwimlane(id) { getSwimlane(idOrFirstObjectSelector) {
if (!this.__swimlane) { if (!this.__swimlane) {
this.__swimlane = new DataCache(swimlaneId => { this.__swimlane = new DataCache(_idOrFirstObjectSelector => {
const _ret = Swimlanes.findOne(swimlaneId); const _ret = Swimlanes.findOne(Jsons.parse(_idOrFirstObjectSelector));
return _ret; return _ret;
}); });
} }
const ret = this.__swimlane.get(id); const ret = this.__swimlane.get(Jsons.stringify(idOrFirstObjectSelector));
return ret; return ret;
}, },
getChecklist(id) { getChecklist(idOrFirstObjectSelector) {
if (!this.__checklist) { if (!this.__checklist) {
this.__checklist = new DataCache(checklistId => { this.__checklist = new DataCache(_idOrFirstObjectSelector => {
const _ret = Checklists.findOne(checklistId); const _ret = Checklists.findOne(Jsons.parse(_idOrFirstObjectSelector));
return _ret; return _ret;
}); });
} }
const ret = this.__checklist.get(id); const ret = this.__checklist.get(Jsons.stringify(idOrFirstObjectSelector));
return ret; return ret;
}, },
getChecklistItem(id) { getChecklistItem(idOrFirstObjectSelector) {
if (!this.__checklistItem) { if (!this.__checklistItem) {
this.__checklistItem = new DataCache(_id => { this.__checklistItem = new DataCache(_idOrFirstObjectSelector => {
const _ret = ChecklistItems.findOne(_id); const _ret = ChecklistItems.findOne(Jsons.parse(_idOrFirstObjectSelector));
return _ret; return _ret;
}); });
} }
const ret = this.__checklistItem.get(id); const ret = this.__checklistItem.get(Jsons.stringify(idOrFirstObjectSelector));
return ret; return ret;
}, },
getCard(id) { getCard(idOrFirstObjectSelector) {
if (!this.__card) { if (!this.__card) {
this.__card = new DataCache(cardId => { this.__card = new DataCache(_idOrFirstObjectSelector => {
const _ret = Cards.findOne(cardId); const _ret = Cards.findOne(Jsons.parse(_idOrFirstObjectSelector));
return _ret; return _ret;
}); });
} }
const ret = this.__card.get(id); const ret = this.__card.get(Jsons.stringify(idOrFirstObjectSelector));
return ret; return ret;
}, },
getCardComment(id) { getCardComment(idOrFirstObjectSelector) {
if (!this.__cardComment) { if (!this.__cardComment) {
this.__cardComment = new DataCache(_id => { this.__cardComment = new DataCache(_idOrFirstObjectSelector => {
const _ret = CardComments.findOne(_id); const _ret = CardComments.findOne(Jsons.parse(_idOrFirstObjectSelector));
return _ret; return _ret;
}); });
} }
const ret = this.__cardComment.get(id); const ret = this.__cardComment.get(Jsons.stringify(idOrFirstObjectSelector));
return ret; return ret;
}, },
getCustomField(id) { getCustomField(idOrFirstObjectSelector) {
if (!this.__customField) { if (!this.__customField) {
this.__customField = new DataCache(customFieldId => { this.__customField = new DataCache(_idOrFirstObjectSelector => {
const _ret = CustomFields.findOne(customFieldId); const _ret = CustomFields.findOne(Jsons.parse(_idOrFirstObjectSelector));
return _ret; return _ret;
}); });
} }
const ret = this.__customField.get(id); const ret = this.__customField.get(Jsons.stringify(idOrFirstObjectSelector));
return ret; return ret;
}, },
getCustomFields(selector) { getCustomFields(selector) {
if (!this.__customFields) { if (!this.__customFields) {
this.__customFields = new DataCache(sel => { this.__customFields = new DataCache(_selector => {
const _ret = CustomFields.find(Jsons.parse(sel)).fetch(); const _ret = CustomFields.find(Jsons.parse(_selector)).fetch();
return _ret; return _ret;
}); });
} }
const ret = this.__customFields.get(Jsons.stringify(selector)); const ret = this.__customFields.get(Jsons.stringify(selector));
return ret; return ret;
}, },
getAttachment(id) { getAttachment(idOrFirstObjectSelector) {
if (!this.__attachment) { if (!this.__attachment) {
this.__attachment = new DataCache(_id => { this.__attachment = new DataCache(_idOrFirstObjectSelector => {
const _ret = Attachments.findOne(_id); const _ret = Attachments.findOne(Jsons.parse(_idOrFirstObjectSelector));
return _ret; return _ret;
}); });
} }
const ret = this.__attachment.get(id); const ret = this.__attachment.get(Jsons.stringify(idOrFirstObjectSelector));
return ret; return ret;
}, },
getUser(id) { getUser(idOrFirstObjectSelector) {
if (!this.__user) { if (!this.__user) {
this.__user = new DataCache(userId => { this.__user = new DataCache(_idOrFirstObjectSelector => {
const _ret = Users.findOne(userId); const _ret = Users.findOne(Jsons.parse(_idOrFirstObjectSelector));
return _ret; return _ret;
}); });
} }
const ret = this.__user.get(id); const ret = this.__user.get(Jsons.stringify(idOrFirstObjectSelector));
return ret; return ret;
}, },
getOrg(id) { getOrg(idOrFirstObjectSelector) {
if (!this.__org) { if (!this.__org) {
this.__org = new DataCache(_id => { this.__org = new DataCache(_idOrFirstObjectSelector => {
const _ret = Org.findOne(_id); const _ret = Org.findOne(Jsons.parse(_idOrFirstObjectSelector));
return _ret; return _ret;
}); });
} }
const ret = this.__org.get(id); const ret = this.__org.get(Jsons.stringify(idOrFirstObjectSelector));
return ret; return ret;
}, },
getTeam(id) { getTeam(idOrFirstObjectSelector) {
if (!this.__team) { if (!this.__team) {
this.__team = new DataCache(_id => { this.__team = new DataCache(_idOrFirstObjectSelector => {
const _ret = Team.findOne(_id); const _ret = Team.findOne(Jsons.parse(_idOrFirstObjectSelector));
return _ret; return _ret;
}); });
} }
const ret = this.__team.get(id); const ret = this.__team.get(Jsons.stringify(idOrFirstObjectSelector));
return ret; return ret;
}, },
getActivity(id) { getActivity(idOrFirstObjectSelector) {
if (!this.__activity) { if (!this.__activity) {
this.__activity = new DataCache(_id => { this.__activity = new DataCache(_idOrFirstObjectSelector => {
const _ret = Activities.findOne(_id); const _ret = Activities.findOne(Jsons.parse(_idOrFirstObjectSelector));
return _ret; return _ret;
}); });
} }
const ret = this.__activity.get(id); const ret = this.__activity.get(Jsons.stringify(idOrFirstObjectSelector));
return ret; return ret;
}, },
getCurrentSetting() { getCurrentSetting() {
@ -242,75 +242,75 @@ ReactiveCacheClient = {
// - The Programmer hasn't to care about in which context he call's this class // - The Programmer hasn't to care about in which context he call's this class
// - having all queries together in 1 class to make it possible to see which queries in Wekan happens, e.g. with console.log // - having all queries together in 1 class to make it possible to see which queries in Wekan happens, e.g. with console.log
ReactiveCache = { ReactiveCache = {
getBoard(id) { getBoard(idOrFirstObjectSelector) {
let ret; let ret;
if (Meteor.isServer) { if (Meteor.isServer) {
ret = ReactiveCacheServer.getBoard(id); ret = ReactiveCacheServer.getBoard(idOrFirstObjectSelector);
} else { } else {
ret = ReactiveCacheClient.getBoard(id); ret = ReactiveCacheClient.getBoard(idOrFirstObjectSelector);
} }
return ret; return ret;
}, },
getList(id) { getList(idOrFirstObjectSelector) {
let ret; let ret;
if (Meteor.isServer) { if (Meteor.isServer) {
ret = ReactiveCacheServer.getList(id); ret = ReactiveCacheServer.getList(idOrFirstObjectSelector);
} else { } else {
ret = ReactiveCacheClient.getList(id); ret = ReactiveCacheClient.getList(idOrFirstObjectSelector);
} }
return ret; return ret;
}, },
getSwimlane(id) { getSwimlane(idOrFirstObjectSelector) {
let ret; let ret;
if (Meteor.isServer) { if (Meteor.isServer) {
ret = ReactiveCacheServer.getSwimlane(id); ret = ReactiveCacheServer.getSwimlane(idOrFirstObjectSelector);
} else { } else {
ret = ReactiveCacheClient.getSwimlane(id); ret = ReactiveCacheClient.getSwimlane(idOrFirstObjectSelector);
} }
return ret; return ret;
}, },
getChecklist(id) { getChecklist(idOrFirstObjectSelector) {
let ret; let ret;
if (Meteor.isServer) { if (Meteor.isServer) {
ret = ReactiveCacheServer.getChecklist(id); ret = ReactiveCacheServer.getChecklist(idOrFirstObjectSelector);
} else { } else {
ret = ReactiveCacheClient.getChecklist(id); ret = ReactiveCacheClient.getChecklist(idOrFirstObjectSelector);
} }
return ret; return ret;
}, },
getChecklistItem(id) { getChecklistItem(idOrFirstObjectSelector) {
let ret; let ret;
if (Meteor.isServer) { if (Meteor.isServer) {
ret = ReactiveCacheServer.getChecklistItem(id); ret = ReactiveCacheServer.getChecklistItem(idOrFirstObjectSelector);
} else { } else {
ret = ReactiveCacheClient.getChecklistItem(id); ret = ReactiveCacheClient.getChecklistItem(idOrFirstObjectSelector);
} }
return ret; return ret;
}, },
getCard(id) { getCard(idOrFirstObjectSelector) {
let ret; let ret;
if (Meteor.isServer) { if (Meteor.isServer) {
ret = ReactiveCacheServer.getCard(id); ret = ReactiveCacheServer.getCard(idOrFirstObjectSelector);
} else { } else {
ret = ReactiveCacheClient.getCard(id); ret = ReactiveCacheClient.getCard(idOrFirstObjectSelector);
} }
return ret; return ret;
}, },
getCardComment(id) { getCardComment(idOrFirstObjectSelector) {
let ret; let ret;
if (Meteor.isServer) { if (Meteor.isServer) {
ret = ReactiveCacheServer.getCardComment(id); ret = ReactiveCacheServer.getCardComment(idOrFirstObjectSelector);
} else { } else {
ret = ReactiveCacheClient.getCardComment(id); ret = ReactiveCacheClient.getCardComment(idOrFirstObjectSelector);
} }
return ret; return ret;
}, },
getCustomField(id) { getCustomField(idOrFirstObjectSelector) {
let ret; let ret;
if (Meteor.isServer) { if (Meteor.isServer) {
ret = ReactiveCacheServer.getCustomField(id); ret = ReactiveCacheServer.getCustomField(idOrFirstObjectSelector);
} else { } else {
ret = ReactiveCacheClient.getCustomField(id); ret = ReactiveCacheClient.getCustomField(idOrFirstObjectSelector);
} }
return ret; return ret;
}, },
@ -323,48 +323,48 @@ ReactiveCache = {
} }
return ret; return ret;
}, },
getAttachment(id) { getAttachment(idOrFirstObjectSelector) {
let ret; let ret;
if (Meteor.isServer) { if (Meteor.isServer) {
ret = ReactiveCacheServer.getAttachment(id); ret = ReactiveCacheServer.getAttachment(idOrFirstObjectSelector);
} else { } else {
ret = ReactiveCacheClient.getAttachment(id); ret = ReactiveCacheClient.getAttachment(idOrFirstObjectSelector);
} }
return ret; return ret;
}, },
getUser(id) { getUser(idOrFirstObjectSelector) {
let ret; let ret;
if (Meteor.isServer) { if (Meteor.isServer) {
ret = ReactiveCacheServer.getUser(id); ret = ReactiveCacheServer.getUser(idOrFirstObjectSelector);
} else { } else {
ret = ReactiveCacheClient.getUser(id); ret = ReactiveCacheClient.getUser(idOrFirstObjectSelector);
} }
return ret; return ret;
}, },
getOrg(id) { getOrg(idOrFirstObjectSelector) {
let ret; let ret;
if (Meteor.isServer) { if (Meteor.isServer) {
ret = ReactiveCacheServer.getOrg(id); ret = ReactiveCacheServer.getOrg(idOrFirstObjectSelector);
} else { } else {
ret = ReactiveCacheClient.getOrg(id); ret = ReactiveCacheClient.getOrg(idOrFirstObjectSelector);
} }
return ret; return ret;
}, },
getTeam(id) { getTeam(idOrFirstObjectSelector) {
let ret; let ret;
if (Meteor.isServer) { if (Meteor.isServer) {
ret = ReactiveCacheServer.getTeam(id); ret = ReactiveCacheServer.getTeam(idOrFirstObjectSelector);
} else { } else {
ret = ReactiveCacheClient.getTeam(id); ret = ReactiveCacheClient.getTeam(idOrFirstObjectSelector);
} }
return ret; return ret;
}, },
getActivity(id) { getActivity(idOrFirstObjectSelector) {
let ret; let ret;
if (Meteor.isServer) { if (Meteor.isServer) {
ret = ReactiveCacheServer.getActivity(id); ret = ReactiveCacheServer.getActivity(idOrFirstObjectSelector);
} else { } else {
ret = ReactiveCacheClient.getActivity(id); ret = ReactiveCacheClient.getActivity(idOrFirstObjectSelector);
} }
return ret; return ret;
}, },