Passed
Pull Request — master (#788)
by John
06:12
created

HomeworkMessager::proceedHomeworkAndGroupInfo()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 18
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 2
eloc 11
c 1
b 0
f 1
nc 2
nop 1
dl 0
loc 18
rs 9.9
1
<?php
2
3
namespace App\Models\Eloquent\Messager;
4
5
use App\Models\Eloquent\Message;
6
7
class HomeworkMessager extends UniversalMessager
8
{
9
    public static function sendNewHomeworkMessageToUser($config)
10
    {
11
        $message = Message::where([
12
            'receiver' => $config['receiver'],
13
            'type'     => $config['type'],
14
            'unread'   => true
15
        ])->first();
16
17
        if (filled($message)) {
18
            $data = json_decode($message->data, true);
19
            foreach ($data['homework'] as $homework) {
20
                if($homework['id'] != $config['data']['homework'][0]['id']) {
21
                    array_push($data['homework'], $config['data']['homework'][0]);
22
                }
23
            }
24
            $message->data = json_encode($data);
25
            $message->level = $config['level'];
26
            $message->save();
27
            return true;
28
        }
29
30
        return self::sendUniversalMessage($config);
31
    }
32
33
    private static function proceedHomeworkAndGroupInfo($data)
34
    {
35
        $homeworkList = [];
36
37
        foreach ($data['homework'] as $homework) {
38
            $id = $homework['id'];
39
            $title = $homework['title'];
40
            $gcode = $homework['gcode'];
41
            $url = route('group.homework', [
42
                'gcode' => $gcode,
43
                'homework_id' => $id,
44
            ]);
45
            $homeworkList[] = "* [$title]($url)";
46
        }
47
48
        $homeworkString = implode(PHP_EOL, $homeworkList);
49
50
        return [$homeworkString];
51
    }
52
53
    public static function formatNewHomeworkMessageToUser($data)
54
    {
55
        [$homeworkString] = self::proceedHomeworkAndGroupInfo($data);
56
57
        return __('message.homework.new.desc', [
58
            'homeworkList' => $homeworkString
59
        ]);
60
    }
61
}
62