Passed
Pull Request — master (#788)
by John
13:26
created

sendRankInOutOneHundredMessageToUser()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 24
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 3
eloc 16
c 1
b 0
f 1
nc 3
nop 1
dl 0
loc 24
rs 9.7333
1
<?php
2
3
namespace App\Models\Eloquent\Messager;
4
5
use App\Models\Eloquent\Message;
6
use App\Models\Eloquent\Tool\SiteRank;
7
use Auth;
8
9
class GlobalRankMessager extends UniversalMessager
10
{
11
    public static function sendRankInOutOneHundredMessageToUser($config)
12
    {
13
        $message = Message::where([
14
            'receiver' => $config['receiver'],
15
            'type'     => $config['type'],
16
            'unread'   => true
17
        ])->first();
18
19
        if (filled($message)) {
20
            $data = json_decode($message->data, true);
21
            $data["currentRank"] = $config['data']["currentRank"];
22
23
            if(SiteRank::isTopOneHundred($data["currentRank"]) === SiteRank::isTopOneHundred($data["originalRank"])) {
24
                $message->delete();
25
                return true;
26
            }
27
28
            $message->data = json_encode($data);
29
            $message->level = $config['level'];
30
            $message->save();
31
            return true;
32
        }
33
34
        return self::sendUniversalMessage($config);
35
    }
36
37
38
    public static function formatRankInOutOneHundredMessageToUser($data)
39
    {
40
        if(SiteRank::isTopOneHundred($data["currentRank"])) {
41
            return self::formatUniversalMessage('message.rank.up.desc', [
42
                'originalRank' => SiteRank::getRankString($data['originalRank']),
43
                'currentRank' => SiteRank::getRankString($data['currentRank']),
44
            ]);
45
        }
46
        return self::formatUniversalMessage('message.rank.down.desc', [
47
            'originalRank' => SiteRank::getRankString($data['originalRank']),
48
            'currentRank' => SiteRank::getRankString($data['currentRank']),
49
        ]);
50
    }
51
}
52