MailMessageBodyUpdater::update()   B
last analyzed

Complexity

Conditions 5
Paths 4

Size

Total Lines 30
Code Lines 19

Duplication

Lines 0
Ratio 0 %

Importance

Changes 5
Bugs 0 Features 1
Metric Value
dl 0
loc 30
rs 8.439
c 5
b 0
f 1
cc 5
eloc 19
nc 4
nop 3
1
<?php
2
namespace Tarioch\EveapiFetcherBundle\Component\EveApi\Char;
3
4
use JMS\DiExtraBundle\Annotation as DI;
5
use Tarioch\EveapiFetcherBundle\Entity\ApiCall;
6
use Pheal\Pheal;
7
use Tarioch\EveapiFetcherBundle\Entity\ApiKey;
8
9
/**
10
 * @DI\Service("tarioch.eveapi.char.MailBodies")
11
 */
12
class MailMessageBodyUpdater extends AbstractCharUpdater
13
{
14
    /**
15
     * @inheritdoc
16
     */
17
    public function update(ApiCall $call, ApiKey $key, Pheal $pheal)
18
    {
19
        $owner = $call->getOwner();
20
        $charId = $owner->getCharacterId();
21
22
        $repo = $this->entityManager->getRepository('TariochEveapiFetcherBundle:CharMailMessage');
23
        $messages = $repo->loadMessagesWithoutBody($charId);
24
25
        $messageIds = array();
26
        foreach ($messages as $message) {
27
            $message->setBody('');
28
            $messageIds[$message->getMessageId()] = $message;
29
        }
30
        $cached = 'now';
31
        if (!empty($messageIds)) {
32
            foreach (array_keys($messageIds) as $id) {
33
                $api = $pheal->charScope->MailBodies(array('characterID' => $charId, 'ids' => $id));
34
35
                foreach ($api->messages as $message) {
36
                    $messageId = $message->messageID;
37
                    $entity = $messageIds[$messageId];
38
                    $entity->setBody((string)$message);
39
                }
40
41
                $cached = $api->cached_until;
42
            }
43
        }
44
45
        return $cached;
46
    }
47
}
48