Move every Avatars.find(idOrFirstObjectSelector, options) to the ReactiveCache

This commit is contained in:
Martin Filser 2023-03-12 20:07:53 +01:00
parent 36db6c6e2d
commit 538e197147
3 changed files with 59 additions and 2 deletions

View file

@ -172,7 +172,8 @@ BlazeComponent.extendComponent({
},
uploadedAvatars() {
return Avatars.find({ userId: Meteor.userId() }).each();
const ret = ReactiveCache.getAvatars({ userId: Meteor.userId() }, {}, true).each();
return ret;
},
isSelected() {

View file

@ -113,6 +113,17 @@ ReactiveCacheServer = {
}
return ret;
},
getAvatar(idOrFirstObjectSelector, options) {
const ret = Avatars.findOne(idOrFirstObjectSelector, options);
return ret;
},
getAvatars(selector, options, getQuery) {
let ret = Avatars.find(selector, options);
if (getQuery !== true) {
ret = ret.fetch();
}
return ret;
},
getUser(idOrFirstObjectSelector, options) {
const ret = Users.findOne(idOrFirstObjectSelector, options);
return ret;
@ -518,6 +529,33 @@ ReactiveCacheClient = {
const ret = this.__attachments.get(Jsons.stringify(select));
return ret;
},
getAvatar(idOrFirstObjectSelector, options) {
const idOrFirstObjectSelect = {idOrFirstObjectSelector, options}
if (!this.__avatar) {
this.__avatar = new DataCache(_idOrFirstObjectSelect => {
const __select = Jsons.parse(_idOrFirstObjectSelect);
const _ret = Avatars.findOne(__select.idOrFirstObjectSelector, __select.options);
return _ret;
});
}
const ret = this.__avatar.get(Jsons.stringify(idOrFirstObjectSelect));
return ret;
},
getAvatars(selector, options, getQuery) {
const select = {selector, options, getQuery}
if (!this.__avatars) {
this.__avatars = new DataCache(_select => {
const __select = Jsons.parse(_select);
let _ret = Avatars.find(__select.selector, __select.options);
if (__select.getQuery !== true) {
_ret = _ret.fetch();
}
return _ret;
});
}
const ret = this.__avatars.get(Jsons.stringify(select));
return ret;
},
getUser(idOrFirstObjectSelector, options) {
const idOrFirstObjectSelect = {idOrFirstObjectSelector, options}
if (!this.__user) {
@ -997,6 +1035,24 @@ ReactiveCache = {
}
return ret;
},
getAvatar(idOrFirstObjectSelector, options) {
let ret;
if (Meteor.isServer) {
ret = ReactiveCacheServer.getAvatar(idOrFirstObjectSelector, options);
} else {
ret = ReactiveCacheClient.getAvatar(idOrFirstObjectSelector, options);
}
return ret;
},
getAvatars(selector, options, getQuery) {
let ret;
if (Meteor.isServer) {
ret = ReactiveCacheServer.getAvatars(selector, options, getQuery);
} else {
ret = ReactiveCacheClient.getAvatars(selector, options, getQuery);
}
return ret;
},
getUser(idOrFirstObjectSelector, options) {
let ret;
if (Meteor.isServer) {

View file

@ -1,5 +1,5 @@
import Avatars from '../../models/avatars';
Meteor.publish('my-avatars', function() {
const ret = Avatars.find({ userId: this.userId }).cursor;
const ret = ReactiveCache.getAvatars({ userId: this.userId }, {}, true).cursor;
return ret;
});