From 6899cb632fc92244b9a4c6d17664e0ce8c8ecc67 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Fri, 29 Jan 2021 19:58:21 +0000 Subject: [PATCH] --- .../AyaNova/Controllers/DataListSavedFilterController.cs | 7 +++++++ .../biz/{DataListViewBiz.cs => DataListSavedFilterBiz.cs} | 0 server/AyaNova/models/DataListSavedFilter.cs | 6 ++++-- server/AyaNova/util/AySchema.cs | 6 +++--- 4 files changed, 14 insertions(+), 5 deletions(-) rename server/AyaNova/biz/{DataListViewBiz.cs => DataListSavedFilterBiz.cs} (100%) diff --git a/server/AyaNova/Controllers/DataListSavedFilterController.cs b/server/AyaNova/Controllers/DataListSavedFilterController.cs index cba00404..c7056b45 100644 --- a/server/AyaNova/Controllers/DataListSavedFilterController.cs +++ b/server/AyaNova/Controllers/DataListSavedFilterController.cs @@ -159,6 +159,13 @@ namespace AyaNova.Api.Controllers if (!ModelState.IsValid) return BadRequest(new ApiErrorResponse(ModelState)); + //Default filters can never be created from outside + //they are only ever created from inside so a post with a default=true is always invalid + if (inObj.Default == true) + { + return BadRequest(new ApiErrorResponse(ApiErrorCode.INVALID_OPERATION, "default", "Default filters can only be created internally")); + } + //Create and validate DataListSavedFilter o = await biz.CreateAsync(inObj); if (o == null) diff --git a/server/AyaNova/biz/DataListViewBiz.cs b/server/AyaNova/biz/DataListSavedFilterBiz.cs similarity index 100% rename from server/AyaNova/biz/DataListViewBiz.cs rename to server/AyaNova/biz/DataListSavedFilterBiz.cs diff --git a/server/AyaNova/models/DataListSavedFilter.cs b/server/AyaNova/models/DataListSavedFilter.cs index bbd7fc8c..2148780e 100644 --- a/server/AyaNova/models/DataListSavedFilter.cs +++ b/server/AyaNova/models/DataListSavedFilter.cs @@ -16,10 +16,12 @@ namespace AyaNova.Models public string Name { get; set; }//max 255 characters ascii set [Required] public bool Public { get; set; } + [Required] + public bool Default { get; set; } //is the users default filter for this listkey [Required, MaxLength(255)] public string ListKey { get; set; }//max 255 characters ascii set - public string Filter { get; set; }//JSON filter object representing DataListFilterOption - //filter:[{column:"PartPartNumber",any:true/false,items:[{op: "=",value: "400735"}]}] + public string Filter { get; set; }//JSON serialized List object of DataListBase + } diff --git a/server/AyaNova/util/AySchema.cs b/server/AyaNova/util/AySchema.cs index 9094d360..49d5580d 100644 --- a/server/AyaNova/util/AySchema.cs +++ b/server/AyaNova/util/AySchema.cs @@ -504,13 +504,13 @@ $BODY$ LANGUAGE PLPGSQL STABLE"); ////////////////////////////////////////////////// - //DATAFILTER / DATALISTTEMPLATE tables + //DATALISTSAVEDFILTER if (currentSchema < 7) { LogUpdateMessage(log); - await ExecQueryAsync("CREATE TABLE adatalistsavedfilter (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, userid BIGINT NOT NULL, name TEXT NOT NULL UNIQUE, public BOOL NOT NULL," + - "listkey VARCHAR(255) NOT NULL, filter TEXT)"); + await ExecQueryAsync("CREATE TABLE adatalistsavedfilter (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, userid BIGINT NOT NULL, name TEXT NOT NULL, public BOOL NOT NULL, " + + "default BOOL NOT NULL, listkey VARCHAR(255) NOT NULL, filter TEXT)"); await SetSchemaLevelAsync(++currentSchema); }