@@ -45,14 +45,14 @@ module.exports = function deserializer (options, cb) {
4545 afterDeserialize ( deserializeOptions , function ( err , deserializeOptions ) {
4646 if ( err ) return cb ( err )
4747
48- belongsToRelationships ( deserializeOptions )
48+ fillFromRelationships ( deserializeOptions )
4949 return cb ( null , deserializeOptions )
5050 } )
5151 } )
5252 } )
5353}
5454
55- function belongsToRelationships ( options ) {
55+ function fillFromRelationships ( options ) {
5656 var data = options . data
5757 var model = options . model
5858
@@ -66,17 +66,41 @@ function belongsToRelationships (options) {
6666 var type = serverRelation . type
6767
6868 // 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+ }
7573
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 )
8076 }
8177 } )
8278}
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