Return errors when rule parsing is bad
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
b220c223ef
commit
4a0cb3475e
@ -145,7 +145,7 @@ export class Database {
|
||||
rawRules =
|
||||
"service realtimedb {\n match /* {\n allow read, write, list: if false; \n }\n}";
|
||||
// still json, so switching to
|
||||
} catch (err) {}
|
||||
} catch (err) { }
|
||||
|
||||
let { runner, error } = compileRule(rawRules);
|
||||
if (error) {
|
||||
@ -157,7 +157,7 @@ export class Database {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
async setRules(rawRules: string) {
|
||||
async setRules(rawRules: string): Promise<RuleError | undefined> {
|
||||
const { runner, error } = compileRule(rawRules);
|
||||
if (error) return error;
|
||||
await Settings.setDatabaseRules(this.name, rawRules);
|
||||
|
@ -112,7 +112,14 @@ AdminRoute.get("/database", (ctx) => {
|
||||
|
||||
if (publickey) await db.setPublicKey(publickey);
|
||||
|
||||
if (rules) await db.setRules(rules);
|
||||
if (rules) {
|
||||
const error = await db.setRules(rules);
|
||||
if (error) {
|
||||
ctx.status = 500;
|
||||
ctx.body = error;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (accesskey) await db.setAccessKey(accesskey);
|
||||
|
||||
|
Reference in New Issue
Block a user