Closed arkadiusz-wieczorek closed 8 years ago
All of the field types from base-chips had a faulty is_proper_value
method (which didn't take params
argument into consideration). It should be fixed now in 0.6.6. Can you confirm?
Ok, if I've defined ResourceType like this in sealious hello-world app with └── sealious@0.6.6 └─┬ sealious-channel-rest@0.1.3 └── sealious-www-server@0.6.1
new Sealious.ChipTypes.ResourceType({
name: "testing",
fields: [
{name: "int", type: "int"},
{name: "text", type: "text"}
]
});
and it works.
In the case ResourceType with float
:
new Sealious.ChipTypes.ResourceType({
name: "testing",
fields: [
{name: "float", type: "float"}, //null
{name: "int", type: "int"},
{name: "text", type: "text"}
]
});
added resource it looks like this, the same problem occurs with datetime
{
"id": "wjj39tlomf",
"type": "testing",
"body": {
"float": null,
"int": 2,
"text": "sdasda"
},
"created_context": {
"timestamp": 1443274974381,
"ip": "127.0.0.1",
"user_id": false
}
}
In the case date
:
15:43:28.452 - error: POST /api/v1/testing
from: 127.0.0.1, mime: multipart/form-data
result:
15:43:28.452 - error: ReferenceError: date is not defined
at Sealious.ChipTypes.FieldType.encode (/home/arkadiusz/Projects/hello-world/node_modules/sealious/lib/base-chips/field_type.date.js:21:24)
at tryCatcher (/home/arkadiusz/Projects/hello-world/node_modules/sealious/node_modules/bluebird/js/main/util.js:26:23)
at /home/arkadiusz/Projects/hello-world/node_modules/sealious/node_modules/bluebird/js/main/method.js:15:34
at encode (/home/arkadiusz/Projects/hello-world/node_modules/sealious/lib/chip-types/field-type.js:150:36)
at encode_value (/home/arkadiusz/Projects/hello-world/node_modules/sealious/lib/chip-types/resource-type-field.js:50:20)
at encode_field_values (/home/arkadiusz/Projects/hello-world/node_modules/sealious/lib/chip-types/resource-type.js:127:51)
at /home/arkadiusz/Projects/hello-world/node_modules/sealious/lib/core-services/resource-manager.js:39:33
at bound (domain.js:250:14)
at runBound (domain.js:263:12)
at tryCatcher (/home/arkadiusz/Projects/hello-world/node_modules/sealious/node_modules/bluebird/js/main/util.js:26:23)
at Promise._settlePromiseFromHandler (/home/arkadiusz/Projects/hello-world/node_modules/sealious/node_modules/bluebird/js/main/promise.js:503:31)
at Promise._settlePromiseAt (/home/arkadiusz/Projects/hello-world/node_modules/sealious/node_modules/bluebird/js/main/promise.js:577:18)
at Async._drainQueue (/home/arkadiusz/Projects/hello-world/node_modules/sealious/node_modules/bluebird/js/main/async.js:128:12)
at Async._drainQueues (/home/arkadiusz/Projects/hello-world/node_modules/sealious/node_modules/bluebird/js/main/async.js:133:10)
at Immediate.Async.drainQueues [as _onImmediate] (/home/arkadiusz/Projects/hello-world/node_modules/sealious/node_modules/bluebird/js/main/async.js:15:14)
at processImmediate [as _immediateCallback] (timers.js:371:17)
ReferenceError: date is not defined
at Sealious.ChipTypes.FieldType.encode (/home/arkadiusz/Projects/hello-world/node_modules/sealious/lib/base-chips/field_type.date.js:21:24)
at tryCatcher (/home/arkadiusz/Projects/hello-world/node_modules/sealious/node_modules/bluebird/js/main/util.js:26:23)
at /home/arkadiusz/Projects/hello-world/node_modules/sealious/node_modules/bluebird/js/main/method.js:15:34
at encode (/home/arkadiusz/Projects/hello-world/node_modules/sealious/lib/chip-types/field-type.js:150:36)
at encode_value (/home/arkadiusz/Projects/hello-world/node_modules/sealious/lib/chip-types/resource-type-field.js:50:20)
at encode_field_values (/home/arkadiusz/Projects/hello-world/node_modules/sealious/lib/chip-types/resource-type.js:127:51)
at /home/arkadiusz/Projects/hello-world/node_modules/sealious/lib/core-services/resource-manager.js:39:33
at bound (domain.js:250:14)
at runBound (domain.js:263:12)
at tryCatcher (/home/arkadiusz/Projects/hello-world/node_modules/sealious/node_modules/bluebird/js/main/util.js:26:23)
at Promise._settlePromiseFromHandler (/home/arkadiusz/Projects/hello-world/node_modules/sealious/node_modules/bluebird/js/main/promise.js:503:31)
at Promise._settlePromiseAt (/home/arkadiusz/Projects/hello-world/node_modules/sealious/node_modules/bluebird/js/main/promise.js:577:18)
at Async._drainQueue (/home/arkadiusz/Projects/hello-world/node_modules/sealious/node_modules/bluebird/js/main/async.js:128:12)
at Async._drainQueues (/home/arkadiusz/Projects/hello-world/node_modules/sealious/node_modules/bluebird/js/main/async.js:133:10)
at Immediate.Async.drainQueues [as _onImmediate] (/home/arkadiusz/Projects/hello-world/node_modules/sealious/node_modules/bluebird/js/main/async.js:15:14)
at processImmediate [as _immediateCallback] (timers.js:371:17)
ResourceType with file returns this error
{
"data": {
"file": "Wrong file data format. Shoudl be <Buffer>, but received undefined"
},
"is_error": true,
"type": "validation",
"status_message": "There are problems with some of the provided values."
}
Sorry, in the case datetime
error stack looks like this, testing on sealious@0.6.7
16:38:05.555 - error: POST /api/v1/testing
from: 127.0.0.1, mime: multipart/form-data
result:
16:38:05.555 - error: TypeError: Cannot read property 'check_value' of undefined
at validate_field_values (/home/arkadiusz/Projects/hello-world/node_modules/sealious/lib/chip-types/resource-type.js:90:45)
at /home/arkadiusz/Projects/hello-world/node_modules/sealious/lib/core-services/resource-manager.js:37:33
at bound (domain.js:250:14)
at runBound (domain.js:263:12)
at tryCatcher (/home/arkadiusz/Projects/hello-world/node_modules/sealious/node_modules/bluebird/js/main/util.js:26:23)
at Promise._settlePromiseFromHandler (/home/arkadiusz/Projects/hello-world/node_modules/sealious/node_modules/bluebird/js/main/promise.js:503:31)
at Promise._settlePromiseAt (/home/arkadiusz/Projects/hello-world/node_modules/sealious/node_modules/bluebird/js/main/promise.js:577:18)
at Promise._settlePromises (/home/arkadiusz/Projects/hello-world/node_modules/sealious/node_modules/bluebird/js/main/promise.js:693:14)
at Async._drainQueue (/home/arkadiusz/Projects/hello-world/node_modules/sealious/node_modules/bluebird/js/main/async.js:123:16)
at Async._drainQueues (/home/arkadiusz/Projects/hello-world/node_modules/sealious/node_modules/bluebird/js/main/async.js:133:10)
at Immediate.Async.drainQueues [as _onImmediate] (/home/arkadiusz/Projects/hello-world/node_modules/sealious/node_modules/bluebird/js/main/async.js:15:14)
at processImmediate [as _immediateCallback] (timers.js:371:17)
TypeError: Cannot read property 'check_value' of undefined
at validate_field_values (/home/arkadiusz/Projects/hello-world/node_modules/sealious/lib/chip-types/resource-type.js:90:45)
at /home/arkadiusz/Projects/hello-world/node_modules/sealious/lib/core-services/resource-manager.js:37:33
at bound (domain.js:250:14)
at runBound (domain.js:263:12)
at tryCatcher (/home/arkadiusz/Projects/hello-world/node_modules/sealious/node_modules/bluebird/js/main/util.js:26:23)
at Promise._settlePromiseFromHandler (/home/arkadiusz/Projects/hello-world/node_modules/sealious/node_modules/bluebird/js/main/promise.js:503:31)
at Promise._settlePromiseAt (/home/arkadiusz/Projects/hello-world/node_modules/sealious/node_modules/bluebird/js/main/promise.js:577:18)
at Promise._settlePromises (/home/arkadiusz/Projects/hello-world/node_modules/sealious/node_modules/bluebird/js/main/promise.js:693:14)
at Async._drainQueue (/home/arkadiusz/Projects/hello-world/node_modules/sealious/node_modules/bluebird/js/main/async.js:123:16)
at Async._drainQueues (/home/arkadiusz/Projects/hello-world/node_modules/sealious/node_modules/bluebird/js/main/async.js:133:10)
at Immediate.Async.drainQueues [as _onImmediate] (/home/arkadiusz/Projects/hello-world/node_modules/sealious/node_modules/bluebird/js/main/async.js:15:14)
at processImmediate [as _immediateCallback] (timers.js:371:17)
new Sealious.ChipTypes.ResourceType({
name: "testing",
fields: [
{name: "datetime", type: "datetime"},
{name: "int", type: "int"},
{name: "text", type: "text"}
]
});
I've added some changes to how field-type checks the input for errors in v0.6.8. Is your issue resolved?
I've had problem with my ISP. :) I will check it.
Issue is resolved, error with buffer in field type file I will notice to new issue.
Sealious:
0.6.3
sealious-channel-rest:0.1.2
sealious-www-channel:0.5.3
sealious-datastore-mongo:0.1.4
I have created new
ResourceType "test"
for testing some field types.If I send POST with only date to /api/v1/test, I'll get this error. In case
date
,datetime
,email
,float
fields haveundefined
values.In case
text
andint
fields. I got this stackIn case
file
field, I got this errorand Postman output
In case my custom (rewrited for new api) fields like
category
orsubcategory
. I got error aboutundefined
value.