feat(postgres): Add Bytes to Support (#3894)

* Add bytes to schema

* postgres support

* test cases

* bytes work parse object
This commit is contained in:
Diamond Lewis
2017-05-31 21:23:49 -05:00
committed by Florent Vilmart
parent e8be98ded2
commit 4b16a72992
5 changed files with 8 additions and 2 deletions

View File

@@ -1328,7 +1328,7 @@ describe('Parse.Object testing', () => {
});
});
it_exclude_dbs(['postgres'])("bytes work", function(done) {
it("bytes work", function(done) {
Parse.Promise.as().then(function() {
var obj = new TestObject();
obj.set("bytes", { __type: "Bytes", base64: "ZnJveW8=" });

View File

@@ -523,6 +523,7 @@ describe('SchemaController', () => {
aFile: {type: 'File'},
aPointer: {type: 'Pointer', targetClass: 'ThisClassDoesNotExistYet'},
aRelation: {type: 'Relation', targetClass: 'NewClass'},
aBytes: {type: 'Bytes'},
}))
.then(actualSchema => {
const expectedSchema = {
@@ -542,6 +543,7 @@ describe('SchemaController', () => {
aFile: { type: 'File' },
aPointer: { type: 'Pointer', targetClass: 'ThisClassDoesNotExistYet' },
aRelation: { type: 'Relation', targetClass: 'NewClass' },
aBytes: {type: 'Bytes'},
},
classLevelPermissions: {
find: { '*': true },

View File

@@ -97,6 +97,7 @@ function parseFieldTypeToMongoFieldType({ type, targetClass }) {
case 'Array': return 'array';
case 'GeoPoint': return 'geopoint';
case 'File': return 'file';
case 'Bytes': return 'bytes';
}
}

View File

@@ -28,6 +28,7 @@ const parseTypeToPostgresType = type => {
case 'Pointer': return 'char(10)';
case 'Number': return 'double precision';
case 'GeoPoint': return 'point';
case 'Bytes': return 'jsonb';
case 'Array':
if (type.contents && type.contents.type === 'String') {
return 'text[]';
@@ -769,6 +770,7 @@ export class PostgresStorageAdapter {
}
break;
case 'Object':
case 'Bytes':
case 'String':
case 'Number':
case 'Boolean':

View File

@@ -216,6 +216,7 @@ const validNonRelationOrPointerTypes = [
'Array',
'GeoPoint',
'File',
'Bytes'
];
// Returns an error suitable for throwing if the type is invalid
const fieldTypeIsInvalid = ({ type, targetClass }) => {
@@ -966,7 +967,7 @@ function getObjectType(obj) {
break;
case 'Bytes' :
if(obj.base64) {
return;
return 'Bytes';
}
break;
}