39
39
* @package OCA\Maps\Service
40
40
*/
41
41
class AddressService {
42
- private $ qb ;
43
42
private $ dbconnection ;
44
43
private $ jobList ;
45
44
private $ appData ;
@@ -55,7 +54,6 @@ public function __construct(
55
54
IDBConnection $ dbconnection ,
56
55
) {
57
56
$ this ->dbconnection = $ dbconnection ;
58
- $ this ->qb = $ dbconnection ->getQueryBuilder ();
59
57
$ this ->memcache = $ cacheFactory ->createLocal ('maps ' );
60
58
$ this ->jobList = $ jobList ;
61
59
$ this ->appData = $ appData ;
@@ -78,11 +76,12 @@ public function addressToGeo($adr, $uri): string {
78
76
*/
79
77
public function lookupAddress ($ adr , $ uri ): array {
80
78
$ adr_norm = strtolower (preg_replace ('/\s+/ ' , '' , $ adr ));
81
- $ this ->qb ->select ('id ' , 'lat ' , 'lng ' , 'looked_up ' )
79
+ $ qb = $ this ->dbconnection ->getQueryBuilder ();
80
+ $ qb ->select ('id ' , 'lat ' , 'lng ' , 'looked_up ' )
82
81
->from ('maps_address_geo ' )
83
- ->where ($ this -> qb ->expr ()->eq ('object_uri ' , $ this -> qb ->createNamedParameter ($ uri , IQueryBuilder::PARAM_STR )))
84
- ->andWhere ($ this -> qb ->expr ()->eq ('adr_norm ' , $ this -> qb ->createNamedParameter ($ adr_norm , IQueryBuilder::PARAM_STR )));
85
- $ req = $ this -> qb ->execute ();
82
+ ->where ($ qb ->expr ()->eq ('object_uri ' , $ qb ->createNamedParameter ($ uri , IQueryBuilder::PARAM_STR )))
83
+ ->andWhere ($ qb ->expr ()->eq ('adr_norm ' , $ qb ->createNamedParameter ($ adr_norm , IQueryBuilder::PARAM_STR )));
84
+ $ req = $ qb ->execute ();
86
85
$ lat = null ;
87
86
$ lng = null ;
88
87
$ inDb = false ;
@@ -122,14 +121,13 @@ public function lookupAddress($adr, $uri): array {
122
121
123
122
} else {
124
123
if ($ lookedUp ) {
125
- $ this -> qb ->update ('maps_address_geo ' )
124
+ $ qb ->update ('maps_address_geo ' )
126
125
->set ('lat ' , $ qb ->createNamedParameter ($ lat , IQueryBuilder::PARAM_STR ))
127
126
->set ('lng ' , $ qb ->createNamedParameter ($ lng , IQueryBuilder::PARAM_STR ))
128
127
->set ('object_uri ' , $ qb ->createNamedParameter ($ uri , IQueryBuilder::PARAM_STR ))
129
128
->set ('looked_up ' , $ qb ->createNamedParameter ($ lookedUp , IQueryBuilder::PARAM_BOOL ))
130
- ->where ($ this ->qb ->expr ()->eq ('id ' , $ this ->qb ->createNamedParameter ($ id , IQueryBuilder::PARAM_STR )));
131
- $ req = $ this ->qb ->execute ();
132
- $ qb = $ this ->dbconnection ->getQueryBuilder ();
129
+ ->where ($ qb ->expr ()->eq ('id ' , $ qb ->createNamedParameter ($ id , IQueryBuilder::PARAM_STR )));
130
+ $ req = $ qb ->execute ();
133
131
}
134
132
}
135
133
@@ -149,18 +147,18 @@ private function lookupAddressInternal($adr): array {
149
147
150
148
$ adr_norm = strtolower (preg_replace ('/\s+/ ' , '' , $ adr ));
151
149
152
- $ this ->qb ->select ('lat ' , 'lng ' )
150
+ $ qb = $ this ->dbconnection ->getQueryBuilder ();
151
+ $ qb ->select ('lat ' , 'lng ' )
153
152
->from ('maps_address_geo ' )
154
- ->where ($ this -> qb ->expr ()->eq ('looked_up ' , $ this -> qb ->createNamedParameter (true , IQueryBuilder::PARAM_BOOL )))
155
- ->andWhere ($ this -> qb ->expr ()->eq ('adr_norm ' , $ this -> qb ->createNamedParameter ($ adr_norm , IQueryBuilder::PARAM_STR )));
156
- $ req = $ this -> qb ->execute ();
153
+ ->where ($ qb ->expr ()->eq ('looked_up ' , $ qb ->createNamedParameter (true , IQueryBuilder::PARAM_BOOL )))
154
+ ->andWhere ($ qb ->expr ()->eq ('adr_norm ' , $ qb ->createNamedParameter ($ adr_norm , IQueryBuilder::PARAM_STR )));
155
+ $ req = $ qb ->execute ();
157
156
while ($ row = $ req ->fetch ()) {
158
157
$ res [0 ] = $ row ['lat ' ];
159
158
$ res [1 ] = $ row ['lng ' ];
160
159
$ res [2 ] = true ;
161
160
}
162
161
$ req ->closeCursor ();
163
- $ qb = $ this ->dbconnection ->getQueryBuilder ();
164
162
165
163
return $ res ;
166
164
}
@@ -236,7 +234,7 @@ public function scheduleVCardForLookup($cardData, $cardUri) {
236
234
}
237
235
238
236
private function cleanUpDBContactAddresses ($ vCard , $ uri ) {
239
- $ qb = $ this ->qb ;
237
+ $ qb = $ this ->dbconnection -> getQueryBuilder () ;
240
238
// get all vcard addresses
241
239
$ vCardAddresses = [];
242
240
foreach ($ vCard ->children () as $ property ) {
@@ -247,36 +245,34 @@ private function cleanUpDBContactAddresses($vCard, $uri) {
247
245
}
248
246
// check which addresses from DB is not in the vCard anymore
249
247
$ adrIdToDelete = [];
250
- $ this -> qb ->select ('id ' , 'adr ' )
248
+ $ qb ->select ('id ' , 'adr ' )
251
249
->from ('maps_address_geo ' )
252
- ->where ($ this -> qb ->expr ()->eq ('object_uri ' , $ this -> qb ->createNamedParameter ($ uri , IQueryBuilder::PARAM_STR )));
253
- $ req = $ this -> qb ->execute ();
250
+ ->where ($ qb ->expr ()->eq ('object_uri ' , $ qb ->createNamedParameter ($ uri , IQueryBuilder::PARAM_STR )));
251
+ $ req = $ qb ->execute ();
254
252
while ($ row = $ req ->fetch ()) {
255
253
if (!in_array ($ row ['adr ' ], $ vCardAddresses )) {
256
254
array_push ($ adrIdToDelete , $ row ['id ' ]);
257
255
}
258
256
}
259
257
$ req ->closeCursor ();
260
- $ qb = $ this ->dbconnection ->getQueryBuilder ();
261
258
262
259
foreach ($ adrIdToDelete as $ id ) {
260
+ $ qb = $ this ->dbconnection ->getQueryBuilder ();
263
261
$ qb ->delete ('maps_address_geo ' )
264
262
->where (
265
263
$ qb ->expr ()->eq ('id ' , $ qb ->createNamedParameter ($ id , IQueryBuilder::PARAM_INT ))
266
264
);
267
265
$ req = $ qb ->execute ();
268
- $ qb = $ this ->dbconnection ->getQueryBuilder ();
269
266
}
270
267
}
271
268
272
269
public function deleteDBContactAddresses ($ uri ) {
273
- $ qb = $ this ->qb ;
270
+ $ qb = $ this ->dbconnection -> getQueryBuilder () ;
274
271
$ qb ->delete ('maps_address_geo ' )
275
272
->where (
276
273
$ qb ->expr ()->eq ('object_uri ' , $ qb ->createNamedParameter ($ uri , IQueryBuilder::PARAM_STR ))
277
274
);
278
275
$ req = $ qb ->execute ();
279
- $ qb = $ this ->dbconnection ->getQueryBuilder ();
280
276
}
281
277
282
278
// schedules the address for an external lookup
@@ -287,18 +283,18 @@ private function scheduleForLookup($adr, $uri): array {
287
283
$ geo = $ this ->lookupAddressExternal ($ adr );
288
284
}
289
285
$ adr_norm = strtolower (preg_replace ('/\s+/ ' , '' , $ adr ));
290
- $ this ->qb ->insert ('maps_address_geo ' )
286
+ $ qb = $ this ->dbconnection ->getQueryBuilder ();
287
+ $ qb ->insert ('maps_address_geo ' )
291
288
->values ([
292
- 'adr ' => $ this -> qb ->createNamedParameter ($ adr , IQueryBuilder::PARAM_STR ),
293
- 'adr_norm ' => $ this -> qb ->createNamedParameter ($ adr_norm , IQueryBuilder::PARAM_STR ),
294
- 'object_uri ' => $ this -> qb ->createNamedParameter ($ uri , IQueryBuilder::PARAM_STR ),
295
- 'lat ' => $ this -> qb ->createNamedParameter ($ geo [0 ], IQueryBuilder::PARAM_STR ),
296
- 'lng ' => $ this -> qb ->createNamedParameter ($ geo [1 ], IQueryBuilder::PARAM_STR ),
297
- 'looked_up ' => $ this -> qb ->createNamedParameter ($ geo [2 ], IQueryBuilder::PARAM_BOOL ),
289
+ 'adr ' => $ qb ->createNamedParameter ($ adr , IQueryBuilder::PARAM_STR ),
290
+ 'adr_norm ' => $ qb ->createNamedParameter ($ adr_norm , IQueryBuilder::PARAM_STR ),
291
+ 'object_uri ' => $ qb ->createNamedParameter ($ uri , IQueryBuilder::PARAM_STR ),
292
+ 'lat ' => $ qb ->createNamedParameter ($ geo [0 ], IQueryBuilder::PARAM_STR ),
293
+ 'lng ' => $ qb ->createNamedParameter ($ geo [1 ], IQueryBuilder::PARAM_STR ),
294
+ 'looked_up ' => $ qb ->createNamedParameter ($ geo [2 ], IQueryBuilder::PARAM_BOOL ),
298
295
]);
299
- $ req = $ this ->qb ->execute ();
300
- $ id = $ this ->qb ->getLastInsertId ();
301
- $ qb = $ this ->dbconnection ->getQueryBuilder ();
296
+ $ req = $ qb ->execute ();
297
+ $ id = $ qb ->getLastInsertId ();
302
298
if (!$ geo [2 ]) {
303
299
$ this ->jobList ->add (LookupMissingGeoJob::class, []);
304
300
}
@@ -310,11 +306,12 @@ private function scheduleForLookup($adr, $uri): array {
310
306
public function lookupMissingGeo ($ max = 200 ):bool {
311
307
// stores if all addresses where looked up
312
308
$ lookedUpAll = true ;
313
- $ this ->qb ->select ('adr ' , 'object_uri ' )
309
+ $ qb = $ this ->dbconnection ->getQueryBuilder ();
310
+ $ qb ->select ('adr ' , 'object_uri ' )
314
311
->from ('maps_address_geo ' )
315
- ->where ($ this -> qb ->expr ()->eq ('looked_up ' , $ this -> qb ->createNamedParameter (false , IQueryBuilder::PARAM_BOOL )))
312
+ ->where ($ qb ->expr ()->eq ('looked_up ' , $ qb ->createNamedParameter (false , IQueryBuilder::PARAM_BOOL )))
316
313
->setMaxResults ($ max );
317
- $ req = $ this -> qb ->execute ();
314
+ $ req = $ qb ->execute ();
318
315
$ result = $ req ->fetchAll ();
319
316
$ req ->closeCursor ();
320
317
$ i = 0 ;
0 commit comments