@cubos/sms
v0.5.3
Published
### Envio de SMS: ```typescript // importe o Provider de sua escolha import { SNS } from "@cubos/sms"
Downloads
10
Readme
@cubos/sms
Envio de SMS:
// importe o Provider de sua escolha
import { SNS } from "@cubos/sms"
const sns = new SNS({ accessKeyID: "accessKeyID", region: "region", secretAccessKey: "secretAccessKey" });
await sns.send({ phoneNumber: "999999999", message: "Hello World!" });
Phone Validation:
import { SNS, MongoDBRepository, PhoneValidation } from "@cubos/sms"
import { MongoClient } from "mongodb";
const sms = new PhoneValidation({
sms: new SNS({ accessKeyID: "accessKeyID", region: "region", secretAccessKey: "secretAccessKey" }),
repository: new MongoDBRepository(new MongoClient(env.MONGO_URL)),
maxAttempts: 3,
});
// Envia um código temporário para o número informado.
await sms.requestValidation({
phone: "+55 99 999999999",
expiresAt: new Date(),
message: code => {
return `Code: ${code}`;
},
});
// Para verificar o código
const result = await sms.verify("+55 99 999999999", "BDCCAF");
if (result.isOk) {
// Código Válido!
} else {
// Código Inválido
throw result.error; // -> PhoneValidationError
}
// Caso seja necessário o reenvio do último código enviado, basta informar o mesmo telefone
const resendResult = await sms.resend("+55 99 999999999");
if (resendResult.isOk) {
// Sucesso
} else {
// Falha
throw resendResult.error; // -> PhoneValidationError
}
DI
import { create, inject } from "@cubos/utils";
import { MongoClient } from "mongodb";
import { container } from "tsyringe";
import { SNS, MongoDBRepository, PhoneValidation } from "@cubos/sms"
inject(
create(PhoneValidation)
.using(PhoneValidation)
.getDependency({
sms: new SNS({ accessKeyID: "accessKeyID", secretAccessKey: "secretAccessKey", region: "region" }),
repository: new MongoDBRepository(new MongoClient(env.MONGO_URL)),
maxAttempts: 3,
}),
);
const sms = container.resolve(PhoneValidation);