LabService.php 1.81 KB
Newer Older
1
2
3
4
5
6
7
8
9
<?php
/**
 * gredu_labs
 * 
 * @link https://github.com/eellak/gredu_labs for the canonical source repository
 * @copyright Copyright (c) 2008-2015 Greek Free/Open Source Software Society (https://gfoss.ellak.gr/)
 * @license GNU GPLv3 http://www.gnu.org/licenses/gpl-3.0-standalone.html
 */

10
namespace GrEduLabs\Schools\Service;
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

use RedBeanPHP\R;

class LabService implements LabServiceInterface
{
    protected $schoolService;
    protected $staffService;

    public function __construct(
        SchoolServiceInterface $schoolService, 
        StaffServiceInterface $staffService
    ) {
        $this->schoolService = $schoolService;
        $this->staffService = $staffService;
    }
26

27
28
29
    public function createLab(array $data)
    {
        $lab = R::dispense('lab');
30
31
        $required = ['school_id', 'name', 'type', 'area', 'in_school_use', 'out_school_use', 
                     'courses', 'attachment', 'has_network', 'has_server' ];
32
33
34
35
36
37
38
39
40
        foreach ($required as $value){
            if (array_key_exists($value, $data)){
                $lab[$value] = $data[$value];
            }
            else
            {
                return -1;
            }
        }
41
42
43

        if (array_key_exists('teacher_id', $data)) {
            $lab['teacher_id'] = $data['teacher_id'];
44
        }
45

46
47
48
        $id = R::store($lab);
        return $id;
    }
49
50
51
52
53
54
55
56
57
58

    public function updateLab(array $data, $id){
        $lab= R::load('lab', $id);
        foreach ($data as $key => $value){
            $lab[$key] = $value;
        }
        $id = R::store($lab);
        return $id;
    }

59
60
61
62
63
64
65
66
67
68
69
70
    public function getLabById($id)
    {
        $lab = R::load('lab', $id);
        return $lab;
    }
    public function getLabsBySchoolId($id)
    {
        $school = $this->schoolService->getSchool($id);
        $labs = $school->ownLab;
        return $labs;
    }
}