Basic (rest) structure for page & record/module attachments

This commit is contained in:
Denis Arh
2019-03-01 00:30:46 +01:00
parent 79229ef1f1
commit 8d43907bd6
36 changed files with 2849 additions and 860 deletions
+228 -55
View File
@@ -191,6 +191,30 @@
}
]
}
},
{
"name": "upload",
"path": "/{pageID}/attachment",
"method": "POST",
"title": "Uploads attachment to page",
"parameters": {
"path": [
{
"type": "uint64",
"name": "pageID",
"required": true,
"title": "Page ID"
}
],
"post": [
{
"name": "upload",
"type": "*multipart.FileHeader",
"required": true,
"title": "File to upload"
}
]
}
}
]
},
@@ -320,21 +344,39 @@
}
]
}
},
}
]
},
{
"title": "Records",
"description": "CRM records ",
"entrypoint": "record",
"path": "/module/{moduleID}",
"authentication": [],
"struct": [
{
"name": "record/report",
"imports": [
"github.com/crusttech/crust/crm/types"
]
}
],
"parameters": {
"path": [
{
"type": "uint64",
"name": "moduleID",
"required": true,
"title": "Module ID"
}
]
},
"apis": [
{
"name": "report",
"method": "GET",
"title": "Generates report from module records",
"path": "/{moduleID}/report",
"path": "/report",
"parameters": {
"path": [
{
"type": "uint64",
"name": "moduleID",
"required": true,
"title": "Module ID"
}
],
"get": [
{
"type": "string",
@@ -358,19 +400,11 @@
}
},
{
"name": "record/list",
"name": "list",
"method": "GET",
"title": "List/read records from module section",
"path": "/{moduleID}/record",
"path": "/record",
"parameters": {
"path": [
{
"type": "uint64",
"name": "moduleID",
"required": true,
"title": "Module ID"
}
],
"get": [
{
"name": "filter",
@@ -400,19 +434,11 @@
}
},
{
"name": "record/create",
"name": "create",
"method": "POST",
"title": "Create record in module section",
"path": "/{moduleID}/record",
"path": "/record",
"parameters": {
"path": [
{
"type": "uint64",
"name": "moduleID",
"required": true,
"title": "Module ID"
}
],
"post": [
{
"type": "types.RecordValueSet",
@@ -424,18 +450,12 @@
}
},
{
"name": "record/read",
"name": "read",
"method": "GET",
"title": "Read records by ID from module section",
"path": "/{moduleID}/record/{recordID}",
"path": "/record/{recordID}",
"parameters": {
"path": [
{
"type": "uint64",
"name": "moduleID",
"required": true,
"title": "Module ID"
},
{
"type": "uint64",
"name": "recordID",
@@ -446,18 +466,12 @@
}
},
{
"name": "record/update",
"name": "update",
"method": "POST",
"title": "Update records in module section",
"path": "/{moduleID}/record/{recordID}",
"path": "/record/{recordID}",
"parameters": {
"path": [
{
"type": "uint64",
"name": "moduleID",
"required": true,
"title": "Module ID"
},
{
"type": "uint64",
"name": "recordID",
@@ -476,18 +490,12 @@
}
},
{
"name": "record/delete",
"name": "delete",
"method": "DELETE",
"title": "Delete record row from module section",
"path": "/{moduleID}/record/{recordID}",
"path": "/record/{recordID}",
"parameters": {
"path": [
{
"type": "uint64",
"name": "moduleID",
"required": true,
"title": "Module ID"
},
{
"type": "uint64",
"name": "recordID",
@@ -496,6 +504,36 @@
}
]
}
},
{
"name": "upload",
"path": "/record/{recordID}/{fieldName}/attachment",
"method": "POST",
"title": "Uploads attachment and validates it against record field requirements",
"parameters": {
"path": [
{
"name": "recordID",
"type": "uint64",
"required": true,
"title": "Record ID"
},
{
"name": "fieldName",
"type": "string",
"required": true,
"title": "Field name"
}
],
"post": [
{
"name": "upload",
"type": "*multipart.FileHeader",
"required": true,
"title": "File to upload"
}
]
}
}
]
},
@@ -779,5 +817,140 @@
}
}
]
},
{
"title": "Attachments",
"path": "/attachment/{kind}",
"entrypoint": "attachment",
"authentication": [
"Client ID",
"Session ID"
],
"parameters": {
"path": [
{
"name": "kind",
"type": "string",
"required": true,
"title": "Attachment kind"
}
]
},
"apis": [
{
"name": "list",
"path": "/",
"method": "GET",
"title": "List, filter all page attachments",
"parameters": {
"get": [
{
"name": "pageID",
"type": "uint64",
"required": false,
"title": "Filter attachments by page ID"
},
{
"type": "uint64",
"name": "moduleID",
"required": false,
"title": "Filter attachments by mnodule ID"
},
{
"name": "recordID",
"type": "uint64",
"required": false,
"title": "Filter attachments by record ID"
},
{
"name": "fieldName",
"type": "string",
"required": false,
"title": "Filter attachments by field name"
},
{
"name": "page",
"type": "uint",
"required": false,
"title": "Page number (0 based)"
},
{
"name": "perPage",
"type": "uint",
"required": false,
"title": "Returned items per page (default 50)"
}
]
}
},
{
"name": "details",
"path": "/{attachmentID}",
"method": "GET",
"title": "Attachment details",
"parameters": {
"path": [
{
"name": "attachmentID",
"type": "uint64",
"required": true,
"title": "Attachment ID"
}
]
}
},
{
"name": "original",
"path": "/{attachmentID}/original/{name}",
"method": "GET",
"title": "Serves attached file",
"parameters": {
"path": [
{
"name": "attachmentID",
"type": "uint64",
"required": true,
"title": "Attachment ID"
},
{
"name": "name",
"type": "string",
"required": true,
"title": "File name"
}
],
"get": [
{
"type": "bool",
"name": "download",
"required": false,
"title": "Force file download"
}
]
}
},
{
"name": "preview",
"path": "/{attachmentID}/preview.{ext}",
"method": "GET",
"title": "Serves preview of an attached file",
"parameters": {
"path": [
{
"name": "attachmentID",
"type": "uint64",
"required": true,
"title": "Attachment ID"
},
{
"name": "ext",
"type": "string",
"required": true,
"title": "Preview extension/format"
}
]
}
}
]
}
]
+137
View File
@@ -0,0 +1,137 @@
{
"Title": "Attachments",
"Interface": "Attachment",
"Struct": null,
"Parameters": {
"path": [
{
"name": "kind",
"required": true,
"title": "Attachment kind",
"type": "string"
}
]
},
"Protocol": "",
"Authentication": [
"Client ID",
"Session ID"
],
"Path": "/attachment/{kind}",
"APIs": [
{
"Name": "list",
"Method": "GET",
"Title": "List, filter all page attachments",
"Path": "/",
"Parameters": {
"get": [
{
"name": "pageID",
"required": false,
"title": "Filter attachments by page ID",
"type": "uint64"
},
{
"name": "moduleID",
"required": false,
"title": "Filter attachments by mnodule ID",
"type": "uint64"
},
{
"name": "recordID",
"required": false,
"title": "Filter attachments by record ID",
"type": "uint64"
},
{
"name": "fieldName",
"required": false,
"title": "Filter attachments by field name",
"type": "string"
},
{
"name": "page",
"required": false,
"title": "Page number (0 based)",
"type": "uint"
},
{
"name": "perPage",
"required": false,
"title": "Returned items per page (default 50)",
"type": "uint"
}
]
}
},
{
"Name": "details",
"Method": "GET",
"Title": "Attachment details",
"Path": "/{attachmentID}",
"Parameters": {
"path": [
{
"name": "attachmentID",
"required": true,
"title": "Attachment ID",
"type": "uint64"
}
]
}
},
{
"Name": "original",
"Method": "GET",
"Title": "Serves attached file",
"Path": "/{attachmentID}/original/{name}",
"Parameters": {
"get": [
{
"name": "download",
"required": false,
"title": "Force file download",
"type": "bool"
}
],
"path": [
{
"name": "attachmentID",
"required": true,
"title": "Attachment ID",
"type": "uint64"
},
{
"name": "name",
"required": true,
"title": "File name",
"type": "string"
}
]
}
},
{
"Name": "preview",
"Method": "GET",
"Title": "Serves preview of an attached file",
"Path": "/{attachmentID}/preview.{ext}",
"Parameters": {
"path": [
{
"name": "attachmentID",
"required": true,
"title": "Attachment ID",
"type": "uint64"
},
{
"name": "ext",
"required": true,
"title": "Preview extension/format",
"type": "string"
}
]
}
}
]
}
-176
View File
@@ -126,182 +126,6 @@
}
]
}
},
{
"Name": "record/report",
"Method": "GET",
"Title": "Generates report from module records",
"Path": "/{moduleID}/report",
"Parameters": {
"get": [
{
"name": "metrics",
"required": false,
"title": "Metrics (eg: 'SUM(money), MAX(calls)')",
"type": "string"
},
{
"name": "dimensions",
"required": true,
"title": "Dimensions (eg: 'DATE(foo), status')",
"type": "string"
},
{
"name": "filter",
"required": false,
"title": "Filter (eg: 'DATE(foo) \u003e 2010')",
"type": "string"
}
],
"path": [
{
"name": "moduleID",
"required": true,
"title": "Module ID",
"type": "uint64"
}
]
}
},
{
"Name": "record/list",
"Method": "GET",
"Title": "List/read records from module section",
"Path": "/{moduleID}/record",
"Parameters": {
"get": [
{
"name": "filter",
"required": false,
"title": "Filtering condition",
"type": "string"
},
{
"name": "page",
"required": false,
"title": "Page number (0 based)",
"type": "int"
},
{
"name": "perPage",
"required": false,
"title": "Returned items per page (default 50)",
"type": "int"
},
{
"name": "sort",
"required": false,
"title": "Sort field (default id desc)",
"type": "string"
}
],
"path": [
{
"name": "moduleID",
"required": true,
"title": "Module ID",
"type": "uint64"
}
]
}
},
{
"Name": "record/create",
"Method": "POST",
"Title": "Create record in module section",
"Path": "/{moduleID}/record",
"Parameters": {
"path": [
{
"name": "moduleID",
"required": true,
"title": "Module ID",
"type": "uint64"
}
],
"post": [
{
"name": "values",
"required": true,
"title": "Record values",
"type": "types.RecordValueSet"
}
]
}
},
{
"Name": "record/read",
"Method": "GET",
"Title": "Read records by ID from module section",
"Path": "/{moduleID}/record/{recordID}",
"Parameters": {
"path": [
{
"name": "moduleID",
"required": true,
"title": "Module ID",
"type": "uint64"
},
{
"name": "recordID",
"required": true,
"title": "Record ID",
"type": "uint64"
}
]
}
},
{
"Name": "record/update",
"Method": "POST",
"Title": "Update records in module section",
"Path": "/{moduleID}/record/{recordID}",
"Parameters": {
"path": [
{
"name": "moduleID",
"required": true,
"title": "Module ID",
"type": "uint64"
},
{
"name": "recordID",
"required": true,
"title": "Record ID",
"type": "uint64"
}
],
"post": [
{
"name": "values",
"required": true,
"title": "Record values",
"type": "types.RecordValueSet"
}
]
}
},
{
"Name": "record/delete",
"Method": "DELETE",
"Title": "Delete record row from module section",
"Path": "/{moduleID}/record/{recordID}",
"Parameters": {
"path": [
{
"name": "moduleID",
"required": true,
"title": "Module ID",
"type": "uint64"
},
{
"name": "recordID",
"required": true,
"title": "Record ID",
"type": "uint64"
}
]
}
}
]
}
+24
View File
@@ -192,6 +192,30 @@
}
]
}
},
{
"Name": "upload",
"Method": "POST",
"Title": "Uploads attachment to page",
"Path": "/{pageID}/attachment",
"Parameters": {
"path": [
{
"name": "pageID",
"required": true,
"title": "Page ID",
"type": "uint64"
}
],
"post": [
{
"name": "upload",
"required": true,
"title": "File to upload",
"type": "*multipart.FileHeader"
}
]
}
}
]
}
+191
View File
@@ -0,0 +1,191 @@
{
"Title": "Records",
"Description": "CRM records ",
"Interface": "Record",
"Struct": [
{
"imports": [
"github.com/crusttech/crust/crm/types"
]
}
],
"Parameters": {
"path": [
{
"name": "moduleID",
"required": true,
"title": "Module ID",
"type": "uint64"
}
]
},
"Protocol": "",
"Authentication": [],
"Path": "/module/{moduleID}",
"APIs": [
{
"Name": "report",
"Method": "GET",
"Title": "Generates report from module records",
"Path": "/report",
"Parameters": {
"get": [
{
"name": "metrics",
"required": false,
"title": "Metrics (eg: 'SUM(money), MAX(calls)')",
"type": "string"
},
{
"name": "dimensions",
"required": true,
"title": "Dimensions (eg: 'DATE(foo), status')",
"type": "string"
},
{
"name": "filter",
"required": false,
"title": "Filter (eg: 'DATE(foo) \u003e 2010')",
"type": "string"
}
]
}
},
{
"Name": "list",
"Method": "GET",
"Title": "List/read records from module section",
"Path": "/record",
"Parameters": {
"get": [
{
"name": "filter",
"required": false,
"title": "Filtering condition",
"type": "string"
},
{
"name": "page",
"required": false,
"title": "Page number (0 based)",
"type": "int"
},
{
"name": "perPage",
"required": false,
"title": "Returned items per page (default 50)",
"type": "int"
},
{
"name": "sort",
"required": false,
"title": "Sort field (default id desc)",
"type": "string"
}
]
}
},
{
"Name": "create",
"Method": "POST",
"Title": "Create record in module section",
"Path": "/record",
"Parameters": {
"post": [
{
"name": "values",
"required": true,
"title": "Record values",
"type": "types.RecordValueSet"
}
]
}
},
{
"Name": "read",
"Method": "GET",
"Title": "Read records by ID from module section",
"Path": "/record/{recordID}",
"Parameters": {
"path": [
{
"name": "recordID",
"required": true,
"title": "Record ID",
"type": "uint64"
}
]
}
},
{
"Name": "update",
"Method": "POST",
"Title": "Update records in module section",
"Path": "/record/{recordID}",
"Parameters": {
"path": [
{
"name": "recordID",
"required": true,
"title": "Record ID",
"type": "uint64"
}
],
"post": [
{
"name": "values",
"required": true,
"title": "Record values",
"type": "types.RecordValueSet"
}
]
}
},
{
"Name": "delete",
"Method": "DELETE",
"Title": "Delete record row from module section",
"Path": "/record/{recordID}",
"Parameters": {
"path": [
{
"name": "recordID",
"required": true,
"title": "Record ID",
"type": "uint64"
}
]
}
},
{
"Name": "upload",
"Method": "POST",
"Title": "Uploads attachment and validates it against record field requirements",
"Path": "/record/{recordID}/{fieldName}/attachment",
"Parameters": {
"path": [
{
"name": "recordID",
"required": true,
"title": "Record ID",
"type": "uint64"
},
{
"name": "fieldName",
"required": true,
"title": "Field name",
"type": "string"
}
],
"post": [
{
"name": "upload",
"required": true,
"title": "File to upload",
"type": "*multipart.FileHeader"
}
]
}
}
]
}