prism-ad-campaigns
Version:
Prism Ad Campaigns
71 lines (60 loc) • 1.38 kB
JavaScript
const FacebookApiModel = require('./facebook-api-model')
/**
* AdSetModel Class
*
* @public
* @class AdSetModel
*/
class AdSetModel extends FacebookApiModel {
/**
* AdSetModel constructor
*
* @public
* @constructor
* @param {Object} options - Options
*/
constructor(options = {}) {
super(Object.assign({}, {
table: 'ad_sets',
relations: {
belongsTo: [
{
node: 'ad_campaigns',
link: {
foreignKey: 'adCampaignId',
localKey: 'adSetId',
},
joinTable: 'link_ad_campaigns_ad_sets'
}
],
hasMany: [
{
node: 'ads',
link: {
foreignKey: 'adId',
localKey: 'adSetId'
},
joinTable: 'link_ad_sets_ads'
}
]
}
}, options))
this.adAccountId = options.adAccountId
}
/**
* Create ad set
*
* @public
* @param {Object} pkg
*/
async create(pkg = {}, options = {}) {
const api = await this.getApi(this.adAccountId)
const facebookAdSet = await api.createAdSet({
name: pkg.title,
campaignId: pkg.facebookAdCampaignId
})
pkg.facebookAdSetId = facebookAdSet.id
return FacebookApiModel.prototype.create.call(this, pkg, options)
}
}
module.exports = AdSetModel