(core) Adding schema validation for records endpoint

Summary:
Adding validation for api /records endpoint, that checks if the json payload is valid.
Modifying POST /records endpoint to allow creating blank or partial records.

Test Plan: Updated tests

Reviewers: alexmojaki

Reviewed By: alexmojaki

Differential Revision: https://phab.getgrist.com/D3061
This commit is contained in:
Jarosław Sadziński
2021-10-15 11:31:13 +02:00
parent 276adc5f51
commit 3e661db38c
10 changed files with 190 additions and 20 deletions

View File

@@ -1,3 +1,6 @@
/**
* This module was automatically generated by `ts-interface-builder`
*/
import * as t from "ts-interface-checker";
// tslint:disable:object-literal-key-quotes

View File

@@ -1,3 +1,6 @@
/**
* This module was automatically generated by `ts-interface-builder`
*/
import * as t from "ts-interface-checker";
// tslint:disable:object-literal-key-quotes

View File

@@ -0,0 +1,34 @@
/**
* This module was automatically generated by `ts-interface-builder`
*/
import * as t from "ts-interface-checker";
// tslint:disable:object-literal-key-quotes
export const GristObjCode = t.enumtype({
"List": "L",
"Dict": "O",
"DateTime": "D",
"Date": "d",
"Skip": "S",
"Censored": "C",
"Reference": "R",
"ReferenceList": "r",
"Exception": "E",
"Pending": "P",
"Unmarshallable": "U",
"Versions": "V",
});
export const CellValue = t.union("number", "string", "boolean", "null", t.tuple("GristObjCode", t.rest(t.array("unknown"))));
export const RowRecord = t.iface([], {
"id": "number",
[t.indexKey]: "CellValue",
});
const exportedTypeSuite: t.ITypeSuite = {
GristObjCode,
CellValue,
RowRecord,
};
export default exportedTypeSuite;

View File

@@ -1,3 +1,6 @@
/**
* This module was automatically generated by `ts-interface-builder`
*/
import * as t from "ts-interface-checker";
// tslint:disable:object-literal-key-quotes

View File

@@ -1,3 +1,6 @@
/**
* This module was automatically generated by `ts-interface-builder`
*/
import * as t from "ts-interface-checker";
// tslint:disable:object-literal-key-quotes

View File

@@ -1,3 +1,6 @@
/**
* This module was automatically generated by `ts-interface-builder`
*/
import * as t from "ts-interface-checker";
// tslint:disable:object-literal-key-quotes