Details
-
Type: extRequest
-
Status: Closed
-
Priority: Major
-
Resolution: Done
-
Fix Version/s: Sprint 4.4.3, 2021
-
Component/s: FIWARE-TECH-HELP
-
Labels:None
-
HD-Chapter:WebUI
-
HD-Enabler:POI Provider
Description
Hi,
A user found (and fixed) some bugs on the POI Data Provider GE.
Here it is his report:
"
Hi.
We are using a custom data field in our POI data. Based on the POI Data Provider documentation it should support adding custom fields to the data in addition to the "fw_core" field. However the POI Data Provider would not accept JSON data that had other than the predefined "fw_xxx" fields.
The code in add_poi.php gets a list of supported components by calling get_supported_components() from db.php which has a hardcoded list of supported component names.
We have fixed that by modifying the PHP code in our own instance ourselves. The change was made to db.php as follows:
function get_supported_components()
{
// Markus Kauppinen: Added "mipsoft_landmarker"
$components = array("fw_core", "fw_contact", "fw_xml3d", "fw_media",
"fw_time", "fw_sensor", "fw_marker", "fw_relationships",
"mipsoft_landmarker");
return $components;
}
Also handling the timestamps when updating data could be better documented. It's quite confusing. It's not instantly clear should we include a new timestamp in the JSON data that we send via HTTP POST or will the receiving PHP code assign a new one.
We now know that the PHP code inserts a new timestamp to the fw_core data. But it does not insert it to the custom data. However when updating it checks both timestamps (in update_poi.php) and if they do not match then that (custom) data is not updated. The PHP code even doesn't allow a zero timestamp value so it must a valid value.
So it doesn't set the custom data timestamp but still expects a valid one when updating data. This is a clear error. It should either set the custom data timestamp or allow a zero timestamp when updating the data. We have now ourselves modified the PHP code to insert the custom data timestamp as well in add_poi.php as follows:
$mongodb = connectMongoDB($db_opts['mongo_db_name']);
foreach($request_array as $comp_name => $comp_data)
{
if ($comp_name == 'fw_core')
continue;
if (in_array($comp_name, $supported_components))
}
"
Thanks in advance.
(Reported by xavier.carol@i2cat.net)
Issue Links
- clones
-
HELC-710 FIWARE.Request.Coach.CreatiFI.General Support #246: A couple of bugs in the POI Data Provider GE
- Closed
Activity
Transition | Time In Source Status | Execution Times | Last Executer | Last Execution Date | |||||
---|---|---|---|---|---|---|---|---|---|
|
99d 20h 13m | 1 | Ari Okkonen | 19/Aug/15 2:04 PM | |||||
|
19d 47m | 1 | Ari Okkonen | 07/Sep/15 2:52 PM | |||||
|
20h 42m | 1 | Ari Okkonen | 08/Sep/15 11:34 AM | |||||
|
125d 22h 34m | 1 | Manuel Escriche | 12/Jan/16 9:08 AM |