Fix: don't build CRUD routes until ready
Previously, we were building the crud routes before we had run through the association logic. This meant that routes could get created without a complete list of associations available to it. This is slightly less performant b/c we need to run through two loops, but ensures that the full association data is available to all routes.
This commit is contained in:
		@@ -36,7 +36,6 @@ const register = (server, options = {}, next) => {
 | 
				
			|||||||
    // Join tables
 | 
					    // Join tables
 | 
				
			||||||
    if (model.options.name.singular !== model.name) continue;
 | 
					    if (model.options.name.singular !== model.name) continue;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    crud(server, model, options);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    for (const key of Object.keys(model.associations)) {
 | 
					    for (const key of Object.keys(model.associations)) {
 | 
				
			||||||
      const association = model.associations[key];
 | 
					      const association = model.associations[key];
 | 
				
			||||||
@@ -92,6 +91,13 @@ const register = (server, options = {}, next) => {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // build the methods for each model now that we've defined all the
 | 
				
			||||||
 | 
					  // associations
 | 
				
			||||||
 | 
					  Object.keys(models).forEach((modelName) => {
 | 
				
			||||||
 | 
					    const model = models[modelName];
 | 
				
			||||||
 | 
					    crud(server, model, options);
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  next();
 | 
					  next();
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user