SessionPropertiesBuilder   A
last analyzed

Complexity

Total Complexity 7

Size/Duplication

Total Lines 15
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 8
dl 0
loc 15
rs 10
c 0
b 0
f 0
wmc 7

1 Method

Rating   Name   Duplication   Size   Complexity  
B build() 0 9 7
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