SessionPropertiesBuilder::build()   B
last analyzed

Complexity

Conditions 7
Paths 1

Size

Total Lines 9
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 7
eloc 7
nc 1
nop 1
dl 0
loc 9
rs 8.8333
c 0
b 0
f 0
1
<?php
2
3
namespace SquareetLabs\LaravelOpenVidu\Builders;
4
5
use SquareetLabs\LaravelOpenVidu\Enums\MediaMode;
6
use SquareetLabs\LaravelOpenVidu\Enums\OutputMode;
7
use SquareetLabs\LaravelOpenVidu\Enums\RecordingLayout;
8
use SquareetLabs\LaravelOpenVidu\Enums\RecordingMode;
9
use SquareetLabs\LaravelOpenVidu\SessionProperties;
10
11
/**
12
 * Class SessionPropertiesBuilder
13
 * @package SquareetLabs\LaravelOpenVidu\Builders
14
 */
15
class SessionPropertiesBuilder implements BuilderInterface
16
{
17
    /**
18
     * @param  array  $properties
19
     * @return SessionProperties|null
20
     */
21
    public static function build(array $properties)
22
    {
23
        return new SessionProperties(
24
            array_key_exists('mediaMode', $properties) ? $properties['mediaMode'] : MediaMode::ROUTED,
25
            array_key_exists('recordingMode', $properties) ? $properties['recordingMode'] : RecordingMode::MANUAL,
26
            array_key_exists('defaultOutputMode', $properties) ? $properties['defaultOutputMode'] : OutputMode::COMPOSED,
27
            array_key_exists('defaultRecordingLayout', $properties) ? $properties['defaultRecordingLayout'] : RecordingLayout::BEST_FIT,
28
            array_key_exists('customSessionId', $properties) ? $properties['customSessionId'] : null,
29
            array_key_exists('defaultCustomLayout', $properties) ? $properties['defaultCustomLayout'] : null
30
        );
31
    }
32
}
33