Skip to content

Commit

Permalink
Working SMS feature!
Browse files Browse the repository at this point in the history
  • Loading branch information
haskellcamargo committed Aug 7, 2017
1 parent 1eb60c2 commit cb7a9f0
Show file tree
Hide file tree
Showing 7 changed files with 128 additions and 30 deletions.
1 change: 1 addition & 0 deletions .gitignore
Expand Up @@ -57,3 +57,4 @@ typings/
# dotenv environment variables file
.env

dist
4 changes: 3 additions & 1 deletion README.md
Expand Up @@ -38,7 +38,9 @@ Você terá disponível globalmente o comando `gemidao-do-zap`.

### Exemplo

`gemidao-do-zap --de=+5547998569631 --para=+5547996326548 --key=a15d23ae`
`gemidao-do-zap --de=47998569631 --para=47996326548 --key=ade6a19ecee14577634f66af105eb68c`

Observação: somente chamadas brasileiras. Omita o `+55`.

A vítima receberá uma ligação e, quando atender, ouvirá o delicioso gemido do zap!

Expand Down
25 changes: 0 additions & 25 deletions dist/cli.js

This file was deleted.

7 changes: 7 additions & 0 deletions package.json
Expand Up @@ -14,7 +14,11 @@
"lint": "xo src/**"
},
"dependencies": {
"bluebird": "^3.5.0",
"colors": "^1.1.2",
"ramda": "0.24.1",
"superagent": "^3.5.2",
"superagent-promise": "^1.1.0",
"yargs": "8.0.2"
},
"devDependencies": {
Expand All @@ -27,6 +31,9 @@
"esnext": true,
"space": 4,
"rules": {
"camelcase": [
"off"
],
"no-restricted-syntax": [
"error",
"ForStatement",
Expand Down
14 changes: 12 additions & 2 deletions src/cli.js
@@ -1,7 +1,17 @@
import yargs from 'yargs';
import { green, red } from 'colors/safe';
import { pipe, prop } from 'ramda';
import gemidao from './gemidao';

const emitSuccess = message => console.log(green(` ✔ Sucesso: ${message}`));
const emitError = message => console.log(red(` ✗ Erro: ${message}`));

function cli(args) {
console.log(args);
gemidao(args)
.then(() => {
emitSuccess(args.sms ? 'sms enviado!' : 'chamada efetuada!');
})
.catch(pipe(prop('message'), emitError));
}

cli(yargs
Expand All @@ -27,4 +37,4 @@ cli(yargs
.strict()
.help()
.version()
.argv);
.argv);
44 changes: 44 additions & 0 deletions src/gemidao.js
@@ -0,0 +1,44 @@
import Bluebird, { reject } from 'bluebird';
import agent from 'superagent';
import promisifyAgent from 'superagent-promise';

const request = promisifyAgent(agent, Bluebird);
const route = path => `https://api.totalvoice.com.br${path}`;

const gemidaoInText = 'OOOWH AHHHWN WOOOO AAAAHN WAAAAA AAAAAAHN ANN WAAA!\n'
+ 'Voce caiu no gemidao do zap';

const sms = (to, token) => request.post(route('/sms'))
.set('Access-Token', token)
.set('Accept', 'application/json')
.send({ numero_destino: to, mensagem: gemidaoInText })
.catch(err => {
if (err.status === 405) {
return reject(new Error(err.body.mensagem));
}

return reject(err);
});

export default function gemidao(args) {
if (!/^[a-f0-9]{32}$/.test(args.token)) {
return reject(new Error('Token inválido. Obtenha um em https://totalvoice.com.br'));
}

if (!/^[0-9]{10,11}$/.test(args.para)) {
return reject(new Error('Número de telefone inválido'));
}

const action = args.sms
? sms(args.para, args.token)
: x => reject(new Error('...'));

return action
.catch(err => {
if (err.status === 405) {
return reject(new Error(err.body.mensagem));
}

return reject(err);
});
}
63 changes: 61 additions & 2 deletions yarn.lock
Expand Up @@ -592,6 +592,10 @@ block-stream@*:
dependencies:
inherits "~2.0.0"

bluebird:
version "3.5.0"
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c"

boom@2.x.x:
version "2.10.1"
resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f"
Expand Down Expand Up @@ -743,6 +747,10 @@ color-name@^1.1.1:
version "1.1.3"
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"

colors:
version "1.1.2"
resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63"

combined-stream@^1.0.5, combined-stream@~1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009"
Expand All @@ -753,6 +761,10 @@ commander@^2.8.1:
version "2.11.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563"

component-emitter@^1.2.0:
version "1.2.1"
resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6"

concat-map@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
Expand Down Expand Up @@ -788,6 +800,10 @@ convert-source-map@^1.1.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5"

cookiejar@^2.0.6:
version "2.1.1"
resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.1.tgz#41ad57b1b555951ec171412a81942b1e8200d34a"

core-assert@^0.2.0:
version "0.2.1"
resolved "https://registry.yarnpkg.com/core-assert/-/core-assert-0.2.1.tgz#f85e2cf9bfed28f773cc8b3fa5c5b69bdc02fe3f"
Expand Down Expand Up @@ -1223,7 +1239,7 @@ expand-range@^1.8.1:
dependencies:
fill-range "^2.1.0"

extend@~3.0.0:
extend@^3.0.0, extend@~3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"

Expand Down Expand Up @@ -1305,6 +1321,14 @@ forever-agent@~0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"

form-data@^2.1.1:
version "2.2.0"
resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.2.0.tgz#9a5e3b9295f980b2623cf64fa238b14cebca707b"
dependencies:
asynckit "^0.4.0"
combined-stream "^1.0.5"
mime-types "^2.1.12"

form-data@~2.1.1:
version "2.1.4"
resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1"
Expand All @@ -1313,6 +1337,10 @@ form-data@~2.1.1:
combined-stream "^1.0.5"
mime-types "^2.1.12"

formidable@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.1.1.tgz#96b8886f7c3c3508b932d6bd70c4d3a88f35f1a9"

fs-readdir-recursive@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.0.0.tgz#8cd1745c8b4f8a29c8caec392476921ba195f560"
Expand Down Expand Up @@ -2014,6 +2042,10 @@ meow@^3.4.2:
redent "^1.0.0"
trim-newlines "^1.0.0"

methods@^1.1.1:
version "1.1.2"
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"

micromatch@^2.1.5:
version "2.3.11"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565"
Expand Down Expand Up @@ -2042,6 +2074,10 @@ mime-types@^2.1.12, mime-types@~2.1.7:
dependencies:
mime-db "~1.29.0"

mime@^1.3.4:
version "1.3.6"
resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.6.tgz#591d84d3653a6b0b4a3b9df8de5aa8108e72e5e0"

mimic-fn@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18"
Expand Down Expand Up @@ -2378,6 +2414,10 @@ punycode@^1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"

qs@^6.1.0:
version "6.5.0"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.0.tgz#8d04954d364def3efc55b5a0793e1e2c8b1e6e49"

qs@~6.4.0:
version "6.4.0"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233"
Expand Down Expand Up @@ -2432,7 +2472,7 @@ read-pkg@^2.0.0:
normalize-package-data "^2.3.2"
path-type "^2.0.0"

readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.2:
readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.2:
version "2.3.3"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c"
dependencies:
Expand Down Expand Up @@ -2802,6 +2842,25 @@ strip-json-comments@~2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"

superagent:
version "3.5.2"
resolved "https://registry.yarnpkg.com/superagent/-/superagent-3.5.2.tgz#3361a3971567504c351063abeaae0faa23dbf3f8"
dependencies:
component-emitter "^1.2.0"
cookiejar "^2.0.6"
debug "^2.2.0"
extend "^3.0.0"
form-data "^2.1.1"
formidable "^1.1.1"
methods "^1.1.1"
mime "^1.3.4"
qs "^6.1.0"
readable-stream "^2.0.5"

superagent-promise:
version "1.1.0"
resolved "https://registry.yarnpkg.com/superagent-promise/-/superagent-promise-1.1.0.tgz#baf22d8bbdd439a9b07dd10f8c08f54fe2503533"

supports-color@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
Expand Down

0 comments on commit cb7a9f0

Please sign in to comment.