neumino / thinky

JavaScript ORM for RethinkDB
http://justonepixel.com/thinky/
Other
1.12k stars 128 forks source link

Schema issues with an array of objects #326

Closed chrisblossom closed 9 years ago

chrisblossom commented 9 years ago
var Note = thinky.createModel("Note", {
  timestamp: type.date(),
  string: type.string(),
  number: type.number(),
  objectArray: [{
    timestamp: type.date(),
    string: type.string(),
    number: type.number(),
  }],
  object: {
    timestamp: type.date(),
    string: type.string(),
    number: type.number(),
  },
});

var note = new Note({
  "timestamp": "2015-08-18T00:13:00Z",
  "string": "Test string",
  "number": "12345",
  "objectArray": [{
    "timestamp": "2015-08-18T00:13:00Z",
    "string": "Test string",
    "number": "12345"
  }, {
    "timestamp": "2015-08-18T00:18:00Z",
    "string": "Test string 2",
    "number": "67890"
  }],
  "object": {
    "timestamp": "2015-08-18T00:18:00Z",
    "string": "Test string 2",
    "number": "67890"
  }
});

Results with:

[{
  "id": "0b08db4b-928d-433c-a978-6d1316cdb52d",
  "number": 12345,
  "object": {
    "number": 67890,
    "string": "Test string 2",
    "timestamp": {"$reql_type$": "TIME", "epoch_time": 1439857080, "timezone": "+00:00"}
  },
  "objectArray": [{"number": "12345", "string": "Test string", "timestamp": "2015-08-18T00:13:00Z"},
    {"number": "67890", "string": "Test string 2", "timestamp": "2015-08-18T00:18:00Z"}],
  "string": "Test string",
  "timestamp": {"$reql_type$": "TIME", "epoch_time": 1439856780, "timezone": "+00:00"}
}]

The array of objects type.date() and type.number() are not being correctly parsed. Am I doing something wrong here, or is this a bug?

neumino commented 9 years ago

Yea that was a bug. We didn't pass the appropriate schema for array.

neumino commented 9 years ago

Fixed in 2.1.6