feat(classes.ghost): Add members, settings and webhooks support; implement Member class and add tests
This commit is contained in:
88
readme.md
88
readme.md
@@ -368,6 +368,94 @@ await ghostInstance.bulkUpdatePosts(postIds, {
|
||||
await ghostInstance.bulkDeletePosts(['id4', 'id5']);
|
||||
```
|
||||
|
||||
#### Members Management
|
||||
|
||||
Manage your Ghost site members (requires Ghost membership features enabled).
|
||||
|
||||
```typescript
|
||||
// Get all members
|
||||
const members = await ghostInstance.getMembers({ limit: 100 });
|
||||
members.forEach(member => {
|
||||
console.log(`${member.getName()} - ${member.getEmail()}`);
|
||||
});
|
||||
|
||||
// Filter members with minimatch
|
||||
const filteredMembers = await ghostInstance.getMembers({
|
||||
filter: '*@gmail.com'
|
||||
});
|
||||
|
||||
// Get member by email
|
||||
const member = await ghostInstance.getMemberByEmail('user@example.com');
|
||||
console.log(member.getStatus());
|
||||
|
||||
// Create a new member
|
||||
const newMember = await ghostInstance.createMember({
|
||||
email: 'newuser@example.com',
|
||||
name: 'New User'
|
||||
});
|
||||
|
||||
// Update a member
|
||||
await newMember.update({
|
||||
name: 'Updated Name',
|
||||
note: 'VIP member'
|
||||
});
|
||||
|
||||
// Delete a member
|
||||
await newMember.delete();
|
||||
```
|
||||
|
||||
#### Site Settings
|
||||
|
||||
Read and update Ghost site settings.
|
||||
|
||||
```typescript
|
||||
// Get all settings
|
||||
const settings = await ghostInstance.getSettings();
|
||||
console.log(settings);
|
||||
|
||||
// Update settings
|
||||
await ghostInstance.updateSettings([
|
||||
{
|
||||
key: 'title',
|
||||
value: 'My Updated Site Title'
|
||||
},
|
||||
{
|
||||
key: 'description',
|
||||
value: 'My site description'
|
||||
}
|
||||
]);
|
||||
```
|
||||
|
||||
#### Webhooks Management
|
||||
|
||||
Manage webhooks for Ghost events.
|
||||
|
||||
```typescript
|
||||
// Get all webhooks
|
||||
const webhooks = await ghostInstance.getWebhooks();
|
||||
webhooks.forEach(webhook => {
|
||||
console.log(`${webhook.name}: ${webhook.target_url}`);
|
||||
});
|
||||
|
||||
// Get webhook by ID
|
||||
const webhook = await ghostInstance.getWebhookById('webhook-id');
|
||||
|
||||
// Create a webhook
|
||||
const newWebhook = await ghostInstance.createWebhook({
|
||||
event: 'post.published',
|
||||
target_url: 'https://example.com/webhook',
|
||||
name: 'Post Published Webhook'
|
||||
});
|
||||
|
||||
// Update a webhook
|
||||
await ghostInstance.updateWebhook(newWebhook.id, {
|
||||
target_url: 'https://example.com/new-webhook'
|
||||
});
|
||||
|
||||
// Delete a webhook
|
||||
await ghostInstance.deleteWebhook(newWebhook.id);
|
||||
```
|
||||
|
||||
### Example Projects
|
||||
|
||||
To give you a comprehensive understanding, let's look at a couple of example projects.
|
||||
|
Reference in New Issue
Block a user