Code Duplication    Length = 202-202 lines in 4 locations

local/devel/Repositories/CacheDescModifiedRepository.php 1 location

@@ 9-210 (lines=202) @@
6
use Oc\Repository\Exception\RecordNotPersistedException;
7
use Oc\Repository\Exception\RecordsNotFoundException;
8
9
class CacheDescModifiedRepository
10
{
11
    const TABLE = 'cache_desc_modified';
12
13
    /** @var Connection */
14
    private $connection;
15
16
    public function __construct(Connection $connection)
17
    {
18
        $this->connection = $connection;
19
    }
20
21
    /**
22
     * @return GeoCacheDescModifiedEntity[]
23
     */
24
    public function fetchAll()
25
    {
26
        $statement = $this->connection->createQueryBuilder()
27
                    ->select('*')
28
                    ->from(self::TABLE)
29
                    ->execute();
30
31
        $result = $statement->fetchAll();
32
33
        if ($statement->rowCount() === 0) {
34
            throw new RecordsNotFoundException('No records found');
35
        }
36
37
        $records = [];
38
39
        foreach ($result as $item) {
40
            $records[] = $this->getEntityFromDatabaseArray($item);
41
        }
42
43
        return $records;
44
    }
45
46
    /**
47
     * @param array $where
48
     * @return GeoCacheDescModifiedEntity
49
     */
50
    public function fetchOneBy(array $where = [])
51
    {
52
        $queryBuilder = $this->connection->createQueryBuilder()
53
                     ->select('*')
54
                     ->from(self::TABLE)
55
                     ->setMaxResults(1);
56
57
        if (count($where) > 0) {
58
            foreach ($where as $column => $value) {
59
                $queryBuilder->andWhere($column . ' = ' . $queryBuilder->createNamedParameter($value));
60
            }
61
        }
62
63
        $statement = $queryBuilder->execute();
64
65
        $result = $statement->fetch();
66
67
        if ($statement->rowCount() === 0) {
68
            throw new RecordNotFoundException('Record with given where clause not found');
69
        }
70
71
        return $this->getEntityFromDatabaseArray($result);
72
    }
73
74
    /**
75
     * @param array $where
76
     * @return GeoCacheDescModifiedEntity[]
77
     */
78
    public function fetchBy(array $where = [])
79
    {
80
        $queryBuilder = $this->connection->createQueryBuilder()
81
                     ->select('*')
82
                     ->from(self::TABLE);
83
84
        if (count($where) > 0) {
85
            foreach ($where as $column => $value) {
86
                $queryBuilder->andWhere($column . ' = ' . $queryBuilder->createNamedParameter($value));
87
            }
88
        }
89
90
        $statement = $queryBuilder->execute();
91
92
        $result = $statement->fetchAll();
93
94
        if ($statement->rowCount() === 0) {
95
            throw new RecordsNotFoundException('No records with given where clause found');
96
        }
97
98
        $entities = [];
99
100
        foreach ($result as $item) {
101
            $entities[] = $this->getEntityFromDatabaseArray($item);
102
        }
103
104
        return $entities;
105
    }
106
107
    /**
108
     * @param GeoCacheDescModifiedEntity $entity
109
     * @return GeoCacheDescModifiedEntity
110
     */
111
    public function create(GeoCacheDescModifiedEntity $entity)
112
    {
113
        if (!$entity->isNew()) {
114
            throw new RecordAlreadyExistsException('The entity does already exist.');
115
        }
116
117
        $databaseArray = $this->getDatabaseArrayFromEntity($entity);
118
119
        $this->connection->insert(
120
                    self::TABLE,
121
                    $databaseArray
122
                );
123
124
        $entity->cacheId = (int) $this->connection->lastInsertId();
125
126
        return $entity;
127
    }
128
129
    /**
130
     * @param GeoCacheDescModifiedEntity $entity
131
     * @return GeoCacheDescModifiedEntity
132
     */
133
    public function update(GeoCacheDescModifiedEntity $entity)
134
    {
135
        if ($entity->isNew()) {
136
            throw new RecordNotPersistedException('The entity does not exist.');
137
        }
138
139
        $databaseArray = $this->getDatabaseArrayFromEntity($entity);
140
141
        $this->connection->update(
142
                    self::TABLE,
143
                    $databaseArray,
144
                    ['cache_id' => $entity->cacheId]
145
                );
146
147
        return $entity;
148
    }
149
150
    /**
151
     * @param GeoCacheDescModifiedEntity $entity
152
     * @return GeoCacheDescModifiedEntity
153
     */
154
    public function remove(GeoCacheDescModifiedEntity $entity)
155
    {
156
        if ($entity->isNew()) {
157
            throw new RecordNotPersistedException('The entity does not exist.');
158
        }
159
160
        $this->connection->delete(
161
                    self::TABLE,
162
                    ['cache_id' => $entity->cacheId]
163
                );
164
165
        $entity->cacheId = null;
166
167
        return $entity;
168
    }
169
170
    /**
171
     * @param GeoCacheDescModifiedEntity $entity
172
     * @return []
173
     */
174
    public function getDatabaseArrayFromEntity(GeoCacheDescModifiedEntity $entity)
175
    {
176
        return [
177
        'cache_id' => $entity->cacheId,
178
        'language' => $entity->language,
179
        'date_modified' => $entity->dateModified,
180
        'date_created' => $entity->dateCreated,
181
        'desc' => $entity->desc,
182
        'desc_html' => $entity->descHtml,
183
        'desc_htmledit' => $entity->descHtmledit,
184
        'hint' => $entity->hint,
185
        'short_desc' => $entity->shortDesc,
186
        'restored_by' => $entity->restoredBy,
187
        ];
188
    }
189
190
    /**
191
     * @param array $data
192
     * @return GeoCacheDescModifiedEntity
193
     */
194
    public function getEntityFromDatabaseArray(array $data)
195
    {
196
        $entity = new GeoCacheDescModifiedEntity();
197
        $entity->cacheId = (int) $data['cache_id'];
198
        $entity->language = (string) $data['language'];
199
        $entity->dateModified =  new DateTime($data['date_modified']);
200
        $entity->dateCreated =  new DateTime($data['date_created']);
201
        $entity->desc = (string) $data['desc'];
202
        $entity->descHtml = (int) $data['desc_html'];
203
        $entity->descHtmledit = (int) $data['desc_htmledit'];
204
        $entity->hint = (string) $data['hint'];
205
        $entity->shortDesc = (string) $data['short_desc'];
206
        $entity->restoredBy = (int) $data['restored_by'];
207
208
        return $entity;
209
    }
210
}
211

local/devel/Repositories/CacheReportsRepository.php 1 location

@@ 9-210 (lines=202) @@
6
use Oc\Repository\Exception\RecordNotPersistedException;
7
use Oc\Repository\Exception\RecordsNotFoundException;
8
9
class CacheReportsRepository
10
{
11
    const TABLE = 'cache_reports';
12
13
    /** @var Connection */
14
    private $connection;
15
16
    public function __construct(Connection $connection)
17
    {
18
        $this->connection = $connection;
19
    }
20
21
    /**
22
     * @return GeoCacheReportsEntity[]
23
     */
24
    public function fetchAll()
25
    {
26
        $statement = $this->connection->createQueryBuilder()
27
                    ->select('*')
28
                    ->from(self::TABLE)
29
                    ->execute();
30
31
        $result = $statement->fetchAll();
32
33
        if ($statement->rowCount() === 0) {
34
            throw new RecordsNotFoundException('No records found');
35
        }
36
37
        $records = [];
38
39
        foreach ($result as $item) {
40
            $records[] = $this->getEntityFromDatabaseArray($item);
41
        }
42
43
        return $records;
44
    }
45
46
    /**
47
     * @param array $where
48
     * @return GeoCacheReportsEntity
49
     */
50
    public function fetchOneBy(array $where = [])
51
    {
52
        $queryBuilder = $this->connection->createQueryBuilder()
53
                     ->select('*')
54
                     ->from(self::TABLE)
55
                     ->setMaxResults(1);
56
57
        if (count($where) > 0) {
58
            foreach ($where as $column => $value) {
59
                $queryBuilder->andWhere($column . ' = ' . $queryBuilder->createNamedParameter($value));
60
            }
61
        }
62
63
        $statement = $queryBuilder->execute();
64
65
        $result = $statement->fetch();
66
67
        if ($statement->rowCount() === 0) {
68
            throw new RecordNotFoundException('Record with given where clause not found');
69
        }
70
71
        return $this->getEntityFromDatabaseArray($result);
72
    }
73
74
    /**
75
     * @param array $where
76
     * @return GeoCacheReportsEntity[]
77
     */
78
    public function fetchBy(array $where = [])
79
    {
80
        $queryBuilder = $this->connection->createQueryBuilder()
81
                     ->select('*')
82
                     ->from(self::TABLE);
83
84
        if (count($where) > 0) {
85
            foreach ($where as $column => $value) {
86
                $queryBuilder->andWhere($column . ' = ' . $queryBuilder->createNamedParameter($value));
87
            }
88
        }
89
90
        $statement = $queryBuilder->execute();
91
92
        $result = $statement->fetchAll();
93
94
        if ($statement->rowCount() === 0) {
95
            throw new RecordsNotFoundException('No records with given where clause found');
96
        }
97
98
        $entities = [];
99
100
        foreach ($result as $item) {
101
            $entities[] = $this->getEntityFromDatabaseArray($item);
102
        }
103
104
        return $entities;
105
    }
106
107
    /**
108
     * @param GeoCacheReportsEntity $entity
109
     * @return GeoCacheReportsEntity
110
     */
111
    public function create(GeoCacheReportsEntity $entity)
112
    {
113
        if (!$entity->isNew()) {
114
            throw new RecordAlreadyExistsException('The entity does already exist.');
115
        }
116
117
        $databaseArray = $this->getDatabaseArrayFromEntity($entity);
118
119
        $this->connection->insert(
120
                    self::TABLE,
121
                    $databaseArray
122
                );
123
124
        $entity->id = (int) $this->connection->lastInsertId();
125
126
        return $entity;
127
    }
128
129
    /**
130
     * @param GeoCacheReportsEntity $entity
131
     * @return GeoCacheReportsEntity
132
     */
133
    public function update(GeoCacheReportsEntity $entity)
134
    {
135
        if ($entity->isNew()) {
136
            throw new RecordNotPersistedException('The entity does not exist.');
137
        }
138
139
        $databaseArray = $this->getDatabaseArrayFromEntity($entity);
140
141
        $this->connection->update(
142
                    self::TABLE,
143
                    $databaseArray,
144
                    ['id' => $entity->id]
145
                );
146
147
        return $entity;
148
    }
149
150
    /**
151
     * @param GeoCacheReportsEntity $entity
152
     * @return GeoCacheReportsEntity
153
     */
154
    public function remove(GeoCacheReportsEntity $entity)
155
    {
156
        if ($entity->isNew()) {
157
            throw new RecordNotPersistedException('The entity does not exist.');
158
        }
159
160
        $this->connection->delete(
161
                    self::TABLE,
162
                    ['id' => $entity->id]
163
                );
164
165
        $entity->cacheId = null;
166
167
        return $entity;
168
    }
169
170
    /**
171
     * @param GeoCacheReportsEntity $entity
172
     * @return []
173
     */
174
    public function getDatabaseArrayFromEntity(GeoCacheReportsEntity $entity)
175
    {
176
        return [
177
        'id' => $entity->id,
178
        'date_created' => $entity->dateCreated,
179
        'cacheid' => $entity->cacheid,
180
        'userid' => $entity->userid,
181
        'reason' => $entity->reason,
182
        'note' => $entity->note,
183
        'status' => $entity->status,
184
        'adminid' => $entity->adminid,
185
        'lastmodified' => $entity->lastmodified,
186
        'comment' => $entity->comment,
187
        ];
188
    }
189
190
    /**
191
     * @param array $data
192
     * @return GeoCacheReportsEntity
193
     */
194
    public function getEntityFromDatabaseArray(array $data)
195
    {
196
        $entity = new GeoCacheReportsEntity();
197
        $entity->id = (int) $data['id'];
198
        $entity->dateCreated =  new DateTime($data['date_created']);
199
        $entity->cacheid = (int) $data['cacheid'];
200
        $entity->userid = (int) $data['userid'];
201
        $entity->reason = (int) $data['reason'];
202
        $entity->note = (string) $data['note'];
203
        $entity->status = (int) $data['status'];
204
        $entity->adminid = (int) $data['adminid'];
205
        $entity->lastmodified = (string) $data['lastmodified'];
206
        $entity->comment = (string) $data['comment'];
207
208
        return $entity;
209
    }
210
}
211

local/devel/Repositories/GeodbTextdataRepository.php 1 location

@@ 9-210 (lines=202) @@
6
use Oc\Repository\Exception\RecordNotPersistedException;
7
use Oc\Repository\Exception\RecordsNotFoundException;
8
9
class GeodbTextdataRepository
10
{
11
    const TABLE = 'geodb_textdata';
12
13
    /** @var Connection */
14
    private $connection;
15
16
    public function __construct(Connection $connection)
17
    {
18
        $this->connection = $connection;
19
    }
20
21
    /**
22
     * @return GeodbTextdataEntity[]
23
     */
24
    public function fetchAll()
25
    {
26
        $statement = $this->connection->createQueryBuilder()
27
                    ->select('*')
28
                    ->from(self::TABLE)
29
                    ->execute();
30
31
        $result = $statement->fetchAll();
32
33
        if ($statement->rowCount() === 0) {
34
            throw new RecordsNotFoundException('No records found');
35
        }
36
37
        $records = [];
38
39
        foreach ($result as $item) {
40
            $records[] = $this->getEntityFromDatabaseArray($item);
41
        }
42
43
        return $records;
44
    }
45
46
    /**
47
     * @param array $where
48
     * @return GeodbTextdataEntity
49
     */
50
    public function fetchOneBy(array $where = [])
51
    {
52
        $queryBuilder = $this->connection->createQueryBuilder()
53
                     ->select('*')
54
                     ->from(self::TABLE)
55
                     ->setMaxResults(1);
56
57
        if (count($where) > 0) {
58
            foreach ($where as $column => $value) {
59
                $queryBuilder->andWhere($column . ' = ' . $queryBuilder->createNamedParameter($value));
60
            }
61
        }
62
63
        $statement = $queryBuilder->execute();
64
65
        $result = $statement->fetch();
66
67
        if ($statement->rowCount() === 0) {
68
            throw new RecordNotFoundException('Record with given where clause not found');
69
        }
70
71
        return $this->getEntityFromDatabaseArray($result);
72
    }
73
74
    /**
75
     * @param array $where
76
     * @return GeodbTextdataEntity[]
77
     */
78
    public function fetchBy(array $where = [])
79
    {
80
        $queryBuilder = $this->connection->createQueryBuilder()
81
                     ->select('*')
82
                     ->from(self::TABLE);
83
84
        if (count($where) > 0) {
85
            foreach ($where as $column => $value) {
86
                $queryBuilder->andWhere($column . ' = ' . $queryBuilder->createNamedParameter($value));
87
            }
88
        }
89
90
        $statement = $queryBuilder->execute();
91
92
        $result = $statement->fetchAll();
93
94
        if ($statement->rowCount() === 0) {
95
            throw new RecordsNotFoundException('No records with given where clause found');
96
        }
97
98
        $entities = [];
99
100
        foreach ($result as $item) {
101
            $entities[] = $this->getEntityFromDatabaseArray($item);
102
        }
103
104
        return $entities;
105
    }
106
107
    /**
108
     * @param GeodbTextdataEntity $entity
109
     * @return GeodbTextdataEntity
110
     */
111
    public function create(GeodbTextdataEntity $entity)
112
    {
113
        if (!$entity->isNew()) {
114
            throw new RecordAlreadyExistsException('The entity does already exist.');
115
        }
116
117
        $databaseArray = $this->getDatabaseArrayFromEntity($entity);
118
119
        $this->connection->insert(
120
                    self::TABLE,
121
                    $databaseArray
122
                );
123
124
        $entity->locId = (int) $this->connection->lastInsertId();
125
126
        return $entity;
127
    }
128
129
    /**
130
     * @param GeodbTextdataEntity $entity
131
     * @return GeodbTextdataEntity
132
     */
133
    public function update(GeodbTextdataEntity $entity)
134
    {
135
        if ($entity->isNew()) {
136
            throw new RecordNotPersistedException('The entity does not exist.');
137
        }
138
139
        $databaseArray = $this->getDatabaseArrayFromEntity($entity);
140
141
        $this->connection->update(
142
                    self::TABLE,
143
                    $databaseArray,
144
                    ['loc_id' => $entity->locId]
145
                );
146
147
        return $entity;
148
    }
149
150
    /**
151
     * @param GeodbTextdataEntity $entity
152
     * @return GeodbTextdataEntity
153
     */
154
    public function remove(GeodbTextdataEntity $entity)
155
    {
156
        if ($entity->isNew()) {
157
            throw new RecordNotPersistedException('The entity does not exist.');
158
        }
159
160
        $this->connection->delete(
161
                    self::TABLE,
162
                    ['loc_id' => $entity->locId]
163
                );
164
165
        $entity->cacheId = null;
166
167
        return $entity;
168
    }
169
170
    /**
171
     * @param GeodbTextdataEntity $entity
172
     * @return []
173
     */
174
    public function getDatabaseArrayFromEntity(GeodbTextdataEntity $entity)
175
    {
176
        return [
177
        'loc_id' => $entity->locId,
178
        'text_val' => $entity->textVal,
179
        'text_type' => $entity->textType,
180
        'text_locale' => $entity->textLocale,
181
        'is_native_lang' => $entity->isNativeLang,
182
        'is_default_name' => $entity->isDefaultName,
183
        'valid_since' => $entity->validSince,
184
        'date_type_since' => $entity->dateTypeSince,
185
        'valid_until' => $entity->validUntil,
186
        'date_type_until' => $entity->dateTypeUntil,
187
        ];
188
    }
189
190
    /**
191
     * @param array $data
192
     * @return GeodbTextdataEntity
193
     */
194
    public function getEntityFromDatabaseArray(array $data)
195
    {
196
        $entity = new GeodbTextdataEntity();
197
        $entity->locId = (int) $data['loc_id'];
198
        $entity->textVal = (string) $data['text_val'];
199
        $entity->textType = (int) $data['text_type'];
200
        $entity->textLocale = (string) $data['text_locale'];
201
        $entity->isNativeLang = $data['is_native_lang'];
202
        $entity->isDefaultName = $data['is_default_name'];
203
        $entity->validSince =  new DateTime($data['valid_since']);
204
        $entity->dateTypeSince = (int) $data['date_type_since'];
205
        $entity->validUntil =  new DateTime($data['valid_until']);
206
        $entity->dateTypeUntil = (int) $data['date_type_until'];
207
208
        return $entity;
209
    }
210
}
211

local/devel/Repositories/GkItemRepository.php 1 location

@@ 9-210 (lines=202) @@
6
use Oc\Repository\Exception\RecordNotPersistedException;
7
use Oc\Repository\Exception\RecordsNotFoundException;
8
9
class GkItemRepository
10
{
11
    const TABLE = 'gk_item';
12
13
    /** @var Connection */
14
    private $connection;
15
16
    public function __construct(Connection $connection)
17
    {
18
        $this->connection = $connection;
19
    }
20
21
    /**
22
     * @return GkItemEntity[]
23
     */
24
    public function fetchAll()
25
    {
26
        $statement = $this->connection->createQueryBuilder()
27
                    ->select('*')
28
                    ->from(self::TABLE)
29
                    ->execute();
30
31
        $result = $statement->fetchAll();
32
33
        if ($statement->rowCount() === 0) {
34
            throw new RecordsNotFoundException('No records found');
35
        }
36
37
        $records = [];
38
39
        foreach ($result as $item) {
40
            $records[] = $this->getEntityFromDatabaseArray($item);
41
        }
42
43
        return $records;
44
    }
45
46
    /**
47
     * @param array $where
48
     * @return GkItemEntity
49
     */
50
    public function fetchOneBy(array $where = [])
51
    {
52
        $queryBuilder = $this->connection->createQueryBuilder()
53
                     ->select('*')
54
                     ->from(self::TABLE)
55
                     ->setMaxResults(1);
56
57
        if (count($where) > 0) {
58
            foreach ($where as $column => $value) {
59
                $queryBuilder->andWhere($column . ' = ' . $queryBuilder->createNamedParameter($value));
60
            }
61
        }
62
63
        $statement = $queryBuilder->execute();
64
65
        $result = $statement->fetch();
66
67
        if ($statement->rowCount() === 0) {
68
            throw new RecordNotFoundException('Record with given where clause not found');
69
        }
70
71
        return $this->getEntityFromDatabaseArray($result);
72
    }
73
74
    /**
75
     * @param array $where
76
     * @return GkItemEntity[]
77
     */
78
    public function fetchBy(array $where = [])
79
    {
80
        $queryBuilder = $this->connection->createQueryBuilder()
81
                     ->select('*')
82
                     ->from(self::TABLE);
83
84
        if (count($where) > 0) {
85
            foreach ($where as $column => $value) {
86
                $queryBuilder->andWhere($column . ' = ' . $queryBuilder->createNamedParameter($value));
87
            }
88
        }
89
90
        $statement = $queryBuilder->execute();
91
92
        $result = $statement->fetchAll();
93
94
        if ($statement->rowCount() === 0) {
95
            throw new RecordsNotFoundException('No records with given where clause found');
96
        }
97
98
        $entities = [];
99
100
        foreach ($result as $item) {
101
            $entities[] = $this->getEntityFromDatabaseArray($item);
102
        }
103
104
        return $entities;
105
    }
106
107
    /**
108
     * @param GkItemEntity $entity
109
     * @return GkItemEntity
110
     */
111
    public function create(GkItemEntity $entity)
112
    {
113
        if (!$entity->isNew()) {
114
            throw new RecordAlreadyExistsException('The entity does already exist.');
115
        }
116
117
        $databaseArray = $this->getDatabaseArrayFromEntity($entity);
118
119
        $this->connection->insert(
120
                    self::TABLE,
121
                    $databaseArray
122
                );
123
124
        $entity->id = (int) $this->connection->lastInsertId();
125
126
        return $entity;
127
    }
128
129
    /**
130
     * @param GkItemEntity $entity
131
     * @return GkItemEntity
132
     */
133
    public function update(GkItemEntity $entity)
134
    {
135
        if ($entity->isNew()) {
136
            throw new RecordNotPersistedException('The entity does not exist.');
137
        }
138
139
        $databaseArray = $this->getDatabaseArrayFromEntity($entity);
140
141
        $this->connection->update(
142
                    self::TABLE,
143
                    $databaseArray,
144
                    ['id' => $entity->id]
145
                );
146
147
        return $entity;
148
    }
149
150
    /**
151
     * @param GkItemEntity $entity
152
     * @return GkItemEntity
153
     */
154
    public function remove(GkItemEntity $entity)
155
    {
156
        if ($entity->isNew()) {
157
            throw new RecordNotPersistedException('The entity does not exist.');
158
        }
159
160
        $this->connection->delete(
161
                    self::TABLE,
162
                    ['id' => $entity->id]
163
                );
164
165
        $entity->cacheId = null;
166
167
        return $entity;
168
    }
169
170
    /**
171
     * @param GkItemEntity $entity
172
     * @return []
173
     */
174
    public function getDatabaseArrayFromEntity(GkItemEntity $entity)
175
    {
176
        return [
177
        'id' => $entity->id,
178
        'name' => $entity->name,
179
        'description' => $entity->description,
180
        'userid' => $entity->userid,
181
        'datecreated' => $entity->datecreated,
182
        'distancetravelled' => $entity->distancetravelled,
183
        'latitude' => $entity->latitude,
184
        'longitude' => $entity->longitude,
185
        'typeid' => $entity->typeid,
186
        'stateid' => $entity->stateid,
187
        ];
188
    }
189
190
    /**
191
     * @param array $data
192
     * @return GkItemEntity
193
     */
194
    public function getEntityFromDatabaseArray(array $data)
195
    {
196
        $entity = new GkItemEntity();
197
        $entity->id = (int) $data['id'];
198
        $entity->name = (string) $data['name'];
199
        $entity->description = (string) $data['description'];
200
        $entity->userid = (int) $data['userid'];
201
        $entity->datecreated =  new DateTime($data['datecreated']);
202
        $entity->distancetravelled = $data['distancetravelled'];
203
        $entity->latitude = $data['latitude'];
204
        $entity->longitude = $data['longitude'];
205
        $entity->typeid = (int) $data['typeid'];
206
        $entity->stateid = (int) $data['stateid'];
207
208
        return $entity;
209
    }
210
}
211