Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Ir a la última revisión | | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 www 1
<?php
2
 
3
declare(strict_types=1);
4
 
5
namespace LeadersLinked\Mapper;
6
 
7
use Laminas\Db\Adapter\AdapterInterface;
8
use Laminas\Db\ResultSet\HydratingResultSet;
9
use Laminas\Paginator\Adapter\DbSelect;
10
use Laminas\Paginator\Paginator;
11
use Laminas\Log\LoggerInterface;
12
use Laminas\Hydrator\ArraySerializableHydrator;
13
 
14
 
15
use LeadersLinked\Model\Group;
16
use LeadersLinked\Mapper\Common\MapperCommon;
17
use LeadersLinked\Hydrator\ObjectPropertyHydrator;
18
use Laminas\Db\Sql\Expression;
19
 
20
class GroupMapper extends MapperCommon
21
{
22
    const _TABLE = 'tbl_groups';
23
 
24
 
25
    /**
26
     *
27
     * @var GroupMapper
28
     */
29
    private static $_instance;
30
 
31
    /**
32
     *
33
     * @param AdapterInterface $adapter
34
     */
35
    private function __construct($adapter)
36
    {
37
        parent::__construct($adapter);
38
    }
39
 
40
    /**
41
     *
42
     * @param AdapterInterface $adapter
43
     * @return GroupMapper
44
     */
45
    public static function getInstance($adapter)
46
    {
47
        if(self::$_instance == null) {
48
            self::$_instance = new GroupMapper($adapter);
49
        }
50
        return self::$_instance;
51
    }
52
 
53
    /**
54
     *
55
     * @param int $id
56
     * @return Group
57
     */
58
    public function fetchOne($id)
59
    {
60
        $prototype = new Group();
61
 
62
        $select = $this->sql->select(self::_TABLE);
63
        $select->where->equalTo('id', $id);
64
 
65
        return $this->executeFetchOneObject($select, $prototype);
66
    }
67
 
68
    /**
69
     *
70
     * @param int $uuid
71
     * @return Group
72
     */
73
    public function fetchOneByUuid($uuid)
74
    {
75
        $prototype = new Group();
76
 
77
        $select = $this->sql->select(self::_TABLE);
78
        $select->where->equalTo('uuid', $uuid);
79
 
80
        return $this->executeFetchOneObject($select, $prototype);
81
    }
82
 
83
    /**
84
     *
85
     * @param int $user_id
86
     * @return Group[]
87
     */
88
    public function fetchAllByUserId($user_id)
89
    {
90
        $prototype = new Group();
91
 
92
        $select = $this->sql->select(self::_TABLE);
93
        $select->where->equalTo('user_id', $user_id);
94
        $select->where->equalTo('status', Group::STATUS_ACTIVE);
95
 
96
        return $this->executeFetchAllObject($select, $prototype);
97
    }
98
 
99
    /**
100
     *
101
     * @param Group $group
102
     * return true
103
     */
104
    public function insert($group)
105
    {
106
        $hydrator = new \Laminas\Hydrator\ObjectPropertyHydrator();
107
        $values = $hydrator->extract($group);
108
        $values = $this->removeEmpty($values);
109
 
110
 
111
        $insert = $this->sql->insert(self::_TABLE);
112
        $insert->values($values);
113
 
114
        $result = $this->executeInsert($insert);
115
        if($result) {
116
            $group->id = $this->lastInsertId;
117
        }
118
 
119
        return $result;
120
    }
121
 
122
    /**
123
     *
124
     * @param Group $group
125
     * return true
126
     */
127
    public function update($group)
128
    {
129
        $hydrator = new \Laminas\Hydrator\ObjectPropertyHydrator();
130
        $values = $hydrator->extract($group);
131
        $values = $this->removeEmpty($values);
132
 
133
 
134
        $update = $this->sql->update(self::_TABLE);
135
        $update->set($values);
136
        $update->where->equalTo('id', $group->id);
137
 
138
        return $this->executeUpdate($update);
139
    }
140
 
141
    /**
142
     *
143
     * @param Group $group
144
     * return true
145
     */
146
    public function delete($group)
147
    {
148
        $update = $this->sql->update(self::_TABLE);
149
        $update->set([
150
            'status' => Group::STATUS_DELETE,
151
        ]);
152
        $update->where->equalTo('id', $group->id);
153
 
154
        return $this->executeUpdate($update);
155
    }
156
 
157
    /**
158
     *
159
     * @param Group $group
160
     * return true
161
     */
162
    public function updateIndustry($group)
163
    {
164
        $update = $this->sql->update(self::_TABLE);
165
        $update->set(['industry_id' => $group->industry_id]);
166
        $update->where->equalTo('id', $group->id);
167
 
168
        return $this->executeUpdate($update);
169
    }
170
 
171
    /**
172
     *
173
     * @param Group $group
174
     * return true
175
     */
176
    public function updateGroupType($group)
177
    {
178
        $update = $this->sql->update(self::_TABLE);
179
        $update->set(['type_id' => $group->type_id]);
180
        $update->where->equalTo('id', $group->id);
181
 
182
        return $this->executeUpdate($update);
183
    }
184
 
185
    /**
186
     *
187
     * @param Group $group
188
     * return true
189
     */
190
    public function updateExtended($group)
191
    {
192
        $update = $this->sql->update(self::_TABLE);
193
        $update->set(['description' => $group->description]);
194
        $update->where->equalTo('id', $group->id);
195
 
196
        return $this->executeUpdate($update);
197
    }
198
 
199
    /**
200
     *
201
     * @param Group $group
202
     * return true
203
     */
204
    public function updateAccessibility($group)
205
    {
206
        $update = $this->sql->update(self::_TABLE);
207
        $update->set(['accessibility' => $group->accessibility]);
208
        $update->where->equalTo('id', $group->id);
209
 
210
       // echo $update->getSqlString($this->adapter->platform); exit;
211
 
212
        return $this->executeUpdate($update);
213
    }
214
 
215
 
216
    /**
217
     *
218
     * @param Group $group
219
     * return true
220
     */
221
    public function updatePrivacy($group)
222
    {
223
        $update = $this->sql->update(self::_TABLE);
224
        $update->set(['privacy' => $group->privacy]);
225
        $update->where->equalTo('id', $group->id);
226
 
227
        return $this->executeUpdate($update);
228
    }
229
 
230
    /**
231
     *
232
     * @param Group $group
233
     * return true
234
     */
235
    public function updateImage($group)
236
    {
237
        $update = $this->sql->update(self::_TABLE);
238
        $update->set(['image' => $group->image]);
239
        $update->where->equalTo('id', $group->id);
240
 
241
        return $this->executeUpdate($update);
242
    }
243
 
244
    /**
245
     *
246
     * @param Group $group
247
     * return true
248
     */
249
    public function updateCover($group)
250
    {
251
        $update = $this->sql->update(self::_TABLE);
252
        $update->set(['cover' => $group->cover]);
253
        $update->where->equalTo('id', $group->id);
254
 
255
        return $this->executeUpdate($update);
256
    }
257
 
258
 
259
    /**
260
     *
261
     * @param Group $group
262
     * return true
263
     */
264
    public function updateWebsite($group)
265
    {
266
        $update = $this->sql->update(self::_TABLE);
267
        $update->set(['website' => $group->website]);
268
        $update->where->equalTo('id', $group->id);
269
 
270
        return $this->executeUpdate($update);
271
    }
272
 
273
}