Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: zapier integration #2577

Merged
merged 25 commits into from
Jul 25, 2024
Merged

feat: zapier integration #2577

merged 25 commits into from
Jul 25, 2024

Conversation

kylemcshea
Copy link
Contributor

@kylemcshea kylemcshea commented Jul 10, 2024

Link to ticket

Please add a link to the GitHub issue being addressed by this change.

Developer Guide
https://docs.google.com/document/d/1HWamnw-ebKEM60mPL8sLQYJPW8inJHF2a-RSXnIxG5c/edit#heading=h.7jl8tl5k1raa

Description

Please include a short description of the suggested change and the reasoning behind the approach you have chosen.

The intent of this PR is to add the following pieces for a zapier integration:

Triggers

  • New Todo
  • Todo Updated (fields in particular: status, assignee, due date, title, description, sprint, milestone)
  • New Milestone (milestones are just todos with the type “milestone”)
  • Milestone updated
  • New Goal
  • Goal Updated (objective, metrics start, current, goal)
  • New Idea
  • Idea Updated
  • New Comment (could be anywhere in the system)
  • New Timesheet entry
  • Timesheet entry updated
  • New Project
  • Project details updated

Actions

  • Create Todo
  • Update Todo (not sure if we want to be specific in terms of updates, see below)
Update Todo Status
Update Assignee
Update Milestone
  • Create Milestone
  • Create Timesheet Entry

This was done by utilizing mostly service layer methods that with the proper parameters can be utilized.

With that being said not all service layer methods needed to make these zapier interactions possible are made.

One thing to denote - when checking for an updated artifact since Zapier uses id to index objects in a list, what we must do is append it with its last_updated dateTime string so that we can detect any differences in the id indices.

So we would end up modifying our returned id to be like {id}-{modified_date}

Here is where I derived this decision from:
https://community.zapier.com/how-do-i-3/polling-an-api-for-updated-records-not-just-new-ones-1165

Screenshot of the result

If your change affects the user interface, you should include a screenshot of the result with the pull request.

Checklist

  • My code passes all test cases.
  • My code passes our static analysis suite.
  • My code passes our continuous integration process.

If your code does not pass the requirements on the checklist, you should add a comment explaining why this change
should be exempt from the list.

Additional comments or questions

If you have any further comments or questions for the reviewer, please add them here.

New Goal will be completed in a seperate PR as the canvas -> canvas item relation makes that task not exactly straight forward

@kylemcshea kylemcshea requested a review from a team as a code owner July 10, 2024 21:22
@kylemcshea kylemcshea requested review from marcelfolaron and removed request for a team July 10, 2024 21:22
@CLAassistant
Copy link

CLAassistant commented Jul 10, 2024

CLA assistant check
All committers have signed the CLA.

app/Domain/Tickets/Services/Tickets.php Outdated Show resolved Hide resolved
app/Domain/Tickets/Services/Tickets.php Outdated Show resolved Hide resolved
app/Domain/Tickets/Services/Tickets.php Outdated Show resolved Hide resolved
app/Domain/Tickets/Services/Tickets.php Outdated Show resolved Hide resolved
app/Domain/Timesheets/Services/Timesheets.php Outdated Show resolved Hide resolved
@marcelfolaron marcelfolaron merged commit 422e19f into Leantime:master Jul 25, 2024
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants