Relationships
Minimal example
agent.customizeCollection('towns', collection =>
collection
// Towns belong to countries
.addManyToOneRelation('myCountry', 'countries', { foreignKey: 'country_id' })
// Towns have one mayor
.addOneToOneRelation('myMayor', 'mayors', { originKey: 'town_id' })
// Towns have multiple inhabitants
.addOneToManyRelation('inhabitants', 'persons', { originKey: 'town_id' })
// Towns electricity is supplied by power-plants which are shared with other towns.
.addManyToManyRelation('myPowerPlants', 'powerPlants', 'utilityContracts', {
originKey: 'town_id',
foreignKey: 'powerplant_id',
})
// Towns have a list of honorary citizen which can be retrieved through a public API
.addExternalRelation('honoraryCitizen', {
schema: { firstName: 'String', lastName: 'String' },
listRecords: async ({ id }) => {
const response = await axios.get(`https://api.mytown.com/cities/${id}/honorary-citizen`);
return response.body;
},
}),
);Last updated