Merge branch 'master' into remove-union

This commit is contained in:
undefined committed 2024-10-22 07:02:32 +08:00
commit 29b970e991
7 files changed
+60 -68

No files matched your search

+4 -9
View File
@@ -338,15 +338,10 @@ class DiscussionDetailHandler extends DiscussionHandler {
}
@param('did', Types.ObjectId)
async postStar(domainId: string, did: ObjectId) {
await discussion.setStar(domainId, did, this.user._id, true);
this.back({ star: true });
}
@param('did', Types.ObjectId)
async postUnstar(domainId: string, did: ObjectId) {
await discussion.setStar(domainId, did, this.user._id, false);
this.back({ star: false });
@param('star', Types.Boolean)
async postStar(domainId: string, did: ObjectId, star = false) {
await discussion.setStar(domainId, did, this.user._id, star);
this.back({ star });
}
}
+41 -30
View File
@@ -352,28 +352,43 @@ class HomeSecurityHandler extends Handler {
}
function set(s: Setting, key: string, value: any) {
if (s) {
if (s.family === 'setting_storage') return undefined;
if (s.flag & setting.FLAG_DISABLED) return undefined;
if ((s.flag & setting.FLAG_SECRET) && !value) return undefined;
if (s.type === 'boolean') {
if (value === 'on') return true;
return false;
}
if (s.type === 'number') {
if (!Number.isSafeInteger(+value)) throw new ValidationError(key);
return +value;
}
if (s.subType === 'yaml') {
try {
yaml.load(value);
} catch (e) {
throw new ValidationError(key);
}
}
return value;
if (!s) return undefined;
if (s.family === 'setting_storage') return undefined;
if (s.flag & setting.FLAG_DISABLED) return undefined;
if ((s.flag & setting.FLAG_SECRET) && !value) return undefined;
if (s.type === 'boolean') {
if (value === 'on') return true;
return false;
}
return undefined;
if (s.type === 'number') {
if (!Number.isSafeInteger(+value)) throw new ValidationError(key);
return +value;
}
if (s.type === 'float') {
if (Number.isNaN(+value)) throw new ValidationError(key);
return +value;
}
if (['json', 'yaml', 'markdown', 'textarea'].includes(s.type)) {
if (!Types.Content[1](value)) throw new ValidationError(key);
}
if (s.type === 'text') {
if (!Types.String[1](value)) throw new ValidationError(key);
}
if (s.subType === 'yaml') {
try {
yaml.load(value);
} catch (e) {
throw new ValidationError(key);
}
}
if (s.subType === 'json') {
try {
JSON.parse(value);
} catch (e) {
throw new ValidationError(key);
}
}
return value;
}
class HomeSettingsHandler extends Handler {
@@ -484,15 +499,11 @@ class HomeDomainHandler extends Handler {
}
@param('id', Types.String)
async postStar(domainId: string, id: string) {
await user.setById(this.user._id, { pinnedDomains: [...this.user.pinnedDomains, id] });
this.back({ star: true });
}
@param('id', Types.String)
async postUnstar(domainId: string, id: string) {
await user.setById(this.user._id, { pinnedDomains: this.user.pinnedDomains.filter((i) => i !== id) });
this.back({ star: false });
@param('star', Types.Boolean)
async postStar({ }, id: string, star = false) {
if (star) await user.setById(this.user._id, { pinnedDomains: [...this.user.pinnedDomains, id] });
else user.setById(this.user._id, { pinnedDomains: this.user.pinnedDomains.filter((i) => i !== id) });
this.back({ star });
}
}