@@ -45,14 +45,14 @@ module.exports = function deserializer (options, cb) {
45
45
afterDeserialize ( deserializeOptions , function ( err , deserializeOptions ) {
46
46
if ( err ) return cb ( err )
47
47
48
- belongsToRelationships ( deserializeOptions )
48
+ fillFromRelationships ( deserializeOptions )
49
49
return cb ( null , deserializeOptions )
50
50
} )
51
51
} )
52
52
} )
53
53
}
54
54
55
- function belongsToRelationships ( options ) {
55
+ function fillFromRelationships ( options ) {
56
56
var data = options . data
57
57
var model = options . model
58
58
@@ -66,17 +66,41 @@ function belongsToRelationships (options) {
66
66
var type = serverRelation . type
67
67
68
68
// only handle belongsTo
69
- if ( type !== 'belongsTo' ) return
70
-
71
- var fkName = serverRelation . keyFrom
72
- var modelTo = serverRelation . modelFrom
73
-
74
- if ( ! modelTo ) return false
69
+ if ( type === 'belongsTo' ) {
70
+ belongsToRelation ( serverRelation , relationship . data , options )
71
+ return
72
+ }
75
73
76
- if ( ! relationship . data ) {
77
- options . result [ fkName ] = null
78
- } else {
79
- options . result [ fkName ] = relationship . data . id
74
+ if ( type === 'referencesMany' ) {
75
+ referencesManyRelation ( serverRelation , relationship . data , options )
80
76
}
81
77
} )
82
78
}
79
+
80
+ function belongsToRelation ( serverRelation , data , options ) {
81
+ var fkName = serverRelation . keyFrom
82
+ var modelTo = serverRelation . modelFrom
83
+
84
+ if ( ! modelTo ) return
85
+
86
+ if ( ! data ) {
87
+ options . result [ fkName ] = null
88
+ } else {
89
+ options . result [ fkName ] = data . id
90
+ }
91
+ }
92
+
93
+ function referencesManyRelation ( serverRelation , data , options ) {
94
+ var fkName = serverRelation . keyFrom
95
+ var modelTo = serverRelation . modelFrom
96
+
97
+ if ( ! modelTo ) return
98
+
99
+ if ( ! data ) {
100
+ options . result [ fkName ] = [ ]
101
+ } else {
102
+ options . result [ fkName ] = data . map ( function ( resource ) {
103
+ return resource . id
104
+ } )
105
+ }
106
+ }
0 commit comments