@@ -57,7 +57,7 @@ export const relationType = {
5757 * @param {* } rel
5858 * @returns
5959 */
60- oneToOne ( model , ds , rel ) {
60+ oneToOne ( model , ds , rel ) {
6161 return this . manyToOne ( model , ds , rel )
6262 } ,
6363
@@ -87,14 +87,14 @@ export const relationType = {
8787 const rds = ds . factory . getRestrictedDataSource ( model . modelName )
8888 const relRds = ds . factory . getRestrictedDataSource ( rel . modelName , {
8989 isCached : true ,
90- ephemeral : true ,
90+ ephemeral : true
9191 } )
9292
9393 // if relRds is in the same domain but is remote, this fails
9494 if ( rds . namespace !== relRds . namespace ) return null
9595
9696 return rds [ rel . name ] ( { args, model, ds : relRds , relation : rel } )
97- } ,
97+ }
9898}
9999
100100/**
@@ -108,39 +108,39 @@ const updateForeignKeys = {
108108 * @param {import('./index').relations[x] } relation
109109 * @param {import('./model-factory').Datasource } ds
110110 */
111- async [ relationType . manyToOne . name ] ( fromModel , toModels , relation , ds ) {
111+ async [ relationType . manyToOne . name ] ( fromModel , toModels , relation , ds ) {
112112 return fromModel . update (
113113 { [ relation . foreignKey ] : toModels [ 0 ] . getId ( ) } ,
114114 false
115115 )
116116 } ,
117117
118- async [ relationType . oneToOne . name ] ( fromModel , toModels , relation , ds ) {
118+ async [ relationType . oneToOne . name ] ( fromModel , toModels , relation , ds ) {
119119 return this [ relationType . manyToOne . name ] ( fromModel , toModels , relation , ds )
120120 } ,
121121
122- async [ relationType . oneToMany . name ] ( fromModel , toModels , relation , ds ) {
122+ async [ relationType . oneToMany . name ] ( fromModel , toModels , relation , ds ) {
123123 return Promise . all (
124124 toModels . map ( async m => {
125125 const model = await ds . find ( m . id || m . getId ( ) )
126126 return ds . save ( m . id , {
127127 ...model ,
128- [ relation . foreignKey ] : fromModel . getId ( ) ,
128+ [ relation . foreignKey ] : fromModel . getId ( )
129129 } )
130130 } )
131131 )
132132 } ,
133133
134- async [ relationType . containsMany . name ] ( fromModel , toModels , relation , ds ) {
134+ async [ relationType . containsMany . name ] ( fromModel , toModels , relation , ds ) {
135135 toModels . map ( model =>
136136 model . update ( { [ relation . foreignKey ] : fromModel . getId ( ) } )
137137 )
138138 } ,
139139
140- async [ relationType . custom . name ] ( fromModel , toModels , relation , ds ) {
140+ async [ relationType . custom . name ] ( fromModel , toModels , relation , ds ) {
141141 const customFn = fromModel [ `${ relation } UpdateForeignKeys` ]
142142 if ( customFn === 'function' ) customFn ( toModels , relation , ds )
143- } ,
143+ }
144144}
145145
146146/**
@@ -151,7 +151,7 @@ const updateForeignKeys = {
151151 * @param {import('./datasource').default } ds
152152 * @returns
153153 */
154- async function createModels ( args , fromModel , relation , ds ) {
154+ async function createModels ( args , fromModel , relation , ds ) {
155155 if ( args . length > 0 ) {
156156 const { UseCaseService } = require ( '.' )
157157 const service = UseCaseService ( relation . modelName )
@@ -162,18 +162,18 @@ async function createModels(args, fromModel, relation, ds) {
162162 }
163163}
164164
165- async function createNewModels ( args , rel , datasource ) {
165+ async function createNewModels ( args , rel , datasource ) {
166166 if ( args . length > 0 && rel . type !== 'custom' ) {
167167 // fetch the local ds and create the models
168168 const ds = datasource . factory . getDataSource ( rel . modelName )
169169 return {
170170 yes : true ,
171- create : async ( ) => await createModels ( args , this , rel , ds ) ,
171+ create : async ( ) => await createModels ( args , this , rel , ds )
172172 }
173173 }
174174 return {
175175 yes : false ,
176- create : ( ) => null ,
176+ create : ( ) => null
177177 }
178178}
179179
@@ -188,7 +188,7 @@ async function createNewModels(args, rel, datasource) {
188188 * @param {import("./event-broker").EventBroker } broker
189189 * @returns {Promise<import(".").Event> } source model
190190 */
191- export function requireRemoteObject ( model , relation , broker , ...args ) {
191+ export function requireRemoteObject ( model , relation , broker , ...args ) {
192192 const request = internalCacheRequest ( relation . modelName )
193193 const response = internalCacheResponse ( relation . modelName )
194194 const name = ( model ? model . getName ( ) : relation . modelName ) . toUpperCase ( )
@@ -207,7 +207,7 @@ export function requireRemoteObject(model, relation, broker, ...args) {
207207 modelId : id ,
208208 relation,
209209 model,
210- args,
210+ args
211211 }
212212
213213 return new Promise ( async function ( resolve ) {
@@ -223,7 +223,7 @@ export function requireRemoteObject(model, relation, broker, ...args) {
223223 * @param {import('.').relations[x] } relation
224224 * @returns {boolean }
225225 */
226- function isRelatedModelLocal ( relation ) {
226+ function isRelatedModelLocal ( relation ) {
227227 return require ( '.' )
228228 . default . getModelSpecs ( )
229229 . filter ( spec => ! spec . isCached )
@@ -236,7 +236,7 @@ function isRelatedModelLocal(relation) {
236236 * @param {import("./index").relations } relations
237237 * @param {import("./datasource").default } datasource
238238 */
239- export default function makeRelations ( relations , datasource , broker ) {
239+ export default function makeRelations ( relations , datasource , broker ) {
240240 if ( Object . getOwnPropertyNames ( relations ) . length < 1 ) return
241241
242242 return Object . keys ( relations )
@@ -246,7 +246,7 @@ export default function makeRelations(relations, datasource, broker) {
246246 const rel = {
247247 ...relations [ relation ] ,
248248 modelName : relModelName ,
249- name : relation ,
249+ name : relation
250250 }
251251
252252 try {
@@ -258,18 +258,24 @@ export default function makeRelations(relations, datasource, broker) {
258258
259259 return {
260260 // the relation function
261- async [ relation ] ( ...args ) {
261+ async [ relation ] ( ...args ) {
262262 const local = isRelatedModelLocal ( relModelName )
263263 if ( ! local ) await importModelCache ( relModelName )
264264
265+ console . log ( { relModelName } )
266+
265267 if ( local ) {
266268 const result = createNewModels ( args , rel , datasource )
267269 if ( result . yes ) return result . create ( )
268270 }
269271
272+ const importedSpec = require ( '.' ) . default . getModelSpec ( relModelName )
270273 // If object is remote, we should have its code by now.
271274 // Recreate its datasource, including any customization
272- const ds = datasource . factory . getDataSource ( relModelName )
275+ const ds = datasource . factory . getDataSource (
276+ relModelName ,
277+ importedSpec . domain
278+ )
273279
274280 const models = await relationType [ rel . type ] ( this , ds , rel , args )
275281
@@ -289,7 +295,7 @@ export default function makeRelations(relations, datasource, broker) {
289295 }
290296
291297 return models
292- } ,
298+ }
293299 }
294300 } catch ( error ) {
295301 console . error ( { fn : makeRelations . name , error } )
0 commit comments