Hi,
APPLICATION ID: E655DC15-398E-A358-FFC1-1D414D006C00
I’m having an issue with the a Point data type. We haven’t made any changes regarding how we handle saving points but it seems with a recent update, we can’t save Cartesian points like we used to. For example trying to save data in our “midpoint” column in the “Lobby” table, we use the Create GEO Point method in the GEO Location API to create the point we want to save after giving the logitude and latitude.
We get this error:
[1677250] Error: Invalid GIS data provided. Correct string with WKT or string with GeoJSON or just GeoJSON object is required. at checkStatus (/usr/local/lib/node_modules/backendless-coderunner/node_modules/backendless-request/lib/request.js:343:9) at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
Everything worked fine regarding this data type but we had a similar issue a few months ago. Now, we’re not sure what the issue is and it breaks the core flow of our application if we can’t save Points.
NOTE: Also, is there a way or a channel I can join to get notified on when a backendless update occurs that could affect our application based on the backend we’ve structured? Just want to at least have a heads up so we can prepare in the future
Hello @Innocent_Nwaukwa!
Could you please provide the data you are trying to save?
You can follow the release history at this link:
Also, we constantly share news about new releases and other useful information on Slack in the announcements and general channels.
Regards,
Alexander
Perfect!
I’ll join the slack so I can get the updates as well.
As for the values, we’re providing values like:
-87.4238272238508 for latitude and 26.582745037975298 for longitude in the Create GEO Point method in the GEO Location API.
I created a simple service and used the data you provided, but everything works correctly and without errors on my end.
Could you please create a simple service with test data where this error occurs so we can check in your application?
Regards,
Alexander
Yeah, I can get that created but one thing I wanted to note:
Previously, we were able to save Cartesian coordinates without issue but now the Point data type no matter what, seems to expect the data in GeoJson or WKT format. Even when we set the Point type to Cartesian.
Thank You,
Innocent.
Hi Alexander,
Found what seemed to be the actual issue. So:
We had a method that instantiated a properties of Point data type and we were trying to add a user’s longitude and latitude to the initial 0 properties before setting the values in the database.
The issue is that we couldn’t even get those user objects because of the way we were pulling the data.
Referencing the above image, we have a column called “participants” in the “Lobby” which has a relation to the “Participants” table.
Previously, we could add “participants” in the relations tab of the “Get Object By Id” method and it would actually return the Partticipant objects from the participant relation in the form of a Participant list. However, now we get an empty list, so something is different now in the way that relations tab works for the method. Our workaround is just to get it through the properties tab instead: “participants as participants”, and that works fine.
I assume there was a change in this regard and I just wasn’t in the slack channel to get the updates. Speaking of: how would I join the Slack channel because I get this email response when I expect a confirmation:
Thank You,
Innocent.
Hi @Innocent_Nwaukwa ,
I’m trying to understand your case better. Allow me to clarify some details for a complete understanding.
So, am I correct in understanding that this particular function variant, which is shown in the screenshot, is working as expected and returning a populated list?
However, if you remove the participants as participants
value from the properties, you start getting back an empty list?
Moreover, before the server update, this used to work and the list was populated?
I couldn’t find a test service in your application where I could try out this logic, test it, and see the error without risking breaking anything.
Regards,
Viktor
You’re partially right.
So, in the relations area of that method, if I pass in the string “participants”, it used to return the Participant objects for the entry in the Lobby table as a list. Keep in mind: “participants” is a column in the Lobby table with a 1 to many relationship with the Participant table.
Here is a sample of the issue:
The above screenshot is the new version of the code that works. It returns a “participants” list as part of the object returned.
This is what it looked like before:
I believe the issue is that we didn’t properly set the “participants” property in the “properties” section of the code block. In the correct version, to get the property, we pass the text “participants as participants”. Which would explain why we got an empty list for “participants”.
However, the fact that it worked previously is what confuses. It’s almost like, the relations section of the code block actually returned the participants list but now, it doesn’t because
‘the name of the property returned from “relations” =
the name of the “participants” property in the properties tab =
"participants.’
I don’t know if it was intended but it seems to have been a side effect that now forces what we have in place to be structured correctly like in the first screenshot.
I have provided an endpoint in the Testing/test endpoint for you to check out if you’d like. It’s in the state of the second screenshot and you can compare the results with the state of the first to see the variation.
Thank You,
Innocent.
ALSO: how would I join the slack channel so I can be aware of the changes and updates being deployed?
Hello Innocent,
Thank you for the information provided.
I will need some time to look into it and get back to you with an answer.
Regarding joining Slack, could you please try registering using this link?
Regards,
Alexander
Could you please clarify one more point – doesn’t the Get Object By Id
block (if you add participants
to relations
and remove participants
or participants as participants
from properties
) return an array of relations now?
Regards,
Alexander
Yes, it does.
I’m just letting you know that it also did when both were present before the update. I don’t know if it was intended or not but wanted to let you know.
ALSO: Do I need an invite to get into the slack?
I can’t access it.