Total Complexity | 4 |
Complexity/F | 4 |
Lines of Code | 33 |
Function Count | 1 |
Duplicated Lines | 0 |
Ratio | 0 % |
Coverage | 100% |
Changes | 0 |
1 | import Tweet from '../entities/Tweet'; |
||
2 | 3 | import {AbstractAction, runArgs} from './Action'; |
|
3 | 3 | import Helper from '../Helper'; |
|
4 | |||
5 | interface runRetweetArgs extends runArgs { |
||
6 | tweet: Tweet |
||
7 | } |
||
8 | |||
9 | 3 | export default class Retweet extends AbstractAction { |
|
10 | async run(args: runRetweetArgs): Promise<void> { |
||
11 | 5 | const {tweet, onSuccess} = args; |
|
12 | |||
13 | 5 | this.debug(`Retweeting tweet with id: '${tweet.rawTweet.id_str}' ...`); |
|
14 | 5 | const result = await this.twit.post('statuses/retweet/:id', { |
|
15 | id: tweet.rawTweet.id_str |
||
16 | }); |
||
17 | |||
18 | 4 | if (this.isSuccessResponse(result)) { |
|
19 | 2 | this.debug('Retweeted!'); |
|
20 | |||
21 | 2 | if (onSuccess) { |
|
22 | 1 | await onSuccess(tweet); |
|
23 | } |
||
24 | } else { |
||
25 | 2 | this.debug('Cannot retweet.'); |
|
26 | 2 | if (Helper.objectExists(result.resp.statusMessage)) { |
|
27 | 1 | this.debug(result.resp.statusMessage); |
|
28 | } |
||
29 | |||
30 | 2 | throw new Error('Cannot retweet'); |
|
31 | } |
||
32 | } |
||
33 | } |