Reordering/Moving rows in Smartsheet doesn't seem to trigger events - smartsheet-api

I've noticed what seems to be a significant issue with my current work to integrate changes done in a Smartsheet sheet to be reflected in our own product - move actions, such as for reordering rows, doesn't generate any events. When I registered the webhook, I specified a scope of sheet, and "." for the events. Is there something separate I can do be notified when rows are moved?
I don't see anything specific about move events in the API documentation I found, but since I'm using '.' I would expect an event callback to happen with the events array containing an event type of 'moved', or something similar to inform me of the move.

Related

Test fail in IFTTT with "returns at least three items"

I'm creating my own service and in the endpoint test fails here and this error is shown:
"returns at least three items"
This error comes from the trigger part.
Can somebody share a sample value of output with three items in it. Please help
IFTTT Expects you to send at least 3 result items, to skip just clone the same object twice with different ids.
From the FAQ section;
My service fails the returns at least three items endpoint test. Why does IFTTT require three items? We require three items during the
testing phase to make sure your API behaves like a timeline of events,
not a state engine.
This requirement might seem strange when you think of your integration
with IFTTT as something that is entirely realtime in nature, like “IF
Button Pressed, THEN Turn On Lights”— what good would come from
anything but the current state of the button?
But what about the Applet “IF Button Pressed, THEN Log to
Spreadsheet”? In this case it would be important to store and return
multiple event items because there is no guarantee that we’ll call
your API (even with the Realtime API) at the moment the event occurs.
By keeping and returning a list of events, IFTTT users are more
assured they won’t miss a thing.

Track data for my own action dimension in Matomo (without custom dimensions plugin)

I need to track some user activity like special clicks, scrolls, and mouse drags, combined with the data I get from the website's back-end.
At first I did it using custom events and created a plugin to read them and generate the reports. But events have their own limitations (like number of archived table rows, ...) and did not fit my use case. Besides events get shown on other reports and views and I don't want to clutter them by my too many events which do not have any meaning out of my plugin's reports.
Using the custom dimensions plugin would not work for me. It is limited and I want to develop and publish my own plugin to my customers.
So I created my own action dimensions.
My plugin works well with the action dimensions I added, and can receive the data from user's activity if I use my previous custom events to send the data. But I don't know how to send my tracking data to it without using events.
I searched for it in Matomo forum, just found some similar questions beening unanswered for a long time.
So my main question is:
How I can send the data of user actions to my plugin's dimension without using events?
Also, am I on the right track? Is creating my own action dimension the correct way to do it?

New/Read Flags in CQRS

I am currently drafting a concept for a (mostly) HTML-based collaboration suite which I plan to implement using CQRS. This software will contain messages that can be sent to the user (which can either be read or unread, obviously) and other elements which shall be marked "new" if they were created after the last user login.
Hardly something new, but I am not quite sure how that would be correctly implemented using CQRS. As I understand it, Change of any kind should, without exception, only be possible via Commands. But creating commands for every single (new) element that is being accessed seems a bit too much, not to mention the overhead.
I don't know if I need it, but what would be the best way to implement a Last-Accessed Timestamp on elements. Basically the same problem like the above, with the difference that the change happens EVERY time the element is accessed, not only the first time for each user.
CQRS seems to be an awesome concept but it really needs more learning material. Can't wait till a book is released :)
Regards
[Edit] No one? Wouldn't have thought that this is such a complicated issue..
I assume you're using event-sourcing in which case once you allow your query-service/event-handlers to raise appropriate events then this becomes fairly easy to solve.
For your messages/elements; when handling the specific creation events of your elements either add to existing or create additional event-handlers, to store to a messages read-model with a status of new and appropriate information about the element.
As part of you're user login I don't see why you can't raise a user-logged-in event (from the security/query service depending on how your implementing authentication) to say the user has logged in. An event-handler could capture this and write the last-login timestamp to a specific user-last-login read-model.
In addition the user-logged-in event-handler would need to update all the new messages (for that user) to an unread status. Seeing as we're changing the status of the messages as the user logs in do you still need to store the last-login timestamp?
For your last-accessed timestamp, perhaps you could just work this into your query service as queries for your different elements complete. Raise a query-completed event with element id/type information.

Google Calendar recurring events (iPhone)

I'm in the middle of building a simple iPhone calendar app, & I really do need only simple functionality - add event, update event, delete event, with the only complexity being the events need to have the option of being recurring or single. I have managed the add & delete event bit easily enough, but I'm finding it impossible to do the other bits, namely -
add an event with recurrences (ie, up to a certain date, every x days, etc)
edit an existing event, so that it recurrs or stops recurring
edit a specific recurrence of a recurring event / or all recurrences
I think I can manage the other stuff, but the GData documentation seems almost non-existent (if anyone can point me to some meaningful objective-c docs for the GData stuff, I'd be a really happy bunny - at the moment I'm gradually trawling through all its code to try & figure out how to use it)
Any code samples for the above would be very much appreciated!
Many thanks.
add event with recurrences:
Recurrences are expressed in iCalendar format. You have to fortunately know only fields DTSTART, DTEND, EXDATE, RDATE, RRULE. Also notice, that alarms are placed in the root of xml event entry. (You cannot use when and recurrence tag together). Google calendar web app does not mark RDATE, EXDATE, but understands them and other applications can mark them.
edit recurring event:
If you are able to post normal and recurring event it should be no problem to update it. I tested update to google from normal to recurring and back without no problem.
edit a specific recurrence of a recurring event
Exceptions from recurrence are expressed as new events (confirmed or canceled) which have link (in tag) originalEvent to the recurring event. Be aware that modification of a field in a recurring event can automatically change the field in the events exceptions (e.g. title). If you remove the originalEvent while updating to google, google silently ignores it.

Retaining Events from the user's calendar

I'm working on an App that needs to remember events selected by the user from their calendar and I've run into a problem with recurring events.
For non-recurring events I can just store the eventIdentifier and fetch the event from the Event Store when I need it.
But recurring events all share the same eventIdentifier. When I go back to the Event Store to fetch the event (based on the eventIdentifier) I get the very first event in the recurrence chain ... not the Nth recurrence of the event that the user selected.
I can't persist the user selected events by archiving the entire EKEvent object since EventKit doesn't support NSCoding.
I'm considering storing the eventIdentifier and Start & End dates so that I can fetch the correct event from the Event Store ... but that seems pretty kludgy and might make tracking changes the user makes in their calendar between launches of my App tricky.
Any thoughts or suggestions?
The event identifier alone is not enough even for non recurring events. Indeed, it can change when the user moves the event to a different calendar. For recurring events, it may change upon detaching an occurrence or splitting the recurrence.Therefore, it is common practice to search for events using a subset of information (say title, start and due date). You should not rely on event identifiers.
Unfortunately, the framework does not provide us with the raw data of an event, it just provides all of the occurrences of the events in a specified interval. Therefore, there is no such thing (using the framework) as the possibility of retrieving a single recurring event and then expanding its recurrence to get its n-th occurrence: you need to manually post-process the retrieved events in order to find the ones you are interested to.
The problem here is that the APIs provided are not meant for sync purposes. Many developers have complained and still complain about this by filing a bug/feature request using Radar. Until now, Apple answer about is that the APIs fulfill a different purpose, since sync is automatic. However, this is true when syncing through iTunes, but not programmatically.