Merge pull request #282 from strongloop/fix/geopoint-orientation

switch long and lat vals for mysql
This commit is contained in:
Biniam Admikew 2017-05-30 09:43:12 -04:00 committed by GitHub
commit 361f7585b0
2 changed files with 29 additions and 4 deletions

View File

@ -361,7 +361,7 @@ MySQL.prototype.toColumnValue = function(prop, val) {
if (prop.type.name === 'GeoPoint') { if (prop.type.name === 'GeoPoint') {
return new ParameterizedSQL({ return new ParameterizedSQL({
sql: 'Point(?,?)', sql: 'Point(?,?)',
params: [val.lat, val.lng], params: [val.lng, val.lat],
}); });
} }
if (prop.type === Buffer) { if (prop.type === Buffer) {
@ -422,8 +422,8 @@ MySQL.prototype.fromColumnValue = function(prop, val) {
case 'GeoPoint': case 'GeoPoint':
case 'Point': case 'Point':
val = { val = {
lat: val.x, lng: val.x,
lng: val.y, lat: val.y,
}; };
break; break;
case 'List': case 'List':

View File

@ -7,7 +7,7 @@
require('./init.js'); require('./init.js');
var assert = require('assert'); var assert = require('assert');
var db, BlobModel, EnumModel, ANIMAL_ENUM; var db, BlobModel, EnumModel, ANIMAL_ENUM, City;
var mysqlVersion; var mysqlVersion;
describe('MySQL specific datatypes', function() { describe('MySQL specific datatypes', function() {
@ -86,6 +86,26 @@ describe('MySQL specific datatypes', function() {
}); });
}); });
}); });
it('should create a model instance with geopoint type', function(done) {
var city1 = {
name: 'North York',
loc: {
lat: 43.761539,
lng: -79.411079,
},
};
City.create(city1, function(err, res) {
assert.ok(!err);
res.loc.should.deepEqual(city1.loc);
res.name.should.equal(city1.name);
City.find({where: {name: city1.name}}, function(err, found) {
assert.ok(!err);
found[0].name.should.equal(city1.name);
found[0].loc.should.deepEqual(city1.loc);
done();
});
});
});
it('should disconnect when done', function(done) { it('should disconnect when done', function(done) {
db.disconnect(); db.disconnect();
done(); done();
@ -110,6 +130,11 @@ function setup(done) {
bin: {type: Buffer, dataType: 'blob', null: false}, bin: {type: Buffer, dataType: 'blob', null: false},
name: {type: String}, name: {type: String},
}); });
City = db.define('City', {
name: {type: String},
loc: {type: 'GeoPoint'},
});
query('SELECT VERSION()', function(err, res) { query('SELECT VERSION()', function(err, res) {
mysqlVersion = res && res[0] && res[0]['VERSION()']; mysqlVersion = res && res[0] && res[0]['VERSION()'];
blankDatabase(db, done); blankDatabase(db, done);