@@ -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,42 @@ 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 )
76+ return
8077 }
8178 } )
8279}
80+
81+ function belongsToRelation ( serverRelation , data , options ) {
82+ var fkName = serverRelation . keyFrom
83+ var modelTo = serverRelation . modelFrom
84+
85+ if ( ! modelTo ) return
86+
87+ if ( ! data ) {
88+ options . result [ fkName ] = null
89+ } else {
90+ options . result [ fkName ] = data . id
91+ }
92+ }
93+
94+ function referencesManyRelation ( serverRelation , data , options ) {
95+ var fkName = serverRelation . keyFrom
96+ var modelTo = serverRelation . modelFrom
97+
98+ if ( ! modelTo ) return
99+
100+ if ( ! data ) {
101+ options . result [ fkName ] = [ ]
102+ } else {
103+ options . result [ fkName ] = data . map ( function ( resource ) {
104+ return resource . id ;
105+ } )
106+ }
107+ }
0 commit comments