prism-ad-campaigns
Version:
Prism Ad Campaigns
62 lines (51 loc) • 1.14 kB
JavaScript
const FacebookApiModel = require('./facebook-api-model')
/**
* AdModel Class
*
* @public
* @class AdModel
*/
class AdModel extends FacebookApiModel {
/**
* AdModel constructor
*
* @public
* @constructor
* @param {Object} options - Options
*/
constructor(options = {}) {
super(Object.assign({}, {
table: 'ads',
relations: {
belongsTo: [
{
node: 'ad_sets',
link: {
foreignKey: 'adSetId',
localKey: 'adId',
},
joinTable: 'link_ad_sets_ads'
}
],
}
}, options))
this.adAccountId = options.adAccountId
}
/**
* Create ad
*
* @public
* @param {Object} pkg
*/
async create(pkg = {}, options = {}) {
const api = await this.getApi(this.adAccountId)
const facebookAd= await api.createAd({
name: pkg.title,
adSetId: pkg.facebookAdSetId,
adCreativeId: pkg.facebookAdCreativeId,
})
pkg.facebookAdId = facebookAd.id
return FacebookApiModel.prototype.create.call(this, pkg, options)
}
}
module.exports = AdModel