Este é um plugin para o framework de e-commerce Vendure simplificar o processo de inscrição em newsletters por meio de e-mails e números de telefone. Ele oferece extensões aos esquemas GraphQL das APIs de loja e administração, permitindo que desenvolvedores integrem facilmente funcionalidades de inscrição em seus projetos Gseller.
Após configurar o seu projeto Vendure, você pode usar este plugin via npm install:
npm install subscription-plugin
e inclua-o no arquivo vendure-config conforme abaixo:
import { SubscriptionPlugin } from "subscription-plugin";
...
export const config: VendureConfig = {
...
plugins: [
...,
SubscriptionPlugin
]
}
Os tipos, entradas e mutações atualizadas após a instalação do plugin são:
type Email implements Node {
id: ID!
email: String!
createdAt: DateTime!
updatedAt: DateTime!
}
type Phone implements Node {
id: ID!
phone: String!
createdAt: DateTime!
updatedAt: DateTime!
}
input EmailAddInput {
email: String!
}
input PhoneAddInput {
phone: String!
}
type EmailList implements PaginatedList {
items: [Email!]!
totalItems: Int!
}
type PhoneList implements PaginatedList {
items: [Phone!]!
totalItems: Int!
}
input EmailUpdateInput {
id: ID!
email: String!
}
input PhoneUpdateInput {
id: ID!
phone: String!
}
input EmailListOptions
input PhoneListOptions
extend type Query {
SubscriptionEmails(options: EmailListOptions): EmailList!
SubscriptionEmail(id: ID!): Email
SubscriptionPhones(options: PhoneListOptions): PhoneList!
SubscriptionPhone(id: ID!): Phone
}
extend type Mutation {
addSubscriptionEmail(input: [EmailAddInput!]!): [Email]!
updateSubscriptionEmail(input: [EmailUpdateInput!]!): [Email]!
deleteSubscriptionEmail(id: [ID!]!): [Email]!
deleteAllSubscriptionEmails: Boolean!
addSubscriptionPhone(input: [PhoneAddInput!]!): [Phone]!
updateSubscriptionPhone(input: [PhoneUpdateInput!]!): [Phone]!
deleteSubscriptionPhone(id: [ID!]!): [Phone]!
deleteAllSubscriptionPhones: Boolean!
}
extend type Mutation {
addSubscriptionEmail(input: [EmailAddInput!]!): [Email]!
}
extend type Mutation {
addSubscriptionPhone(input: [PhoneAddInput!]!): [Phone]!
}