facebook-nodejs-business-sdk
Version:
SDK for the Facebook Ads API in Javascript and Node.js
138 lines (125 loc) • 2.75 kB
JavaScript
/**
* Copyright (c) 2017-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the license found in the
* LICENSE file in the root directory of this source tree.
* @flow
*/
import {AbstractCrudObject} from './../abstract-crud-object';
import AbstractObject from './../abstract-object';
import Comment from './comment';
import Lead from './lead';
import Profile from './profile';
import Post from './post';
/**
* Link
* @extends AbstractCrudObject
* @see {@link https://developers.facebook.com/docs/marketing-api/}
*/
export default class Link extends AbstractCrudObject {
static get Fields () {
return Object.freeze({
caption: 'caption',
created_time: 'created_time',
description: 'description',
from: 'from',
icon: 'icon',
id: 'id',
link: 'link',
message: 'message',
multi_share_optimized: 'multi_share_optimized',
name: 'name',
picture: 'picture',
privacy: 'privacy',
via: 'via'
});
}
static get UnpublishedContentType (): Object {
return Object.freeze({
scheduled: 'SCHEDULED',
draft: 'DRAFT',
ads_post: 'ADS_POST',
inline_created: 'INLINE_CREATED',
published: 'PUBLISHED'
});
}
getComments (fields, params, fetchFirstPage = true): Comment {
return this.getEdge(
Comment,
fields,
params,
fetchFirstPage,
'/comments'
);
}
createComment (fields, params): Comment {
return this.createEdge(
'/comments',
fields,
params,
Comment
);
}
getLeads (fields, params, fetchFirstPage = true): Lead {
return this.getEdge(
Lead,
fields,
params,
fetchFirstPage,
'/leads'
);
}
deleteLikes (params): AbstractObject {
return super.deleteEdge(
'/likes',
params
);
}
getLikes (fields, params, fetchFirstPage = true): Profile {
return this.getEdge(
Profile,
fields,
params,
fetchFirstPage,
'/likes'
);
}
createLike (fields, params): Link {
return this.createEdge(
'/likes',
fields,
params,
Link
);
}
getReactions (fields, params, fetchFirstPage = true): Profile {
return this.getEdge(
Profile,
fields,
params,
fetchFirstPage,
'/reactions'
);
}
getShareDPosts (fields, params, fetchFirstPage = true): Post {
return this.getEdge(
Post,
fields,
params,
fetchFirstPage,
'/sharedposts'
);
}
delete (fields, params): AbstractObject {
return super.delete(
params
);
}
get (fields, params): Link {
return this.read(
fields,
params
);
}
}