|
41333
|
Platform Sprint 4 Q2 - Platform Team - Scrum Board Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Usage | Windsurf
Usage | Windsurf
Unnamed Group
[SRD-6848] Sidekick SMS issue - Jira
[SRD-6848] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
Unnamed Group
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Unnamed Group
[SRD-6853] Moxso - Potential deal stages bug - Jira
[SRD-6853] Moxso - Potential deal stages bug - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
Close tab
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Useful commands - Engineering - Confluence
Useful commands - Engineering - Confluence
Dev Tools - Elastic
Dev Tools - Elastic
Jiminny
Jiminny
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
Unnamed Group
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
New Tab...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
41333
|
|
41334
|
Platform Sprint 4 Q2 - Platform Team - Scrum Board Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Usage | Windsurf
Usage | Windsurf
Unnamed Group
[SRD-6848] Sidekick SMS issue - Jira
[SRD-6848] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
Unnamed Group
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Unnamed Group
[SRD-6853] Moxso - Potential deal stages bug - Jira
[SRD-6853] Moxso - Potential deal stages bug - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
Close tab
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Useful commands - Engineering - Confluence
Useful commands - Engineering - Confluence
Dev Tools - Elastic
Dev Tools - Elastic
Jiminny
Jiminny
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
Unnamed Group
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
41334
|
|
41335
|
Platform Sprint 4 Q2 - Platform Team - Scrum Board Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Usage | Windsurf
Usage | Windsurf
Unnamed Group
[SRD-6848] Sidekick SMS issue - Jira
[SRD-6848] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
Unnamed Group
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Unnamed Group
[SRD-6853] Moxso - Potential deal stages bug - Jira
[SRD-6853] Moxso - Potential deal stages bug - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
Close tab
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Useful commands - Engineering - Confluence
Useful commands - Engineering - Confluence
Dev Tools - Elastic
Dev Tools - Elastic
Jiminny
Jiminny
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
Unnamed Group
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to content
Skip to content
Open menu
Homepage (g then d)
jiminny
jiminny
app
app
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
All issues(g then i)
All pull requests
All repositories
You have unread notifications(g then n)
Open user navigation menu
Repository navigation
Repository navigation
Code
Code
Pull requests (28)
Pull requests
(
28
)
Agents
Agents
Actions
Actions
Wiki
Wiki
Security and quality
Security and quality
Insights
Insights
Settings
Settings
Important update
Important update
On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.
Review this update
Review this update
and manage your preferences in your
GitHub account settings
GitHub account settings
.
Dismiss banner
JY-20903 Update activity stage when opportunity is changed #12077 Edit title
JY-20903 Update activity stage when opportunity is changed
#
12077
Edit title
Awaiting approval
Awaiting approval
Code
Code
Open
LakyLak
LakyLak
wants to merge 1 commit into
master
master
from
JY-20903-update_activity-stage-on-opportunity-change
JY-20903-update_activity-stage-on-opportunity-change
Copy head branch name to clipboard
Lines changed: 10 additions & 5 deletions
Conversation (0)
Conversation
(
0
)
Commits (1)
Commits
(
1
)
Checks (2)
Checks
(
2
)
Files changed (2)
Files changed
(
2
)
Conversation
Conversation
@LakyLak
Show options
LakyLak commented 44 minutes ago
LakyLak
LakyLak
commented
44 minutes ago
44 minutes ago
JIRA: JY-20903
JIRA:
JY-20903
JY-20903
Changes:
Changes:
Reset stage on activity if opportunity is changed
Add or remove reactions
@LakyLak
JY-20903
JY-20903
Update activity stage when opportunity is changed
Update activity stage when opportunity is changed
12 / 12 checks OK
8dac0df
8dac0df
@sonarqubecloud
Show options
sonarqubecloud Bot commented 31 minutes ago
sonarqubecloud
sonarqubecloud
Bot
commented
31 minutes ago
31 minutes ago
Quality Gate Passed Quality Gate passed
Quality Gate Passed
Quality Gate passed
Issues
0 New issues
0 New issues
0 Accepted issues
0 Accepted issues
Measures
0 Security Hotspots
0 Security Hotspots
0.0% Coverage on New Code
0.0% Coverage on New Code
0.0% Duplication on New Code
0.0% Duplication on New Code
See analysis details on SonarQube Cloud
See analysis details on SonarQube Cloud
Add or remove reactions
This branch has not been deployed
This branch has not been deployed
No deployments
Merge info
Merge info
Review required
Review required
At least 1 approving review is required by reviewers with write access.
All checks have passed
All checks have passed
12 successful checks
Collapse checks
successful checks
successful checks
build_accept_deploy
build_accept_deploy
build_accept_deploy
Successful in 15m
— Workflow: build_accept_deploy
More actions
ci/circleci: build-backend
ci/circleci: build-backend
ci/circleci: build-backend
— Your tests passed on CircleCI!
More actions
ci/circleci: build-frontend
ci/circleci: build-frontend
ci/circleci: build-frontend
— Your tests passed on CircleCI!
More actions
ci/circleci: checkout-code
ci/circleci: checkout-code
ci/circleci: checkout-code
— Your tests passed on CircleCI!
More actions
ci/circleci: phpstan
ci/circleci: phpstan
ci/circleci: phpstan
— Your tests passed on CircleCI!
More actions
ci/circleci: setup
ci/circleci: setup
ci/circleci: setup
— Your tests passed on CircleCI!
More actions
ci/circleci: sonar_cloud
ci/circleci: sonar_cloud
ci/circleci: sonar_cloud
— Your tests passed on CircleCI!
More actions
ci/circleci: test
ci/circleci: test
ci/circleci: test
— Your tests passed on CircleCI!
More actions
ci/circleci: test-backend-lint
ci/circleci: test-backend-lint
ci/circleci: test-backend-lint
— Your tests passed on CircleCI!
More actions
ci/circleci: test-frontend
ci/circleci: test-frontend
ci/circleci: test-frontend
— Your tests passed on CircleCI!
More actions
setup-workflow
setup-workflow
setup-workflow
Successful in 28s
— Workflow: setup-workflow
More actions
SonarCloud Code Analysis
SonarCloud Code Analysis
SonarCloud Code Analysis
Successful in 1m
— Quality Gate passed
Required
More actions
Merging is blocked
Merging is blocked
At least 1 approving review is required by reviewers with write access.
Enable auto-merge
Enable auto-merge
Select merge method...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
41335
|
|
41336
|
Platform Sprint 4 Q2 - Platform Team - Scrum Board Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Usage | Windsurf
Usage | Windsurf
Unnamed Group
[SRD-6848] Sidekick SMS issue - Jira
[SRD-6848] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
Unnamed Group
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Unnamed Group
[SRD-6853] Moxso - Potential deal stages bug - Jira
[SRD-6853] Moxso - Potential deal stages bug - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
Close tab
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Useful commands - Engineering - Confluence
Useful commands - Engineering - Confluence
Dev Tools - Elastic
Dev Tools - Elastic
Jiminny
Jiminny
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
Unnamed Group
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to content
Skip to content
Open menu
Homepage (g then d)
jiminny
jiminny
app
app
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
All issues(g then i)
All pull requests
All repositories
You have unread notifications(g then n)
Open user navigation menu
Repository navigation
Repository navigation
Code
Code
Pull requests (28)
Pull requests
(...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
41336
|
|
41337
|
Platform Sprint 4 Q2 - Platform Team - Scrum Board Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Usage | Windsurf
Usage | Windsurf
Unnamed Group
[SRD-6848] Sidekick SMS issue - Jira
[SRD-6848] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
Unnamed Group
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Unnamed Group
[SRD-6853] Moxso - Potential deal stages bug - Jira
[SRD-6853] Moxso - Potential deal stages bug - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
Close tab
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Useful commands - Engineering - Confluence
Useful commands - Engineering - Confluence
Dev Tools - Elastic
Dev Tools - Elastic
Jiminny
Jiminny
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
Unnamed Group
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to content
Skip to content
Open menu
Homepage (g then d)
jiminny
jiminny
app
app
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
All issues(g then i)
All pull requests
All repositories
You have unread notifications(g then n)
Open user navigation menu
Repository navigation
Repository navigation
Code
Code
Pull requests (28)
Pull requests...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
41337
|
|
41338
|
Platform Sprint 4 Q2 - Platform Team - Scrum Board Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Usage | Windsurf
Usage | Windsurf
Unnamed Group
[SRD-6848] Sidekick SMS issue - Jira
[SRD-6848] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
Unnamed Group
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Unnamed Group
[SRD-6853] Moxso - Potential deal stages bug - Jira
[SRD-6853] Moxso - Potential deal stages bug - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
Close tab
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Useful commands - Engineering - Confluence
Useful commands - Engineering - Confluence
Dev Tools - Elastic
Dev Tools - Elastic
Jiminny
Jiminny
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
Unnamed Group
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to content
Skip to content
Open menu
Homepage (g then d)
jiminny
jiminny
app
app
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
All issues(g then i)
All pull requests
All repositories...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
41338
|
|
41339
|
Platform Sprint 4 Q2 - Platform Team - Scrum Board Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Usage | Windsurf
Usage | Windsurf
Unnamed Group
[SRD-6848] Sidekick SMS issue - Jira
[SRD-6848] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
Unnamed Group
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Unnamed Group
[SRD-6853] Moxso - Potential deal stages bug - Jira
[SRD-6853] Moxso - Potential deal stages bug - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
Close tab
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Useful commands - Engineering - Confluence
Useful commands - Engineering - Confluence
Dev Tools - Elastic
Dev Tools - Elastic
Jiminny
Jiminny
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
Unnamed Group
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to content
Skip to content
Open menu
Homepage (g then d)
jiminny
jiminny
app
app
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
All issues(g then i)
All pull requests
All repositories
You have unread notifications(g then n)
Open user navigation menu
Repository navigation
Repository navigation
Code
Code
Pull requests (28)
Pull requests
(
28
)
Agents
Agents
Actions
Actions
Wiki
Wiki
Security and quality
Security and quality
Insights
Insights
Settings
Settings
Important update
Important update
On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.
Review this update
Review this update
and manage your preferences in your
GitHub account settings
GitHub account settings
.
Dismiss banner
JY-20903 Update activity stage when opportunity is changed #12077 Edit title
JY-20903 Update activity stage when opportunity is changed
#
12077
Edit title
Awaiting approval
Awaiting approval
Code
Code
Open
LakyLak
LakyLak
wants to merge 1 commit into...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
41339
|
|
41340
|
Platform Sprint 4 Q2 - Platform Team - Scrum Board Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Usage | Windsurf
Usage | Windsurf
Unnamed Group
[SRD-6848] Sidekick SMS issue - Jira
[SRD-6848] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
Unnamed Group
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Unnamed Group
[SRD-6853] Moxso - Potential deal stages bug - Jira
[SRD-6853] Moxso - Potential deal stages bug - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
Close tab
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Useful commands - Engineering - Confluence
Useful commands - Engineering - Confluence
Dev Tools - Elastic
Dev Tools - Elastic
Jiminny
Jiminny
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
Unnamed Group
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to content
Skip to content
Open menu
Homepage (g then d)
jiminny
jiminny
app
app
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
All issues(g then i)
All pull requests
All repositories
You have unread notifications(g then n)
Open user navigation menu
Repository navigation
Repository navigation
Code
Code
Pull requests (28)
Pull requests
(
28
)
Agents
Agents
Actions
Actions
Wiki
Wiki
Security and quality
Security and quality
Insights
Insights
Settings
Settings
Important update
Important update
On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.
Review this update
Review this update
and manage your preferences in your
GitHub account settings
GitHub account settings
.
Dismiss banner
JY-20903 Update activity stage when opportunity is changed #12077 Edit title
JY-20903 Update activity stage when opportunity is changed
#
12077
Edit title
Awaiting approval...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
41340
|
|
41341
|
Platform Sprint 4 Q2 - Platform Team - Scrum Board Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Usage | Windsurf
Usage | Windsurf
Unnamed Group
[SRD-6848] Sidekick SMS issue - Jira
[SRD-6848] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
Unnamed Group
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Unnamed Group
[SRD-6853] Moxso - Potential deal stages bug - Jira
[SRD-6853] Moxso - Potential deal stages bug - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
Close tab
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Useful commands - Engineering - Confluence
Useful commands - Engineering - Confluence
Dev Tools - Elastic
Dev Tools - Elastic
Jiminny
Jiminny
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
Unnamed Group
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to content
Skip to content
Open menu
Homepage (g then d)
jiminny
jiminny
app
app
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
All issues(g then i)
All pull requests
All repositories
You have unread notifications(g then n)
Open user navigation menu
Repository navigation
Repository navigation
Code
Code
Pull requests (28)
Pull requests
(
28
)
Agents
Agents
Actions
Actions
Wiki
Wiki
Security and quality
Security and quality
Insights
Insights
Settings
Settings
Important update
Important update
On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.
Review this update
Review this update
and manage your preferences in your
GitHub account settings
GitHub account settings
.
Dismiss banner
JY-20903 Update activity stage when opportunity is changed #12077 Edit title
JY-20903 Update activity stage when opportunity is changed
#
12077
Edit title
Awaiting approval
Awaiting approval
Code
Code
Open...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
41341
|
|
41342
|
Platform Sprint 4 Q2 - Platform Team - Scrum Board Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Usage | Windsurf
Usage | Windsurf
Unnamed Group
[SRD-6848] Sidekick SMS issue - Jira
[SRD-6848] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
Unnamed Group
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Unnamed Group
[SRD-6853] Moxso - Potential deal stages bug - Jira
[SRD-6853] Moxso - Potential deal stages bug - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
Close tab
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Useful commands - Engineering - Confluence
Useful commands - Engineering - Confluence
Dev Tools - Elastic
Dev Tools - Elastic
Jiminny
Jiminny
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
Unnamed Group
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to content
Skip to content
Open menu
Homepage (g then d)
jiminny
jiminny
app
app
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
All issues(g then i)
All pull requests
All repositories
You have unread notifications(g then n)
Open user navigation menu
Repository navigation
Repository navigation
Code
Code
Pull requests (28)
Pull requests
(
28
)
Agents
Agents
Actions
Actions
Wiki
Wiki
Security and quality
Security and quality
Insights
Insights
Settings
Settings
Important update
Important update
On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.
Review this update
Review this update
and manage your preferences in your
GitHub account settings
GitHub account settings
....
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
41342
|
|
41343
|
Platform Sprint 4 Q2 - Platform Team - Scrum Board Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Usage | Windsurf
Usage | Windsurf
Unnamed Group
[SRD-6848] Sidekick SMS issue - Jira
[SRD-6848] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
Unnamed Group
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Unnamed Group
[SRD-6853] Moxso - Potential deal stages bug - Jira
[SRD-6853] Moxso - Potential deal stages bug - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
Close tab
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Useful commands - Engineering - Confluence
Useful commands - Engineering - Confluence
Dev Tools - Elastic
Dev Tools - Elastic
Jiminny
Jiminny
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
Unnamed Group
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to content
Skip to content
Open menu
Homepage (g then d)
jiminny
jiminny
app
app
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
All issues(g then i)
All pull requests
All repositories
You have unread notifications(g then n)
Open user navigation menu
Repository navigation
Repository navigation
Code
Code
Pull requests (28)
Pull requests
(
28
)
Agents
Agents
Actions
Actions
Wiki
Wiki
Security and quality
Security and quality
Insights
Insights
Settings
Settings
Important update
Important update
On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.
Review this update
Review this update
and manage your preferences in your
GitHub account settings
GitHub account settings
.
Dismiss banner
JY-20903 Update activity stage when opportunity is changed #12077 Edit title
JY-20903 Update activity stage when opportunity is changed
#
12077
Edit title
Awaiting approval
Awaiting approval
Code
Code
Open
LakyLak
LakyLak
wants to merge 1 commit into
master
master
from
JY-20903-update_activity-stage-on-opportunity-change...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
41343
|
|
41344
|
Platform Sprint 4 Q2 - Platform Team - Scrum Board Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Usage | Windsurf
Usage | Windsurf
Unnamed Group
[SRD-6848] Sidekick SMS issue - Jira
[SRD-6848] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
Unnamed Group
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Unnamed Group
[SRD-6853] Moxso - Potential deal stages bug - Jira
[SRD-6853] Moxso - Potential deal stages bug - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
Close tab
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Useful commands - Engineering - Confluence
Useful commands - Engineering - Confluence
Dev Tools - Elastic
Dev Tools - Elastic
Jiminny
Jiminny
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
Unnamed Group
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to content
Skip to content
Open menu
Homepage (g then d)
jiminny
jiminny
app
app
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
All issues(g then i)
All pull requests
All repositories
You have unread notifications(g then n)
Open user navigation menu
Repository navigation
Repository navigation
Code
Code
Pull requests (28)
Pull requests
(
28
)
Agents
Agents
Actions
Actions
Wiki
Wiki
Security and quality
Security and quality
Insights
Insights
Settings
Settings
Important update
Important update
On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.
Review this update
Review this update
and manage your preferences in your
GitHub account settings
GitHub account settings
.
Dismiss banner
JY-20903 Update activity stage when opportunity is changed #12077 Edit title
JY-20903 Update activity stage when opportunity is changed
#
12077
Edit title
Awaiting approval
Awaiting approval
Code
Code
Open
LakyLak
LakyLak
wants to merge 1 commit into
master
master...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
41344
|
|
41345
|
Platform Sprint 4 Q2 - Platform Team - Scrum Board Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Usage | Windsurf
Usage | Windsurf
Unnamed Group
[SRD-6848] Sidekick SMS issue - Jira
[SRD-6848] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
Unnamed Group
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Unnamed Group
[SRD-6853] Moxso - Potential deal stages bug - Jira
[SRD-6853] Moxso - Potential deal stages bug - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
Close tab
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Useful commands - Engineering - Confluence
Useful commands - Engineering - Confluence
Dev Tools - Elastic
Dev Tools - Elastic
Jiminny
Jiminny
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
Unnamed Group
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to content
Skip to content
Open menu
Homepage (g then d)
jiminny
jiminny
app
app
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
All issues(g then i)
All pull requests
All repositories
You have unread notifications(g then n)
Open user navigation menu
Repository navigation
Repository navigation
Code
Code
Pull requests (28)
Pull requests
(
28
)
Agents
Agents
Actions
Actions
Wiki
Wiki
Security and quality
Security and quality
Insights
Insights
Settings
Settings
Important update
Important update
On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.
Review this update
Review this update
and manage your preferences in your
GitHub account settings
GitHub account settings
.
Dismiss banner
JY-20903 Update activity stage when opportunity is changed #12077 Edit title
JY-20903 Update activity stage when opportunity is changed
#
12077
Edit title
Awaiting approval
Awaiting approval
Code
Code
Open
LakyLak
LakyLak
wants to merge 1 commit into
master
master
from
JY-20903-update_activity-stage-on-opportunity-change
JY-20903-update_activity-stage-on-opportunity-change
Copy head branch name to clipboard
Lines changed: 10 additions & 5 deletions
Conversation (0)
Conversation
(
0
)
Commits (1)
Commits
(
1
)
Checks (2)
Checks
(
2
)
Files changed (2)
Files changed
(
2
)
Conversation
Conversation
@LakyLak
Show options
LakyLak commented 45 minutes ago
LakyLak
LakyLak
commented
45 minutes ago
45 minutes ago
JIRA: JY-20903
JIRA:
JY-20903
JY-20903
Changes:
Changes:
Reset stage on activity if opportunity is changed
Add or remove reactions
@LakyLak
JY-20903
JY-20903
Update activity stage when opportunity is changed
Update activity stage when opportunity is changed
12 / 12 checks OK
8dac0df
8dac0df
@sonarqubecloud
Show options
sonarqubecloud Bot commented 32 minutes ago
sonarqubecloud
sonarqubecloud
Bot...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
41345
|
|
41346
|
Platform Sprint 4 Q2 - Platform Team - Scrum Board Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Usage | Windsurf
Usage | Windsurf
Unnamed Group
[SRD-6848] Sidekick SMS issue - Jira
[SRD-6848] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
Unnamed Group
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Unnamed Group
[SRD-6853] Moxso - Potential deal stages bug - Jira
[SRD-6853] Moxso - Potential deal stages bug - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
Close tab
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Useful commands - Engineering - Confluence
Useful commands - Engineering - Confluence
Dev Tools - Elastic
Dev Tools - Elastic
Jiminny
Jiminny
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
Unnamed Group
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to content
Skip to content
Open menu
Homepage (g then d)
jiminny
jiminny
app
app
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
All issues(g then i)
All pull requests
All repositories
You have unread notifications(g then n)
Open user navigation menu
Repository navigation
Repository navigation
Code
Code
Pull requests (28)
Pull requests
(
28
)
Agents
Agents
Actions
Actions
Wiki
Wiki
Security and quality
Security and quality
Insights
Insights
Settings
Settings
Important update
Important update
On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.
Review this update
Review this update
and manage your preferences in your
GitHub account settings
GitHub account settings
.
Dismiss banner
JY-20903 Update activity stage when opportunity is changed #12077 Edit title
JY-20903 Update activity stage when opportunity is changed
#
12077
Edit title
Awaiting approval
Awaiting approval
Code
Code
Open
LakyLak
LakyLak
wants to merge 1 commit into
master
master
from
JY-20903-update_activity-stage-on-opportunity-change
JY-20903-update_activity-stage-on-opportunity-change
Copy head branch name to clipboard
Lines changed: 10 additions & 5 deletions
Conversation (0)
Conversation
(
0
)
Commits (1)
Commits
(
1
)
Checks (2)
Checks
(
2
)
Files changed (2)
Files changed
(
2
)
Conversation
Conversation
@LakyLak
Show options
LakyLak commented 45 minutes ago
LakyLak
LakyLak
commented
45 minutes ago
45 minutes ago
JIRA: JY-20903
JIRA:
JY-20903
JY-20903
Changes:
Changes:
Reset stage on activity if opportunity is changed
Add or remove reactions
@LakyLak
JY-20903
JY-20903
Update activity stage when opportunity is changed
Update activity stage when opportunity is changed
12 / 12 checks OK
8dac0df
8dac0df...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
41346
|
|
41356
|
Platform Sprint 4 Q2 - Platform Team - Scrum Board Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Usage | Windsurf
Usage | Windsurf
Unnamed Group
[SRD-6848] Sidekick SMS issue - Jira
[SRD-6848] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
Unnamed Group
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Unnamed Group
[SRD-6853] Moxso - Potential deal stages bug - Jira
[SRD-6853] Moxso - Potential deal stages bug - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
Close tab
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Useful commands - Engineering - Confluence
Useful commands - Engineering - Confluence
Dev Tools - Elastic
Dev Tools - Elastic
Jiminny
Jiminny
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
Unnamed Group
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to content
Skip to content
Open menu
Homepage (g then d)
jiminny
jiminny
app
app
Search or jump to…...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
41356
|
|
41357
|
Platform Sprint 4 Q2 - Platform Team - Scrum Board Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Usage | Windsurf
Usage | Windsurf
Unnamed Group
[SRD-6848] Sidekick SMS issue - Jira
[SRD-6848] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
Unnamed Group
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Unnamed Group
[SRD-6853] Moxso - Potential deal stages bug - Jira
[SRD-6853] Moxso - Potential deal stages bug - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
Close tab
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Useful commands - Engineering - Confluence
Useful commands - Engineering - Confluence
Dev Tools - Elastic
Dev Tools - Elastic
Jiminny
Jiminny
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
Unnamed Group
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to content
Skip to content
Open menu
Homepage (g then d)
jiminny
jiminny
app
app
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
All issues(g then i)
All pull requests
All repositories
You have unread notifications(g then n)
Open user navigation menu...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
41357
|
|
41358
|
Platform Sprint 4 Q2 - Platform Team - Scrum Board Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Usage | Windsurf
Usage | Windsurf
Unnamed Group
[SRD-6848] Sidekick SMS issue - Jira
[SRD-6848] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
Unnamed Group
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Unnamed Group
[SRD-6853] Moxso - Potential deal stages bug - Jira
[SRD-6853] Moxso - Potential deal stages bug - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
Close tab
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Useful commands - Engineering - Confluence
Useful commands - Engineering - Confluence
Dev Tools - Elastic
Dev Tools - Elastic
Jiminny
Jiminny
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
Unnamed Group
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to content
Skip to content
Open menu
Homepage (g then d)
jiminny
jiminny
app
app
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
All issues(g then i)
All pull requests
All repositories
You have unread notifications(g then n)
Open user navigation menu
Repository navigation
Repository navigation
Code
Code
Pull requests (28)
Pull requests
(
28
)
Agents
Agents
Actions
Actions
Wiki
Wiki
Security and quality
Security and quality
Insights
Insights
Settings
Settings
Important update
Important update
On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.
Review this update
Review this update
and manage your preferences in your
GitHub account settings
GitHub account settings
.
Dismiss banner
JY-20903 Update activity stage when opportunity is changed #12077 Edit title
JY-20903 Update activity stage when opportunity is changed
#
12077
Edit title
Awaiting approval
Awaiting approval
Code...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
41358
|
|
41359
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(ahl• Support Daily • in 1h 36 m100% <8• Thu 14 May 13:24:56181DEV (docker)-zshDOCKER₴81FoundactivityID: 422003,DEV (docker)₴2APP (-zsh)UUID: f43cf158-e60d-46e5-92f8-c4e0594a321983screenpipe*Sending activity for ES update..Done.root@docker_lamp_1:/home/jiminny#What's next:Try Docker Debug for seamless, persistentdebugging tools in any containeror image → docker debug 007d5da3af66Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20903-update_activity-stage-on-opportunity-change) $ devroot@docker_lamp_1:/home/jiminny# php artisan activity:update:es 422003Found activity ID: 16, UUID: 988920ba-cdf8-43bc-a869-1f6d85e55fabSending activity for ES update...Done.root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 422003Found activity ID: 422003, UUID: f43cf158-e60d-46e5-92f8-c4e0594a3219Sending activity for ESupdate..Done.root@docker_Lamp_1:/home/jiminny# php artisan activity:update:es 422003Found activity ID: 422003, UUID: f43cf158-e60d-46e5-92f8-c4e0594a3219Sending activity for ES update...Done.root@docker_lamp_1:/home/jiminny# ]• ж5ec2-user@ip-10-30-129-.. *6ec2-user@ip-10-20-31-14... 27DEV...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
41359
|
|
42259
|
Unnamed Group
Platform Sprint 4 Q2 - Platform Team Unnamed Group
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Pipedrive API Reference and Documentation
Pipedrive API Reference and Documentation
pipedrive/client-php: Pipedrive API client for PHP
pipedrive/client-php: Pipedrive API client for PHP
Pipedrive API Changelog
Pipedrive API Changelog
client-php/docs/versions/v2/README.md at master · pipedrive/client-php
client-php/docs/versions/v2/README.md at master · pipedrive/client-php
Changes to the API
Changes to the API
JY-18091 | Update composer to support php 8.5 by nikolaybiaivanov · Pull Request #12058 · jiminny/app
JY-18091 | Update composer to support php 8.5 by nikolaybiaivanov · Pull Request #12058 · jiminny/app
[https://github.com/pipedrive/client-php](https://github.com/pipedrive/client-php) - Google Search
[https://github.com/pipedrive/client-php](https://github.com/pipedrive/client-php) - Google Search
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Usage | Windsurf
Usage | Windsurf
Unnamed Group
[SRD-6848] Sidekick SMS issue - Jira
[SRD-6848] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
Unnamed Group
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Unnamed Group
[SRD-6853] Moxso - Potential deal stages bug - Jira
[SRD-6853] Moxso - Potential deal stages bug - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
Close tab
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Useful commands - Engineering - Confluence
Useful commands - Engineering - Confluence
Dev Tools - Elastic
Dev Tools - Elastic
Jiminny
Jiminny
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
Unnamed Group
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
Pipedrive Developers Corner | Pipedrive API sandbox
Pipedrive Developers Corner | Pipedrive API sandbox
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
pipedrive/client-php: Pipedrive API client for PHP
pipedrive/client-php: Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
Code search results
Code search results
New Tab
Customize sidebar
Close Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AI Chat settings
Close
WORK, Google Account: [EMAIL]
Main menu
New Chat
Open menu for conversation actions.
Conversation with Gemini
Conversation with Gemini
Copy prompt
You said I am making and audio of pipedrive integration in laravel app. These are two candidates https://github.com/pipedrive/client-php and https://github.com/IsraelOrtuno/pipedrive. Evaluate them. Which one should I use and why?
You said
I am making and audio of pipedrive integration in laravel app. These are two candidates https://github.com/pipedrive/client-php and https://github.com/IsraelOrtuno/pipedrive. Evaluate them. Which one should I use and why?
Expand
Listen
Gemini said
Gemini said
When integrating Pipedrive into a Laravel application, the choice depends on whether you prioritize
long-term stability and official support
versus
Laravel-specific developer experience
.
Here is an evaluation of the two candidates:
1. pipedrive/client-php (Official SDK)
1.
pipedrive/client-php
pipedrive/client-php
(Official SDK)
This is the official Pipedrive API client for PHP.
Pros:
Always Up-to-Date:
Since it’s maintained by Pipedrive, it supports the latest API features (like the Leads API) and security patches immediately.
Stability:
It is a professional-grade SDK intended for production environments.
Auto-generated:
It is generated from the Pipedrive OpenAPI specification, ensuring high coverage of all endpoints.
Cons:
Generic PHP:
It is not "Laravel-aware." You will need to manually set up a Service Provider or Bindings in
AppServiceProvider
to use it as a singleton across your app.
Verbose:
The syntax can be more boilerplate-heavy compared to a package designed specifically for Laravel.
2. IsraelOrtuno/pipedrive (Laravel-focused)
2.
IsraelOrtuno/pipedrive
IsraelOrtuno/pipedrive
(Laravel-focused)
This is a popular community-driven wrapper specifically designed for Laravel.
Pros:
Laravel Integration:
Includes Service Providers and Facades out of the box.
You can call it like
Pipedrive::deals()->all()
.
View source details for citation from GitHub. Opens side panel.
Eloquent-like Syntax:
It feels more "natural" to a Laravel developer.
Ease of Setup:
Configuration is handled via a standard Laravel config file and
.env
.
Cons:
Maintenance Risk:
It is maintained by the community. If Pipedrive releases a major API change, this package might lag behind the official SDK.
Incomplete Coverage:
It may not support 100% of the Pipedrive API endpoints if they haven't been manually added to the wrapper.
Comparison Table
Comparison Table
Feature
pipedrive/client-php
IsraelOrtuno/pipedrive
Origin
Official (Pipedrive)
Community
Laravel Support
Manual (Needs Binding)
Native (Facade/Provider)
API Coverage
100% (Auto-generated)
High (Manual)
Best For
Enterprise / Long-term apps
Rapid Prototyping / Small apps
Feature
Origin
Laravel Support
API Coverage
Best For
pipedrive/client-php
Official (Pipedrive)
Manual (Needs Binding)
100% (Auto-generated)
Enterprise / Long-term apps
IsraelOrtuno/pipedrive
Community
Native (Facade/Provider)
High (Manual)
Rapid Prototyping / Small apps
Copy table
Recommendation: Which should you use?
Recommendation: Which should you use?
Use
pipedrive/client-php
(The Official SDK) if:
You are building a
production-grade enterprise application
where long-term maintenance and security are critical.
You need access to the absolute latest Pipedrive features (e.g., newest CRM updates)....
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
42259
|
|
42260
|
Unnamed Group
Platform Sprint 4 Q2 - Platform Team Unnamed Group
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Pipedrive API Reference and Documentation
Pipedrive API Reference and Documentation
pipedrive/client-php: Pipedrive API client for PHP
pipedrive/client-php: Pipedrive API client for PHP
Pipedrive API Changelog
Pipedrive API Changelog
client-php/docs/versions/v2/README.md at master · pipedrive/client-php
client-php/docs/versions/v2/README.md at master · pipedrive/client-php
Changes to the API
Changes to the API
JY-18091 | Update composer to support php 8.5 by nikolaybiaivanov · Pull Request #12058 · jiminny/app
JY-18091 | Update composer to support php 8.5 by nikolaybiaivanov · Pull Request #12058 · jiminny/app
[https://github.com/pipedrive/client-php](https://github.com/pipedrive/client-php) - Google Search
[https://github.com/pipedrive/client-php](https://github.com/pipedrive/client-php) - Google Search
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Usage | Windsurf
Usage | Windsurf
Unnamed Group
[SRD-6848] Sidekick SMS issue - Jira
[SRD-6848] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
Unnamed Group
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Unnamed Group
[SRD-6853] Moxso - Potential deal stages bug - Jira
[SRD-6853] Moxso - Potential deal stages bug - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
Close tab
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Useful commands - Engineering - Confluence
Useful commands - Engineering - Confluence
Dev Tools - Elastic
Dev Tools - Elastic
Jiminny
Jiminny
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
Unnamed Group
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
Pipedrive Developers Corner | Pipedrive API sandbox
Pipedrive Developers Corner | Pipedrive API sandbox
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
pipedrive/client-php: Pipedrive API client for PHP
pipedrive/client-php: Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
Code search results
Code search results
New Tab
Customize sidebar
Close Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AI Chat settings
Close
WORK, Google Account: [EMAIL]
Main menu
New Chat
Open menu for conversation actions.
Conversation with Gemini
Conversation with Gemini
Copy prompt
You said I am making and audio of pipedrive integration in laravel app. These are two candidates https://github.com/pipedrive/client-php and https://github.com/IsraelOrtuno/pipedrive. Evaluate them. Which one should I use and why?
You said
I am making and audio of pipedrive integration in laravel app. These are two candidates https://github.com/pipedrive/client-php and https://github.com/IsraelOrtuno/pipedrive. Evaluate them. Which one should I use and why?
Expand
Listen
Gemini said
Gemini said
When integrating Pipedrive into a Laravel application, the choice depends on whether you prioritize
long-term stability and official support
versus
Laravel-specific developer experience
.
Here is an evaluation of the two candidates:
1. pipedrive/client-php (Official SDK)
1.
pipedrive/client-php
pipedrive/client-php
(Official SDK)
This is the official Pipedrive API client for PHP.
Pros:
Always Up-to-Date:
Since it’s maintained by Pipedrive, it supports the latest API features (like the Leads API) and security patches immediately.
Stability:
It is a professional-grade SDK intended for production environments.
Auto-generated:
It is generated from the Pipedrive OpenAPI specification, ensuring high coverage of all endpoints.
Cons:
Generic PHP:
It is not "Laravel-aware." You will need to manually set up a Service Provider or Bindings in
AppServiceProvider
to use it as a singleton across your app.
Verbose:
The syntax can be more boilerplate-heavy compared to a package designed specifically for Laravel.
2. IsraelOrtuno/pipedrive (Laravel-focused)
2.
IsraelOrtuno/pipedrive
IsraelOrtuno/pipedrive
(Laravel-focused)
This is a popular community-driven wrapper specifically designed for Laravel.
Pros:
Laravel Integration:
Includes Service Providers and Facades out of the box.
You can call it like
Pipedrive::deals()->all()
.
View source details for citation from GitHub. Opens side panel.
Eloquent-like Syntax:
It feels more "natural" to a Laravel developer.
Ease of Setup:
Configuration is handled via a standard Laravel config file and
.env
.
Cons:
Maintenance Risk:
It is maintained by the community. If Pipedrive releases a major API change, this package might lag behind the official SDK.
Incomplete Coverage:
It may not support 100% of the Pipedrive API endpoints if they haven't been manually added to the wrapper.
Comparison Table
Comparison Table
Feature
pipedrive/client-php
IsraelOrtuno/pipedrive
Origin
Official (Pipedrive)
Community
Laravel Support
Manual (Needs Binding)
Native (Facade/Provider)
API Coverage
100% (Auto-generated)
High (Manual)
Best For
Enterprise / Long-term apps
Rapid Prototyping / Small apps
Feature
Origin
Laravel Support
API Coverage
Best For
pipedrive/client-php
Official (Pipedrive)
Manual (Needs Binding)
100% (Auto-generated)
Enterprise / Long-term apps
IsraelOrtuno/pipedrive
Community
Native (Facade/Provider)
High (Manual)
Rapid Prototyping / Small apps
Copy table
Recommendation: Which should you use?
Recommendation: Which should you use?
Use
pipedrive/client-php
(The Official SDK) if:
You are building a
production-grade enterprise application
where long-term maintenance and security are critical.
You need access to the absolute latest Pipedrive features (e.g., newest CRM updates).
Note:
You can easily make this "Laravel-friendly" by creating a simple Service Provider:
PHP
Download code
Copy code
// In AppServiceProvider.php
$this
->app->singleton(Pipedrive\Client::class,
function
(
$app
)
{
return
new
Pipedrive\Client(config(
'services.pipedrive.token'
));
});
Use
IsraelOrtuno/pipedrive
if:
You want to
move fast
and prefer the "Laravel way" (Facades, easy config).
Your requirements are standard (Deals, Persons, Organizations) and you don't need niche or brand-new API endpoints.
Final Verdict:
For most professional Laravel projects,
the official
pipedrive/client-php
is the safer bet.
It ensures your integration won't break when Pipedrive updates its API, and the 10 minutes of extra setup time is worth the peace of mind.
Sources
Sources
Good response
Bad response
Share & export
Copy
Show more options
Copy prompt
You said ok compare anythign you can think of, Support or API v1 and v2. WHen was is last time updated. Are there opened issues. Are these addressed. Whart else should i think about
You said
ok compare anythign you can think of, Support or API v1 and v2. WHen was is last time updated. Are there opened issues. Are these addressed. Whart else should i think about
Expand
Listen
Gemini said
Gemini said
This is a critical time for Pipedrive integrations.
As of mid-2024, Pipedrive is undergoing a massive shift from
API v1 to API v2
, with a hard deprecation date for many v1 features set for
July 2026
.
View source details for citation from Make Help Center. Opens side panel.
Here is the deep-dive comparison to help you decide.
1. API v1 vs. API v2 Support
1. API v1 vs. API v2 Support
This is the most important factor for a new project in 2024/2025.
pipedrive/client-php
(Official):
Fully supports
both v1 and v2
. It recently introduced version-specific namespaces (
Pipedrive\versions\v1
and
Pipedrive\versions\v2
).
It is built to help you migrate.
Since v2 is the future (offering better performance and lower "token costs" against rate limits), this SDK is future-proof.
View source details for citation from GitHub. Opens side panel.
IsraelOrtuno/pipedrive
(Community):
This package is primarily a wrapper for
API v1
. While it is elegant, it lacks native, structured support for the new v2 endpoints. Using this today means you are building on a foundation that Pipedrive is actively trying to phase out.
2. Maintenance & Activity
2. Maintenance & Activity
Feature
pipedrive/client-php
(Official)
IsraelOrtuno/pipedrive
(Community)
Last Updated
Days/Weeks ago.
Highly active.
Months/Years ago.
Much slower pace.
Open Issues
Managed by a dedicated team at Pipedrive.
Managed by a single developer/community.
Response Time
High. Critical bugs are patched quickly.
Low. Many community packages lose steam over time.
PHP 8.x Support
Native and tested.
Generally works, but lacks modern PHP optimizations.
Feature
Last Updated
Open Issues
Response Time
PHP 8.x Support
pipedrive/client-php
(Official)
Days/Weeks ago.
Highly active.
Managed by a dedicated team at Pipedrive.
High. Critical bugs are patched quickly.
Native and tested.
IsraelOrtuno/pipedrive
(Community)
Months/Years ago.
Much slower pace.
Managed by a single developer/community.
Low. Many community packages lose steam over time.
Generally works, but lacks modern PHP optimizations.
Copy table
3. "The Laravel Way" vs. Stability
3. "The Laravel Way" vs. Stability
IsraelOrtuno's package
feels great in Laravel because of the
Facade
support and the fluent syntax:
Pipedrive::people()->findByName('John')
.
The Official SDK
is a bit "clunkier" because it's a generic PHP library. However, you can make it feel like a Laravel package in 5 minutes by creating a Service Provider.
Pro-tip:
Don't choose a package just because it has a Facade. It is much easier to write a 10-line wrapper for an official SDK than it is to fix a broken, abandoned community package when your CRM integration stops working.
4. What else should you think about?
4. What else should you think about?
A. The v2 Migration (The "July 2026" Problem)
A. The v2 Migration (The "July 2026" Problem)
Pipedrive has announced that v1 is being deprecated.
If you use the community package now, you are essentially creating technical debt. You will likely have to rewrite your entire integration in 12–18 months. By using the
Official SDK
, you can start writing your logic using
v2
namespaces immediately.
View source details for citation from Make Help Center. Opens side panel.
B. Rate Limiting (Token-based)
B. Rate Limiting (Token-based)
API v2 uses a "Token-based" rate limiting system which is much more generous than the old v1 limits.
The Official SDK handles these headers and limits much more gracefully.
View source details for citation from Pipedrive Developers. Opens side panel.
C. OAuth 2.0 vs API Token
C. OAuth 2.0 vs API Token
Official SDK:
Built with robust OAuth 2.0 support (the only way to get your app onto the Pipedrive Marketplace).
View source details for citation from GitHub. Opens side panel.
Community Wrapper:
Often relies on a simple API Token, which Pipedrive is discouraging for security reasons in favor of OAuth.
Final Recommendation
Final Recommendation
Use the Official
pipedrive/client-php
pipedrive/client-php
.
Why?
Direct v2 Access:
You won't have to rewrite your code when v1 is turned off.
Reliability:
It is maintained by the people who write the API.
Laravel Integration is easy:
You can simply bind it in your
AppServiceProvider
and use Dependency Injection:
PHP
Download code
Copy code
// app/Providers/AppServiceProvider.php
public
function
register
(
)
{
$this
->app->singleton(\Pipedrive\Client::class,
function
(
)
{
$client
=
new
\Pipedrive\Client(config(
'services.pipedrive.token'
));
// You can specify the version here or via namespaces
return
$client
;
});
}
// In your Controller/Service
public
function
store
(
Pipedrive\Client
$pipedrive
)
{
// Access v2 specifically
$pipedrive
->getV2()->getDeals()->getDetails(
123
);
}
Avoid the community package
for new, professional projects. It was great for its time, but it is not prepared for the API v2 era.
Sources
Sources
Good response
Bad response
Share & export
Copy
Show more options
Copy prompt
You said ok give me descriptioin for the the jira ticket. Inlcude lionks for both versions and also link for info about v1 deprecation
You said
ok give me descriptioin for the the jira ticket. Inlcude lionks for both versions and also link for info about v1 deprecation
Listen...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
42260
|
|
42261
|
Unnamed Group
Platform Sprint 4 Q2 - Platform Team Unnamed Group
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Pipedrive API Reference and Documentation
Pipedrive API Reference and Documentation
pipedrive/client-php: Pipedrive API client for PHP
pipedrive/client-php: Pipedrive API client for PHP
Pipedrive API Changelog
Pipedrive API Changelog
client-php/docs/versions/v2/README.md at master · pipedrive/client-php
client-php/docs/versions/v2/README.md at master · pipedrive/client-php
Changes to the API
Changes to the API
JY-18091 | Update composer to support php 8.5 by nikolaybiaivanov · Pull Request #12058 · jiminny/app
JY-18091 | Update composer to support php 8.5 by nikolaybiaivanov · Pull Request #12058 · jiminny/app
[https://github.com/pipedrive/client-php](https://github.com/pipedrive/client-php) - Google Search
[https://github.com/pipedrive/client-php](https://github.com/pipedrive/client-php) - Google Search
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Usage | Windsurf
Usage | Windsurf
Unnamed Group
[SRD-6848] Sidekick SMS issue - Jira
[SRD-6848] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
Unnamed Group
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Unnamed Group
[SRD-6853] Moxso - Potential deal stages bug - Jira
[SRD-6853] Moxso - Potential deal stages bug - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
Close tab
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Useful commands - Engineering - Confluence
Useful commands - Engineering - Confluence
Dev Tools - Elastic
Dev Tools - Elastic
Jiminny
Jiminny
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
Unnamed Group
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
Pipedrive Developers Corner | Pipedrive API sandbox
Pipedrive Developers Corner | Pipedrive API sandbox
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
pipedrive/client-php: Pipedrive API client for PHP
pipedrive/client-php: Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
Code search results
Code search results
New Tab
Customize sidebar
Close Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AI Chat settings
Close
WORK, Google Account: [EMAIL]
Main menu
New Chat
Open menu for conversation actions.
Conversation with Gemini
Conversation with Gemini
Copy prompt
You said I am making and audio of pipedrive integration in laravel app. These are two candidates https://github.com/pipedrive/client-php and https://github.com/IsraelOrtuno/pipedrive. Evaluate them. Which one should I use and why?
You said
I am making and audio of pipedrive integration in laravel app. These are two candidates https://github.com/pipedrive/client-php and https://github.com/IsraelOrtuno/pipedrive. Evaluate them. Which one should I use and why?
Expand
Listen
Gemini said
Gemini said
When integrating Pipedrive into a Laravel application, the choice depends on whether you prioritize
long-term stability and official support
versus
Laravel-specific developer experience
.
Here is an evaluation of the two candidates:
1. pipedrive/client-php (Official SDK)
1.
pipedrive/client-php
pipedrive/client-php
(Official SDK)
This is the official Pipedrive API client for PHP.
Pros:
Always Up-to-Date:
Since it’s maintained by Pipedrive, it supports the latest API features (like the Leads API) and security patches immediately.
Stability:
It is a professional-grade SDK intended for production environments.
Auto-generated:
It is generated from the Pipedrive OpenAPI specification, ensuring high coverage of all endpoints.
Cons:
Generic PHP:
It is not "Laravel-aware." You will need to manually set up a Service Provider or Bindings in
AppServiceProvider
to use it as a singleton across your app.
Verbose:
The syntax can be more boilerplate-heavy compared to a package designed specifically for Laravel.
2. IsraelOrtuno/pipedrive (Laravel-focused)
2.
IsraelOrtuno/pipedrive
IsraelOrtuno/pipedrive
(Laravel-focused)
This is a popular community-driven wrapper specifically designed for Laravel.
Pros:
Laravel Integration:
Includes Service Providers and Facades out of the box.
You can call it like
Pipedrive::deals()->all()
.
View source details for citation from GitHub. Opens side panel.
Eloquent-like Syntax:
It feels more "natural" to a Laravel developer.
Ease of Setup:
Configuration is handled via a standard Laravel config file and
.env
.
Cons:
Maintenance Risk:
It is maintained by the community. If Pipedrive releases a major API change, this package might lag behind the official SDK.
Incomplete Coverage:
It may not support 100% of the Pipedrive API endpoints if they haven't been manually added to the wrapper.
Comparison Table
Comparison Table
Feature
pipedrive/client-php
IsraelOrtuno/pipedrive...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
42261
|
|
42262
|
Unnamed Group
Platform Sprint 4 Q2 - Platform Team Unnamed Group
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Pipedrive API Reference and Documentation
Pipedrive API Reference and Documentation
pipedrive/client-php: Pipedrive API client for PHP
pipedrive/client-php: Pipedrive API client for PHP
Pipedrive API Changelog
Pipedrive API Changelog
client-php/docs/versions/v2/README.md at master · pipedrive/client-php
client-php/docs/versions/v2/README.md at master · pipedrive/client-php
Changes to the API
Changes to the API
JY-18091 | Update composer to support php 8.5 by nikolaybiaivanov · Pull Request #12058 · jiminny/app
JY-18091 | Update composer to support php 8.5 by nikolaybiaivanov · Pull Request #12058 · jiminny/app
[https://github.com/pipedrive/client-php](https://github.com/pipedrive/client-php) - Google Search
[https://github.com/pipedrive/client-php](https://github.com/pipedrive/client-php) - Google Search
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Usage | Windsurf
Usage | Windsurf
Unnamed Group
[SRD-6848] Sidekick SMS issue - Jira
[SRD-6848] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
Unnamed Group
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Unnamed Group
[SRD-6853] Moxso - Potential deal stages bug - Jira
[SRD-6853] Moxso - Potential deal stages bug - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
Close tab
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Useful commands - Engineering - Confluence
Useful commands - Engineering - Confluence
Dev Tools - Elastic
Dev Tools - Elastic
Jiminny
Jiminny
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
Unnamed Group
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
Pipedrive Developers Corner | Pipedrive API sandbox
Pipedrive Developers Corner | Pipedrive API sandbox
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
pipedrive/client-php: Pipedrive API client for PHP
pipedrive/client-php: Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
Code search results
Code search results
New Tab
Customize sidebar
Close Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AI Chat settings
Close
WORK, Google Account: [EMAIL]
Main menu
New Chat
Open menu for conversation actions.
Conversation with Gemini
Conversation with Gemini
Copy prompt
You said I am making and audio of pipedrive integration in laravel app. These are two candidates https://github.com/pipedrive/client-php and https://github.com/IsraelOrtuno/pipedrive. Evaluate them. Which one should I use and why?
You said
I am making and audio of pipedrive integration in laravel app. These are two candidates https://github.com/pipedrive/client-php and https://github.com/IsraelOrtuno/pipedrive. Evaluate them. Which one should I use and why?
Expand
Listen
Gemini said
Gemini said
When integrating Pipedrive into a Laravel application, the choice depends on whether you prioritize
long-term stability and official support
versus
Laravel-specific developer experience
.
Here is an evaluation of the two candidates:
1. pipedrive/client-php (Official SDK)
1.
pipedrive/client-php
pipedrive/client-php
(Official SDK)
This is the official Pipedrive API client for PHP.
Pros:
Always Up-to-Date:
Since it’s maintained by Pipedrive, it supports the latest API features (like the Leads API) and security patches immediately.
Stability:
It is a professional-grade SDK intended for production environments.
Auto-generated:
It is generated from the Pipedrive OpenAPI specification, ensuring high coverage of all endpoints.
Cons:
Generic PHP:
It is not "Laravel-aware." You will need to manually set up a Service Provider or Bindings in
AppServiceProvider
to use it as a singleton across your app.
Verbose:
The syntax can be more boilerplate-heavy compared to a package designed specifically for Laravel.
2. IsraelOrtuno/pipedrive (Laravel-focused)
2.
IsraelOrtuno/pipedrive
IsraelOrtuno/pipedrive
(Laravel-focused)
This is a popular community-driven wrapper specifically designed for Laravel.
Pros:
Laravel Integration:
Includes Service Providers and Facades out of the box.
You can call it like...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
42262
|
|
42263
|
Ask Google Gemini
Unnamed Group
Platform Sprint 4 Ask Google Gemini
Unnamed Group
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Pipedrive API Reference and Documentation
Pipedrive API Reference and Documentation
pipedrive/client-php: Pipedrive API client for PHP
pipedrive/client-php: Pipedrive API client for PHP
Pipedrive API Changelog
Pipedrive API Changelog
client-php/docs/versions/v2/README.md at master · pipedrive/client-php
client-php/docs/versions/v2/README.md at master · pipedrive/client-php
Changes to the API
Changes to the API
JY-18091 | Update composer to support php 8.5 by nikolaybiaivanov · Pull Request #12058 · jiminny/app
JY-18091 | Update composer to support php 8.5 by nikolaybiaivanov · Pull Request #12058 · jiminny/app
[https://github.com/pipedrive/client-php](https://github.com/pipedrive/client-php) - Google Search
[https://github.com/pipedrive/client-php](https://github.com/pipedrive/client-php) - Google Search
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Usage | Windsurf
Usage | Windsurf
Unnamed Group
[SRD-6848] Sidekick SMS issue - Jira
[SRD-6848] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
Unnamed Group
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Unnamed Group
[SRD-6853] Moxso - Potential deal stages bug - Jira
[SRD-6853] Moxso - Potential deal stages bug - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
Close tab
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Useful commands - Engineering - Confluence
Useful commands - Engineering - Confluence
Dev Tools - Elastic
Dev Tools - Elastic
Jiminny
Jiminny
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
Unnamed Group
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
Pipedrive Developers Corner | Pipedrive API sandbox
Pipedrive Developers Corner | Pipedrive API sandbox
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
pipedrive/client-php: Pipedrive API client for PHP
pipedrive/client-php: Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
Code search results
Code search results
New Tab
Customize sidebar
Close Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AI Chat settings
Close
WORK, Google Account: [EMAIL]
Main menu
New Chat
Open menu for conversation actions.
Conversation with Gemini
Conversation with Gemini
Copy prompt
You said I am making and audio of pipedrive integration in laravel app. These are two candidates https://github.com/pipedrive/client-php and https://github.com/IsraelOrtuno/pipedrive. Evaluate them. Which one should I use and why?
You said
I am making and audio of pipedrive integration in laravel app. These are two candidates https://github.com/pipedrive/client-php and https://github.com/IsraelOrtuno/pipedrive. Evaluate them. Which one should I use and why?
Expand
Listen
Gemini said
Gemini said
When integrating Pipedrive into a Laravel application, the choice depends on whether you prioritize
long-term stability and official support
versus
Laravel-specific developer experience
.
Here is an evaluation of the two candidates:
1. pipedrive/client-php (Official SDK)
1.
pipedrive/client-php
pipedrive/client-php
(Official SDK)
This is the official Pipedrive API client for PHP.
Pros:
Always Up-to-Date:
Since it’s maintained by Pipedrive, it supports the latest API features (like the Leads API) and security patches immediately.
Stability:
It is a professional-grade SDK intended for production environments.
Auto-generated:
It is generated from the Pipedrive OpenAPI specification, ensuring high coverage of all endpoints.
Cons:
Generic PHP:
It is not "Laravel-aware." You will need to manually set up a Service Provider or Bindings in
AppServiceProvider
to use it as a singleton across your app.
Verbose:
The syntax can be more boilerplate-heavy compared to a package designed specifically for Laravel.
2. IsraelOrtuno/pipedrive (Laravel-focused)
2.
IsraelOrtuno/pipedrive
IsraelOrtuno/pipedrive
(Laravel-focused)
This is a popular community-driven wrapper specifically designed for Laravel.
Pros:
Laravel Integration:
Includes Service Providers and Facades out of the box.
You can call it like
Pipedrive::deals()->all()
.
View source details for citation from GitHub. Opens side panel.
Eloquent-like Syntax:
It feels more "natural" to a Laravel developer.
Ease of Setup:
Configuration is handled via a standard Laravel config file and
.env
.
Cons:
Maintenance Risk:
It is maintained by the community. If Pipedrive releases a major API change, this package might lag behind the official SDK.
Incomplete Coverage:
It may not support 100% of the Pipedrive API endpoints if they haven't been manually added to the wrapper.
Comparison Table
Comparison Table
Feature
pipedrive/client-php
IsraelOrtuno/pipedrive
Origin
Official (Pipedrive)
Community
Laravel Support
Manual (Needs Binding)
Native (Facade/Provider)
API Coverage
100% (Auto-generated)
High (Manual)
Best For
Enterprise / Long-term apps
Rapid Prototyping / Small apps
Feature
Origin
Laravel Support
API Coverage
Best For
pipedrive/client-php
Official (Pipedrive)
Manual (Needs Binding)
100% (Auto-generated)
Enterprise / Long-term apps
IsraelOrtuno/pipedrive
Community
Native (Facade/Provider)
High (Manual)
Rapid Prototyping / Small apps
Copy table
Recommendation: Which should you use?
Recommendation: Which should you use?
Use
pipedrive/client-php
(The Official SDK) if:
You are building a
production-grade enterprise application
where long-term maintenance and security are critical.
You need access to the absolute latest Pipedrive features (e.g., newest CRM updates).
Note:
You can easily make this "Laravel-friendly" by creating a simple Service Provider:
PHP
Download code
Copy code
// In AppServiceProvider.php
$this
->app->singleton(Pipedrive\Client::class,
function
(
$app
)
{
return
new
Pipedrive\Client(config(
'services.pipedrive.token'
));
});
Use
IsraelOrtuno/pipedrive
if:
You want to
move fast
and prefer the "Laravel way" (Facades, easy config).
Your requirements are standard (Deals, Persons, Organizations) and you don't need niche or brand-new API endpoints.
Final Verdict:
For most professional Laravel projects,
the official
pipedrive/client-php
is the safer bet.
It ensures your integration won't break when Pipedrive updates its API, and the 10 minutes of extra setup time is worth the peace of mind.
Sources
Sources
Good response
Bad response
Share & export
Copy
Show more options
Copy prompt
You said ok compare anythign you can think of, Support or API v1 and v2. WHen was is last time updated. Are there opened issues. Are these addressed. Whart else should i think about
You said
ok compare anythign you can think of, Support or API v1 and v2. WHen was is last time updated. Are there opened issues. Are these addressed. Whart else should i think about
Expand
Listen
Gemini said
Gemini said
This is a critical time for Pipedrive integrations.
As of mid-2024, Pipedrive is undergoing a massive shift from
API v1 to API v2
, with a hard deprecation date for many v1 features set for
July 2026
.
View source details for citation from Make Help Center. Opens side panel.
Here is the deep-dive comparison to help you decide.
1. API v1 vs. API v2 Support
1. API v1 vs. API v2 Support
This is the most important factor for a new project in 2024/2025.
pipedrive/client-php
(Official):
Fully supports
both v1 and v2
. It recently introduced version-specific namespaces (
Pipedrive\versions\v1
and
Pipedrive\versions\v2
).
It is built to help you migrate.
Since v2 is the future (offering better performance and lower "token costs" against rate limits), this SDK is future-proof.
View source details for citation from GitHub. Opens side panel.
IsraelOrtuno/pipedrive
(Community):
This package is primarily a wrapper for
API v1
. While it is elegant, it lacks native, structured support for the new v2 endpoints. Using this today means you are building on a foundation that Pipedrive is actively trying to phase out.
2. Maintenance & Activity
2. Maintenance & Activity
Feature
pipedrive/client-php
(Official)
IsraelOrtuno/pipedrive
(Community)
Last Updated
Days/Weeks ago.
Highly active.
Months/Years ago.
Much slower pace.
Open Issues
Managed by a dedicated team at Pipedrive.
Managed by a single developer/community.
Response Time
High. Critical bugs are patched quickly.
Low. Many community packages lose steam over time.
PHP 8.x Support
Native and tested.
Generally works, but lacks modern PHP optimizations.
Feature
Last Updated
Open Issues
Response Time
PHP 8.x Support
pipedrive/client-php
(Official)
Days/Weeks ago.
Highly active.
Managed by a dedicated team at Pipedrive.
High. Critical bugs are patched quickly.
Native and tested.
IsraelOrtuno/pipedrive
(Community)
Months/Years ago.
Much slower pace.
Managed by a single developer/community.
Low. Many community packages lose steam over time.
Generally works, but lacks modern PHP optimizations.
Copy table
3. "The Laravel Way" vs. Stability
3. "The Laravel Way" vs. Stability
IsraelOrtuno's package
feels great in Laravel because of the
Facade
support and the fluent syntax:
Pipedrive::people()->findByName('John')
.
The Official SDK
is a bit "clunkier" because it's a generic PHP library. However, you can make it feel like a Laravel package in 5 minutes by creating a Service Provider.
Pro-tip:
Don't choose a package just because it has a Facade. It is much easier to write a 10-line wrapper for an official SDK than it is to fix a broken, abandoned community package when your CRM integration stops working.
4. What else should you think about?
4. What else should you think about?
A. The v2 Migration (The "July 2026" Problem)
A. The v2 Migration (The "July 2026" Problem)
Pipedrive has announced that v1 is being deprecated.
If you use the community package now, you are essentially creating technical debt. You will likely have to rewrite your entire integration in 12–18 months. By using the
Official SDK
, you can start writing your logic using
v2
namespaces immediately.
View source details for citation from Make Help Center. Opens side panel.
B. Rate Limiting (Token-based)
B. Rate Limiting (Token-based)
API v2 uses a "Token-based" rate limiting system which is much more generous than the old v1 limits.
The Official SDK handles these headers and limits much more gracefully.
View source details for citation from Pipedrive Developers. Opens side panel.
C. OAuth 2.0 vs API Token
C. OAuth 2.0 vs API Token
Official SDK:
Built with robust OAuth 2.0 support (the only way to get your app onto the Pipedrive Marketplace).
View source details for citation from GitHub. Opens side panel.
Community Wrapper:
Often relies on a simple API Token, which Pipedrive is discouraging for security reasons in favor of OAuth.
Final Recommendation
Final Recommendation
Use the Official
pipedrive/client-php
pipedrive/client-php
.
Why?
Direct v2 Access:
You won't have to rewrite your code when v1 is turned off.
Reliability:
It is maintained by the people who write the API.
Laravel Integration is easy:
You can simply bind it in your
AppServiceProvider
and use Dependency Injection:
PHP
Download code
Copy code
// app/Providers/AppServiceProvider.php
public
function
register
(
)
{
$this
->app->singleton(\Pipedrive\Client::class,
function
(
)
{
$client
=
new
\Pipedrive\Client(config(
'services.pipedrive.token'
));
// You can specify the version here or via namespaces
return
$client
;
});
}
// In your Controller/Service
public
function
store
(
Pipedrive\Client
$pipedrive
)
{
// Access v2 specifically
$pipedrive
->getV2()->getDeals()->getDetails(
123
);
}
Avoid the community package
for new, professional projects. It was great for its time, but it is not prepared for the API v2 era.
Sources
Sources
Good response
Bad response
Share & export
Copy
Show more options
Copy prompt
You said ok give me descriptioin for the the jira ticket. Inlcude lionks for both versions and also link for info about v1 deprecation
You said
ok give me descriptioin for the the jira ticket. Inlcude lionks for both versions and also link for info about v1 deprecation
Listen
Gemini said
Gemini said
Below is a structured description for your Jira ticket. It is designed to give your team a clear technical overview of why the choice matters for long-term maintenance.
Ticket: Integrate Pipedrive CRM into Laravel Application
Ticket: Integrate Pipedrive CRM into Laravel Application
Description
Description
We need to implement a connection between our Laravel application and Pipedrive CRM. After evaluating the available PHP libraries, we are moving forward with the
Official Pipedrive PHP Client
to ensure compatibility with the upcoming API v2 transition and to avoid technical debt associated with community-maintained wrappers.
Candidate Evaluation
Candidate Evaluation
Official SDK:
pipedrive/client-php
pipedrive/client-php
Status:
High maintenance, auto-generated from OpenAPI specs.
Capabilities:
Full support for both
API v1
and
API v2
.
Pros:
Future-proof, supports OAuth 2.0 natively, and receives immediate updates for new Pipedrive features.
Community Wrapper:
IsraelOrtuno/pipedrive
IsraelOrtuno/pipedrive
Status:
Lower maintenance frequency.
Capabilities:
Primarily focused on
API v1
.
Cons:
Higher risk of breakage during the v2 transition; may require a complete rewrite once v1 is deprecated.
The "API v2" Transition & Deprecation
The "API v2" Transition & Deprecation
Pipedrive is actively moving away from API v1. Using the official SDK allows us to build using v2 namespaces immediately, which offers better performance and more modern rate-limiting.
V1 Deprecation Info:
Pipedrive API Versions & Deprecation Policy
Pipedrive API Versions & Deprecation Policy
Key Date:
Major v1 features are scheduled for sunsetting by
July 2026
.
Implementation Plan
Implementation Plan
Library:
pipedrive/client-php
Strategy:
* Register the
Pipedrive\Client
as a singleton in
AppServiceProvider
.
Store the API Token / OAuth credentials in
.env
and
config/services.php
.
Prioritize using
API v2
endpoints where available to prevent future migration tasks.
Useful Links
Useful Links
Official SDK (Recommended):
https://github.com/pipedrive/client-php
https://github.com/pipedrive/client-php
Community Wrapper:
https://github.com/IsraelOrtuno/pipedrive
https://github.com/IsraelOrtuno/pipedrive
Pipedrive Developer Documentation:
https://developers.pipedrive.com/docs/api/v2
https://developers.pipedrive.com/docs/api/v2
Acceptance Criteria:
[ ] Pipedrive Client is accessible via Laravel Dependency Injection.
[ ] Successful connection test (fetching a test Person or Deal).
[ ] Error handling implemented for API rate limits.
Good response
Bad response
Share & export
Copy
Show more options
Copy prompt
You said where did you find out the inof about deprecation. I can't see ti itn the link. Look again. What shyould be the name of the ticket
You said
where did you find out the inof about deprecation. I can't see ti itn the link. Look again. What shyould be the name of the ticket
Listen
Gemini said
Gemini said
Regarding the deprecation information, it is admittedly not always on the front page of the GitHub READMEs. I found the specific details through Pipedrive's recent
developer changelogs
and partner communications (like Zapier and Make) which are already implementing these changes.
1. Where the deprecation info is located
1. Where the deprecation info is located
The reason you might not see a "Deprecation" banner on the main landing page is that Pipedrive is doing a
staged sunsetting
.
Official Confirmation:
In the
Pipedrive API Changelog
Pipedrive API Changelog
and their
API v2 Migration Guide
API v2 Migration Guide
, they explicitly state that
v1 is entering a maintenance-only phase
.
The Deadline:
Major automation platforms (Make/Zapier) have published alerts that Pipedrive v1 modules are being deprecated with a hard shut-off date of
July 31, 2026
.
View source details for citation from Zapier Help Center. Opens side panel.
The SDK Proof:
If you look at the
pipedrive/client-php
repository structure, you will see they have already split the codebase into...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
42263
|
|
42264
|
Ask Google Gemini
Unnamed Group
Platform Sprint 4 Ask Google Gemini
Unnamed Group
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Pipedrive API Reference and Documentation
Pipedrive API Reference and Documentation
pipedrive/client-php: Pipedrive API client for PHP
pipedrive/client-php: Pipedrive API client for PHP
Pipedrive API Changelog
Pipedrive API Changelog
client-php/docs/versions/v2/README.md at master · pipedrive/client-php
client-php/docs/versions/v2/README.md at master · pipedrive/client-php
Changes to the API
Changes to the API
JY-18091 | Update composer to support php 8.5 by nikolaybiaivanov · Pull Request #12058 · jiminny/app
JY-18091 | Update composer to support php 8.5 by nikolaybiaivanov · Pull Request #12058 · jiminny/app
[https://github.com/pipedrive/client-php](https://github.com/pipedrive/client-php) - Google Search
[https://github.com/pipedrive/client-php](https://github.com/pipedrive/client-php) - Google Search
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Usage | Windsurf
Usage | Windsurf
Unnamed Group
[SRD-6848] Sidekick SMS issue - Jira
[SRD-6848] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
Unnamed Group
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Unnamed Group
[SRD-6853] Moxso - Potential deal stages bug - Jira
[SRD-6853] Moxso - Potential deal stages bug - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
Close tab
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Useful commands - Engineering - Confluence
Useful commands - Engineering - Confluence
Dev Tools - Elastic
Dev Tools - Elastic
Jiminny
Jiminny
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
Unnamed Group
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
Pipedrive Developers Corner | Pipedrive API sandbox
Pipedrive Developers Corner | Pipedrive API sandbox
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
pipedrive/client-php: Pipedrive API client for PHP
pipedrive/client-php: Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
Code search results
Code search results
New Tab
Customize sidebar
Close Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AI Chat settings
Close
WORK, Google Account: [EMAIL]
Main menu
New Chat
Open menu for conversation actions.
Conversation with Gemini
Conversation with Gemini
Copy prompt
You said I am making and audio of pipedrive integration in laravel app. These are two candidates https://github.com/pipedrive/client-php and https://github.com/IsraelOrtuno/pipedrive. Evaluate them. Which one should I use and why?
You said
I am making and audio of pipedrive integration in laravel app. These are two candidates https://github.com/pipedrive/client-php and https://github.com/IsraelOrtuno/pipedrive. Evaluate them. Which one should I use and why?
Expand
Listen
Gemini said
Gemini said
When integrating Pipedrive into a Laravel application, the choice depends on whether you prioritize
long-term stability and official support
versus
Laravel-specific developer experience
.
Here is an evaluation of the two candidates:
1. pipedrive/client-php (Official SDK)
1.
pipedrive/client-php
pipedrive/client-php
(Official SDK)
This is the official Pipedrive API client for PHP.
Pros:
Always Up-to-Date:
Since it’s maintained by Pipedrive, it supports the latest API features (like the Leads API) and security patches immediately.
Stability:
It is a professional-grade SDK intended for production environments.
Auto-generated:
It is generated from the Pipedrive OpenAPI specification, ensuring high coverage of all endpoints.
Cons:
Generic PHP:
It is not "Laravel-aware." You will need to manually set up a Service Provider or Bindings in
AppServiceProvider
to use it as a singleton across your app.
Verbose:
The syntax can be more boilerplate-heavy compared to a package designed specifically for Laravel.
2. IsraelOrtuno/pipedrive (Laravel-focused)
2.
IsraelOrtuno/pipedrive
IsraelOrtuno/pipedrive
(Laravel-focused)
This is a popular community-driven wrapper specifically designed for Laravel.
Pros:
Laravel Integration:
Includes Service Providers and Facades out of the box.
You can call it like
Pipedrive::deals()->all()
.
View source details for citation from GitHub. Opens side panel.
Eloquent-like Syntax:
It feels more "natural" to a Laravel developer.
Ease of Setup:
Configuration is handled via a standard Laravel config file and
.env
.
Cons:
Maintenance Risk:
It is maintained by the community. If Pipedrive releases a major API change, this package might lag behind the official SDK.
Incomplete Coverage:
It may not support 100% of the Pipedrive API endpoints if they haven't been manually added to the wrapper.
Comparison Table
Comparison Table
Feature
pipedrive/client-php
IsraelOrtuno/pipedrive
Origin
Official (Pipedrive)
Community
Laravel Support
Manual (Needs Binding)
Native (Facade/Provider)
API Coverage
100% (Auto-generated)
High (Manual)
Best For
Enterprise / Long-term apps
Rapid Prototyping / Small apps
Feature
Origin
Laravel Support
API Coverage
Best For
pipedrive/client-php
Official (Pipedrive)
Manual (Needs Binding)
100% (Auto-generated)
Enterprise / Long-term apps
IsraelOrtuno/pipedrive
Community
Native (Facade/Provider)
High (Manual)
Rapid Prototyping / Small apps
Copy table
Recommendation: Which should you use?
Recommendation: Which should you use?
Use
pipedrive/client-php
(The Official SDK) if:
You are building a
production-grade enterprise application
where long-term maintenance and security are critical.
You need access to the absolute latest Pipedrive features (e.g., newest CRM updates).
Note:
You can easily make this "Laravel-friendly" by creating a simple Service Provider:
PHP
Download code
Copy code
// In AppServiceProvider.php
$this
->app->singleton(Pipedrive\Client::class,
function
(
$app
)
{
return
new
Pipedrive\Client(config(
'services.pipedrive.token'
));
});
Use
IsraelOrtuno/pipedrive
if:
You want to
move fast
and prefer the "Laravel way" (Facades, easy config).
Your requirements are standard (Deals, Persons, Organizations) and you don't need niche or brand-new API endpoints.
Final Verdict:
For most professional Laravel projects,
the official
pipedrive/client-php
is the safer bet.
It ensures your integration won't break when Pipedrive updates its API, and the 10 minutes of extra setup time is worth the peace of mind.
Sources
Sources
Good response
Bad response
Share & export
Copy
Show more options
Copy prompt
You said ok compare anythign you can think of, Support or API v1 and v2. WHen was is last time updated. Are there opened issues. Are these addressed. Whart else should i think about
You said
ok compare anythign you can think of, Support or API v1 and v2. WHen was is last time updated. Are there opened issues. Are these addressed. Whart else should i think about
Expand
Listen
Gemini said
Gemini said
This is a critical time for Pipedrive integrations.
As of mid-2024, Pipedrive is undergoing a massive shift from
API v1 to API v2
, with a hard deprecation date for many v1 features set for
July 2026
.
View source details for citation from Make Help Center. Opens side panel.
Here is the deep-dive comparison to help you decide.
1. API v1 vs. API v2 Support
1. API v1 vs. API v2 Support
This is the most important factor for a new project in 2024/2025.
pipedrive/client-php
(Official):
Fully supports
both v1 and v2
. It recently introduced version-specific namespaces (
Pipedrive\versions\v1
and
Pipedrive\versions\v2
).
It is built to help you migrate.
Since v2 is the future (offering better performance and lower "token costs" against rate limits), this SDK is future-proof.
View source details for citation from GitHub. Opens side panel.
IsraelOrtuno/pipedrive
(Community):
This package is primarily a wrapper for
API v1
. While it is elegant, it lacks native, structured support for the new v2 endpoints. Using this today means you are building on a foundation that Pipedrive is actively trying to phase out.
2. Maintenance & Activity
2. Maintenance & Activity
Feature
pipedrive/client-php
(Official)
IsraelOrtuno/pipedrive
(Community)
Last Updated
Days/Weeks ago.
Highly active.
Months/Years ago.
Much slower pace.
Open Issues
Managed by a dedicated team at Pipedrive.
Managed by a single developer/community.
Response Time
High. Critical bugs are patched quickly.
Low. Many community packages lose steam over time.
PHP 8.x Support
Native and tested.
Generally works, but lacks modern PHP optimizations.
Feature
Last Updated
Open Issues
Response Time
PHP 8.x Support
pipedrive/client-php
(Official)
Days/Weeks ago.
Highly active.
Managed by a dedicated team at Pipedrive.
High. Critical bugs are patched quickly.
Native and tested.
IsraelOrtuno/pipedrive
(Community)
Months/Years ago.
Much slower pace.
Managed by a single developer/community.
Low. Many community packages lose steam over time.
Generally works, but lacks modern PHP optimizations.
Copy table
3. "The Laravel Way" vs. Stability
3. "The Laravel Way" vs. Stability
IsraelOrtuno's package
feels great in Laravel because of the
Facade
support and the fluent syntax:
Pipedrive::people()->findByName('John')
.
The Official SDK
is a bit "clunkier" because it's a generic PHP library. However, you can make it feel like a Laravel package in 5 minutes by creating a Service Provider.
Pro-tip:
Don't choose a package just because it has a Facade. It is much easier to write a 10-line wrapper for an official SDK than it is to fix a broken, abandoned community package when your CRM integration stops working.
4. What else should you think about?
4. What else should you think about?
A. The v2 Migration (The "July 2026" Problem)
A. The v2 Migration (The "July 2026" Problem)
Pipedrive has announced that v1 is being deprecated.
If you use the community package now, you are essentially creating technical debt. You will likely have to rewrite your entire integration in 12–18 months. By using the
Official SDK
, you can start writing your logic using
v2
namespaces immediately.
View source details for citation from Make Help Center. Opens side panel.
B. Rate Limiting (Token-based)
B. Rate Limiting (Token-based)
API v2 uses a "Token-based" rate limiting system which is much more generous than the old v1 limits.
The Official SDK handles these headers and limits much more gracefully.
View source details for citation from Pipedrive Developers. Opens side panel.
C. OAuth 2.0 vs API Token
C. OAuth 2.0 vs API Token
Official SDK:
Built with robust OAuth 2.0 support (the only way to get your app onto the Pipedrive Marketplace).
View source details for citation from GitHub. Opens side panel.
Community Wrapper:
Often relies on a simple API Token, which Pipedrive is discouraging for security reasons in favor of OAuth.
Final Recommendation
Final Recommendation
Use the Official
pipedrive/client-php
pipedrive/client-php
.
Why?
Direct v2 Access:
You won't have to rewrite your code when v1 is turned off.
Reliability:
It is maintained by the people who write the API.
Laravel Integration is easy:
You can simply bind it in your
AppServiceProvider
and use Dependency Injection:
PHP
Download code
Copy code
// app/Providers/AppServiceProvider.php
public
function
register
(
)
{
$this
->app->singleton(\Pipedrive\Client::class,
function
(
)
{
$client
=
new
\Pipedrive\Client(config(
'services.pipedrive.token'
));
// You can specify the version here or via namespaces
return
$client
;
});
}
// In your Controller/Service
public
function
store
(
Pipedrive\Client
$pipedrive
)
{
// Access v2 specifically
$pipedrive
->getV2()->getDeals()->getDetails(
123
);
}
Avoid the community package
for new, professional projects. It was great for its time, but it is not prepared for the API v2 era.
Sources
Sources
Good response
Bad response
Share & export
Copy
Show more options
Copy prompt
You said ok give me descriptioin for the the jira ticket. Inlcude lionks for both versions and also link for info about v1 deprecation
You said
ok give me descriptioin for the the jira ticket. Inlcude lionks for both versions and also link for info about v1 deprecation
Listen
Gemini said
Gemini said
Below is a structured description for your Jira ticket. It is designed to give your team a clear technical overview of why the choice matters for long-term maintenance.
Ticket: Integrate Pipedrive CRM into Laravel Application
Ticket: Integrate Pipedrive CRM into Laravel Application
Description
Description
We need to implement a connection between our Laravel application and Pipedrive CRM. After evaluating the available PHP libraries, we are moving forward with the
Official Pipedrive PHP Client
to ensure compatibility with the upcoming API v2 transition and to avoid technical debt associated with community-maintained wrappers.
Candidate Evaluation
Candidate Evaluation
Official SDK:
pipedrive/client-php
pipedrive/client-php
Status:
High maintenance, auto-generated from OpenAPI specs.
Capabilities:
Full support for both
API v1
and
API v2
.
Pros:
Future-proof, supports OAuth 2.0 natively, and receives immediate updates for new Pipedrive features.
Community Wrapper:
IsraelOrtuno/pipedrive
IsraelOrtuno/pipedrive
Status:
Lower maintenance frequency.
Capabilities:
Primarily focused on
API v1
.
Cons:
Higher risk of breakage during the v2 transition; may require a complete rewrite once v1 is deprecated.
The "API v2" Transition & Deprecation
The "API v2" Transition & Deprecation
Pipedrive is actively moving away from API v1. Using the official SDK allows us to build using v2 namespaces immediately, which offers better performance and more modern rate-limiting.
V1 Deprecation Info:
Pipedrive API Versions & Deprecation Policy
Pipedrive API Versions & Deprecation Policy
Key Date:
Major v1 features are scheduled for sunsetting by
July 2026
.
Implementation Plan
Implementation Plan
Library:
pipedrive/client-php
Strategy:
* Register the
Pipedrive\Client
as a singleton in
AppServiceProvider
.
Store the API Token / OAuth credentials in
.env
and
config/services.php
.
Prioritize using
API v2
endpoints where available to prevent future migration tasks.
Useful Links
Useful Links
Official SDK (Recommended):
https://github.com/pipedrive/client-php
https://github.com/pipedrive/client-php
Community Wrapper:
https://github.com/IsraelOrtuno/pipedrive
https://github.com/IsraelOrtuno/pipedrive
Pipedrive Developer Documentation:
https://developers.pipedrive.com/docs/api/v2
https://developers.pipedrive.com/docs/api/v2
Acceptance Criteria:
[ ] Pipedrive Client is accessible via Laravel Dependency Injection.
[ ] Successful connection test (fetching a test Person or Deal).
[ ] Error handling implemented for API rate limits.
Good response
Bad response
Share & export
Copy
Show more options
Copy prompt
You said where did you find out the inof about deprecation. I can't see ti itn the link. Look again. What shyould be the name of the ticket
You said
where did you find out the inof about deprecation. I can't see ti itn the link. Look again. What shyould be the name of the ticket
Listen
Gemini said
Gemini said
Regarding the deprecation information, it is admittedly not always on the front page of the GitHub READMEs. I found the specific details through Pipedrive's recent
developer changelogs
and partner communications (like Zapier and Make) which are already implementing these changes....
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
42264
|
|
42265
|
Ask Google Gemini
Unnamed Group
Platform Sprint 4 Ask Google Gemini
Unnamed Group
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Pipedrive API Reference and Documentation
Pipedrive API Reference and Documentation
pipedrive/client-php: Pipedrive API client for PHP
pipedrive/client-php: Pipedrive API client for PHP
Pipedrive API Changelog
Pipedrive API Changelog
client-php/docs/versions/v2/README.md at master · pipedrive/client-php
client-php/docs/versions/v2/README.md at master · pipedrive/client-php
Changes to the API
Changes to the API
JY-18091 | Update composer to support php 8.5 by nikolaybiaivanov · Pull Request #12058 · jiminny/app
JY-18091 | Update composer to support php 8.5 by nikolaybiaivanov · Pull Request #12058 · jiminny/app
[https://github.com/pipedrive/client-php](https://github.com/pipedrive/client-php) - Google Search
[https://github.com/pipedrive/client-php](https://github.com/pipedrive/client-php) - Google Search
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Usage | Windsurf
Usage | Windsurf
Unnamed Group
[SRD-6848] Sidekick SMS issue - Jira
[SRD-6848] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
Unnamed Group
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Unnamed Group
[SRD-6853] Moxso - Potential deal stages bug - Jira
[SRD-6853] Moxso - Potential deal stages bug - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
Close tab
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Useful commands - Engineering - Confluence
Useful commands - Engineering - Confluence
Dev Tools - Elastic
Dev Tools - Elastic
Jiminny
Jiminny
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
Unnamed Group
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
Pipedrive Developers Corner | Pipedrive API sandbox
Pipedrive Developers Corner | Pipedrive API sandbox
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
pipedrive/client-php: Pipedrive API client for PHP
pipedrive/client-php: Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
Code search results
Code search results
New Tab
Customize sidebar
Close Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AI Chat settings
Close
WORK, Google Account: [EMAIL]
Main menu
New Chat
Open menu for conversation actions.
Conversation with Gemini
Conversation with Gemini
Copy prompt
You said I am making and audio of pipedrive integration in laravel app. These are two candidates https://github.com/pipedrive/client-php and https://github.com/IsraelOrtuno/pipedrive. Evaluate them. Which one should I use and why?
You said
I am making and audio of pipedrive integration in laravel app. These are two candidates https://github.com/pipedrive/client-php and https://github.com/IsraelOrtuno/pipedrive. Evaluate them. Which one should I use and why?
Expand
Listen
Gemini said
Gemini said
When integrating Pipedrive into a Laravel application, the choice depends on whether you prioritize
long-term stability and official support
versus
Laravel-specific developer experience
.
Here is an evaluation of the two candidates:
1. pipedrive/client-php (Official SDK)
1.
pipedrive/client-php
pipedrive/client-php
(Official SDK)
This is the official Pipedrive API client for PHP.
Pros:
Always Up-to-Date:
Since it’s maintained by Pipedrive, it supports the latest API features (like the Leads API) and security patches immediately.
Stability:
It is a professional-grade SDK intended for production environments.
Auto-generated:
It is generated from the Pipedrive OpenAPI specification, ensuring high coverage of all endpoints.
Cons:
Generic PHP:
It is not "Laravel-aware." You will need to manually set up a Service Provider or Bindings in
AppServiceProvider
to use it as a singleton across your app.
Verbose:
The syntax can be more boilerplate-heavy compared to a package designed specifically for Laravel.
2. IsraelOrtuno/pipedrive (Laravel-focused)
2.
IsraelOrtuno/pipedrive
IsraelOrtuno/pipedrive
(Laravel-focused)
This is a popular community-driven wrapper specifically designed for Laravel.
Pros:
Laravel Integration:
Includes Service Providers and Facades out of the box.
You can call it like
Pipedrive::deals()->all()
.
View source details for citation from GitHub. Opens side panel.
Eloquent-like Syntax:
It feels more "natural" to a Laravel developer.
Ease of Setup:
Configuration is handled via a standard Laravel config file and
.env
.
Cons:
Maintenance Risk:
It is maintained by the community. If Pipedrive releases a major API change, this package might lag behind the official SDK.
Incomplete Coverage:
It may not support 100% of the Pipedrive API endpoints if they haven't been manually added to the wrapper.
Comparison Table
Comparison Table
Feature
pipedrive/client-php
IsraelOrtuno/pipedrive
Origin
Official (Pipedrive)
Community
Laravel Support
Manual (Needs Binding)
Native (Facade/Provider)
API Coverage
100% (Auto-generated)
High (Manual)
Best For
Enterprise / Long-term apps
Rapid Prototyping / Small apps
Feature
Origin
Laravel Support
API Coverage
Best For
pipedrive/client-php
Official (Pipedrive)
Manual (Needs Binding)
100% (Auto-generated)
Enterprise / Long-term apps
IsraelOrtuno/pipedrive
Community
Native (Facade/Provider)
High (Manual)
Rapid Prototyping / Small apps
Copy table
Recommendation: Which should you use?
Recommendation: Which should you use?
Use
pipedrive/client-php
(The Official SDK) if:
You are building a
production-grade enterprise application
where long-term maintenance and security are critical.
You need access to the absolute latest Pipedrive features (e.g., newest CRM updates).
Note:
You can easily make this "Laravel-friendly" by creating a simple Service Provider:
PHP
Download code
Copy code
// In AppServiceProvider.php
$this
->app->singleton(Pipedrive\Client::class,
function
(
$app
)
{
return
new
Pipedrive\Client(config(
'services.pipedrive.token'
));
});
Use
IsraelOrtuno/pipedrive
if:
You want to
move fast
and prefer the "Laravel way" (Facades, easy config).
Your requirements are standard (Deals, Persons, Organizations) and you don't need niche or brand-new API endpoints.
Final Verdict:
For most professional Laravel projects,
the official
pipedrive/client-php
is the safer bet.
It ensures your integration won't break when Pipedrive updates its API, and the 10 minutes of extra setup time is worth the peace of mind.
Sources
Sources
Good response
Bad response
Share & export
Copy
Show more options
Copy prompt
You said ok compare anythign you can think of, Support or API v1 and v2. WHen was is last time updated. Are there opened issues. Are these addressed. Whart else should i think about
You said
ok compare anythign you can think of, Support or API v1 and v2. WHen was is last time updated. Are there opened issues. Are these addressed. Whart else should i think about
Expand
Listen
Gemini said
Gemini said
This is a critical time for Pipedrive integrations.
As of mid-2024, Pipedrive is undergoing a massive shift from
API v1 to API v2
, with a hard deprecation date for many v1 features set for
July 2026
.
View source details for citation from Make Help Center. Opens side panel.
Here is the deep-dive comparison to help you decide.
1. API v1 vs. API v2 Support
1. API v1 vs. API v2 Support
This is the most important factor for a new project in 2024/2025.
pipedrive/client-php
(Official):
Fully supports
both v1 and v2
. It recently introduced version-specific namespaces (
Pipedrive\versions\v1
and
Pipedrive\versions\v2
).
It is built to help you migrate.
Since v2 is the future (offering better performance and lower "token costs" against rate limits), this SDK is future-proof.
View source details for citation from GitHub. Opens side panel.
IsraelOrtuno/pipedrive
(Community):
This package is primarily a wrapper for
API v1
. While it is elegant, it lacks native, structured support for the new v2 endpoints. Using this today means you are building on a foundation that Pipedrive is actively trying to phase out.
2. Maintenance & Activity
2. Maintenance & Activity
Feature
pipedrive/client-php
(Official)
IsraelOrtuno/pipedrive
(Community)
Last Updated
Days/Weeks ago.
Highly active.
Months/Years ago.
Much slower pace.
Open Issues
Managed by a dedicated team at Pipedrive.
Managed by a single developer/community.
Response Time
High. Critical bugs are patched quickly.
Low. Many community packages lose steam over time.
PHP 8.x Support
Native and tested.
Generally works, but lacks modern PHP optimizations.
Feature
Last Updated
Open Issues
Response Time
PHP 8.x Support
pipedrive/client-php
(Official)
Days/Weeks ago.
Highly active.
Managed by a dedicated team at Pipedrive.
High. Critical bugs are patched quickly.
Native and tested.
IsraelOrtuno/pipedrive
(Community)
Months/Years ago.
Much slower pace.
Managed by a single developer/community.
Low. Many community packages lose steam over time.
Generally works, but lacks modern PHP optimizations.
Copy table
3. "The Laravel Way" vs. Stability
3. "The Laravel Way" vs. Stability
IsraelOrtuno's package
feels great in Laravel because of the
Facade
support and the fluent syntax:
Pipedrive::people()->findByName('John')
.
The Official SDK
is a bit "clunkier" because it's a generic PHP library. However, you can make it feel like a Laravel package in 5 minutes by creating a Service Provider.
Pro-tip:
Don't choose a package just because it has a Facade. It is much easier to write a 10-line wrapper for an official SDK than it is to fix a broken, abandoned community package when your CRM integration stops working.
4. What else should you think about?
4. What else should you think about?
A. The v2 Migration (The "July 2026" Problem)
A. The v2 Migration (The "July 2026" Problem)
Pipedrive has announced that v1 is being deprecated.
If you use the community package now, you are essentially creating technical debt. You will likely have to rewrite your entire integration in 12–18 months. By using the
Official SDK
, you can start writing your logic using
v2
namespaces immediately.
View source details for citation from Make Help Center. Opens side panel.
B. Rate Limiting (Token-based)
B. Rate Limiting (Token-based)
API v2 uses a "Token-based" rate limiting system which is much more generous than the old v1 limits.
The Official SDK handles these headers and limits much more gracefully.
View source details for citation from Pipedrive Developers. Opens side panel.
C. OAuth 2.0 vs API Token
C. OAuth 2.0 vs API Token
Official SDK:
Built with robust OAuth 2.0 support (the only way to get your app onto the Pipedrive Marketplace).
View source details for citation from GitHub. Opens side panel.
Community Wrapper:
Often relies on a simple API Token, which Pipedrive is discouraging for security reasons in favor of OAuth.
Final Recommendation
Final Recommendation
Use the Official
pipedrive/client-php
pipedrive/client-php
.
Why?
Direct v2 Access:
You won't have to rewrite your code when v1 is turned off.
Reliability:
It is maintained by the people who write the API.
Laravel Integration is easy:
You can simply bind it in your
AppServiceProvider
and use Dependency Injection:
PHP
Download code
Copy code
// app/Providers/AppServiceProvider.php
public
function
register
(
)
{
$this
->app->singleton(\Pipedrive\Client::class,
function
(
)
{
$client
=
new
\Pipedrive\Client(config(
'services.pipedrive.token'
));
// You can specify the version here or via namespaces
return
$client
;
});
}
// In your Controller/Service
public
function
store
(
Pipedrive\Client
$pipedrive
)
{
// Access v2 specifically
$pipedrive
->getV2()->getDeals()->getDetails(
123
);
}
Avoid the community package
for new, professional projects. It was great for its time, but it is not prepared for the API v2 era.
Sources
Sources
Good response
Bad response
Share & export
Copy
Show more options
Copy prompt
You said ok give me descriptioin for the the jira ticket. Inlcude lionks for both versions and also link for info about v1 deprecation
You said
ok give me descriptioin for the the jira ticket. Inlcude lionks for both versions and also link for info about v1 deprecation
Listen
Gemini said
Gemini said
Below is a structured description for your Jira ticket. It is designed to give your team a clear technical overview of why the choice matters for long-term maintenance.
Ticket: Integrate Pipedrive CRM into Laravel Application
Ticket: Integrate Pipedrive CRM into Laravel Application
Description
Description
We need to implement a connection between our Laravel application and Pipedrive CRM. After evaluating the available PHP libraries, we are moving forward with the
Official Pipedrive PHP Client
to ensure compatibility with the upcoming API v2 transition and to avoid technical debt associated with community-maintained wrappers.
Candidate Evaluation
Candidate Evaluation
Official SDK:
pipedrive/client-php
pipedrive/client-php
Status:
High maintenance, auto-generated from OpenAPI specs.
Capabilities:
Full support for both
API v1
and
API v2
.
Pros:
Future-proof, supports OAuth 2.0 natively, and receives immediate updates for new Pipedrive features.
Community Wrapper:
IsraelOrtuno/pipedrive
IsraelOrtuno/pipedrive
Status:
Lower maintenance frequency.
Capabilities:
Primarily focused on
API v1
.
Cons:
Higher risk of breakage during the v2 transition; may require a complete rewrite once v1 is deprecated.
The "API v2" Transition & Deprecation
The "API v2" Transition & Deprecation
Pipedrive is actively moving away from API v1. Using the official SDK allows us to build using v2 namespaces immediately, which offers better performance and more modern rate-limiting.
V1 Deprecation Info:
Pipedrive API Versions & Deprecation Policy
Pipedrive API Versions & Deprecation Policy
Key Date:
Major v1 features are scheduled for sunsetting by
July 2026
.
Implementation Plan
Implementation Plan
Library:
pipedrive/client-php
Strategy:
* Register the
Pipedrive\Client
as a singleton in
AppServiceProvider
.
Store the API Token / OAuth credentials in
.env
and
config/services.php
.
Prioritize using
API v2
endpoints where available to prevent future migration tasks.
Useful Links
Useful Links
Official SDK (Recommended):
https://github.com/pipedrive/client-php
https://github.com/pipedrive/client-php
Community Wrapper:
https://github.com/IsraelOrtuno/pipedrive
https://github.com/IsraelOrtuno/pipedrive
Pipedrive Developer Documentation:
https://developers.pipedrive.com/docs/api/v2
https://developers.pipedrive.com/docs/api/v2
Acceptance Criteria:
[ ] Pipedrive Client is accessible via Laravel Dependency Injection.
[ ] Successful connection test (fetching a test Person or Deal).
[ ] Error handling implemented for API rate limits.
Good response
Bad response
Share & export
Copy
Show more options
Copy prompt
You said where did you find out the inof about deprecation. I can't see ti itn the link. Look again. What shyould be the name of the ticket
You said
where did you find out the inof about deprecation. I can't see ti itn the link. Look again. What shyould be the name of the ticket
Listen
Gemini said
Gemini said
Regarding the deprecation information, it is admittedly not always on the front page of the GitHub READMEs. I found the specific details through Pipedrive's recent
developer changelogs
and partner communications (like Zapier and Make) which are already implementing these changes.
1. Where the deprecation info is located
1. Where the deprecation info is located
The reason you might not see a "Deprecation" banner on the main landing page is that Pipedrive is doing a
staged sunsetting
.
Official Confirmation:
In the
Pipedrive API Changelog
Pipedrive API Changelog
and their
API v2 Migration Guide
API v2 Migration Guide
, they explicitly state that
v1 is entering a maintenance-only phase
.
The Deadline:
Major automation platforms (Make/Zapier) have published alerts that Pipedrive v1 modules are being deprecated with a hard shut-off date of
July 31, 2026
.
View source details for citation from Zapier Help Center. Opens side panel.
The SDK Proof:
If you look at the
pipedrive/client-php
repository structure, you will see they have already split the codebase into
/versions/v1/
and
/versions/v2/
. The
v1
folder is receiving fewer updates, while
v2
is where the new "Fields API" and "Leads API" are being built.
2. Comparison of Activity & Support
2. Comparison of Activity & Support
Metric
pipedrive/client-php
(Official)
IsraelOrtuno/pipedrive
(Community)
Last Updated
May 2026
(Highly active)
Over a year ago
(Minimal activity)
Open Issues...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
42265
|
|
42270
|
Unnamed Group
Platform Sprint 4 Q2 - Platform Team Unnamed Group
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Pipedrive API Reference and Documentation
Pipedrive API Reference and Documentation
pipedrive/client-php: Pipedrive API client for PHP
pipedrive/client-php: Pipedrive API client for PHP
Pipedrive API Changelog
Pipedrive API Changelog
client-php/docs/versions/v2/README.md at master · pipedrive/client-php
client-php/docs/versions/v2/README.md at master · pipedrive/client-php
Changes to the API
Changes to the API
JY-18091 | Update composer to support php 8.5 by nikolaybiaivanov · Pull Request #12058 · jiminny/app
JY-18091 | Update composer to support php 8.5 by nikolaybiaivanov · Pull Request #12058 · jiminny/app
[https://github.com/pipedrive/client-php](https://github.com/pipedrive/client-php) - Google Search
[https://github.com/pipedrive/client-php](https://github.com/pipedrive/client-php) - Google Search
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Usage | Windsurf
Usage | Windsurf
Unnamed Group
[SRD-6848] Sidekick SMS issue - Jira
[SRD-6848] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
Unnamed Group
[SRD-6849] Recorded call does not appear on the dashboard - Jira...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
42270
|
|
42271
|
Unnamed Group
Platform Sprint 4 Q2 - Platform Team Unnamed Group
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Pipedrive API Reference and Documentation
Pipedrive API Reference and Documentation
pipedrive/client-php: Pipedrive API client for PHP
pipedrive/client-php: Pipedrive API client for PHP
Pipedrive API Changelog
Pipedrive API Changelog
client-php/docs/versions/v2/README.md at master · pipedrive/client-php
client-php/docs/versions/v2/README.md at master · pipedrive/client-php...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
42271
|
|
42272
|
Unnamed Group
Platform Sprint 4 Q2 - Platform Team Unnamed Group
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Pipedrive API Reference and Documentation
Pipedrive API Reference and Documentation
pipedrive/client-php: Pipedrive API client for PHP
pipedrive/client-php: Pipedrive API client for PHP
Pipedrive API Changelog
Pipedrive API Changelog
client-php/docs/versions/v2/README.md at master · pipedrive/client-php
client-php/docs/versions/v2/README.md at master · pipedrive/client-php
Changes to the API
Changes to the API
JY-18091 | Update composer to support php 8.5 by nikolaybiaivanov · Pull Request #12058 · jiminny/app
JY-18091 | Update composer to support php 8.5 by nikolaybiaivanov · Pull Request #12058 · jiminny/app
[https://github.com/pipedrive/client-php](https://github.com/pipedrive/client-php) - Google Search
[https://github.com/pipedrive/client-php](https://github.com/pipedrive/client-php) - Google Search
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Usage | Windsurf
Usage | Windsurf
Unnamed Group
[SRD-6848] Sidekick SMS issue - Jira
[SRD-6848] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
Unnamed Group
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Unnamed Group
[SRD-6853] Moxso - Potential deal stages bug - Jira
[SRD-6853] Moxso - Potential deal stages bug - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
Close tab
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Useful commands - Engineering - Confluence
Useful commands - Engineering - Confluence
Dev Tools - Elastic
Dev Tools - Elastic
Jiminny
Jiminny
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
Unnamed Group
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
Pipedrive Developers Corner | Pipedrive API sandbox
Pipedrive Developers Corner | Pipedrive API sandbox
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
pipedrive/client-php: Pipedrive API client for PHP
pipedrive/client-php: Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
Code search results
Code search results
New Tab
Customize sidebar
Close Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AI Chat settings
Close
WORK, Google Account: [EMAIL]
Main menu
New Chat
Open menu for conversation actions.
Conversation with Gemini
Conversation with Gemini
Copy prompt
You said I am making and audio of pipedrive integration in laravel app. These are two candidates https://github.com/pipedrive/client-php and https://github.com/IsraelOrtuno/pipedrive. Evaluate them. Which one should I use and why?
You said
I am making and audio of pipedrive integration in laravel app. These are two candidates https://github.com/pipedrive/client-php and https://github.com/IsraelOrtuno/pipedrive. Evaluate them. Which one should I use and why?
Expand
Listen
Gemini said
Gemini said
When integrating Pipedrive into a Laravel application, the choice depends on whether you prioritize
long-term stability and official support
versus
Laravel-specific developer experience
.
Here is an evaluation of the two candidates:
1. pipedrive/client-php (Official SDK)
1.
pipedrive/client-php
pipedrive/client-php
(Official SDK)
This is the official Pipedrive API client for PHP.
Pros:
Always Up-to-Date:
Since it’s maintained by Pipedrive, it supports the latest API features (like the Leads API) and security patches immediately.
Stability:
It is a professional-grade SDK intended for production environments.
Auto-generated:
It is generated from the Pipedrive OpenAPI specification, ensuring high coverage of all endpoints.
Cons:
Generic PHP:
It is not "Laravel-aware." You will need to manually set up a Service Provider or Bindings in
AppServiceProvider
to use it as a singleton across your app.
Verbose:
The syntax can be more boilerplate-heavy compared to a package designed specifically for Laravel.
2. IsraelOrtuno/pipedrive (Laravel-focused)
2.
IsraelOrtuno/pipedrive
IsraelOrtuno/pipedrive
(Laravel-focused)
This is a popular community-driven wrapper specifically designed for Laravel.
Pros:
Laravel Integration:
Includes Service Providers and Facades out of the box.
You can call it like
Pipedrive::deals()->all()
.
View source details for citation from GitHub. Opens side panel.
Eloquent-like Syntax:
It feels more "natural" to a Laravel developer.
Ease of Setup:
Configuration is handled via a standard Laravel config file and
.env
.
Cons:
Maintenance Risk:
It is maintained by the community. If Pipedrive releases a major API change, this package might lag behind the official SDK.
Incomplete Coverage:
It may not support 100% of the Pipedrive API endpoints if they haven't been manually added to the wrapper.
Comparison Table
Comparison Table
Feature
pipedrive/client-php
IsraelOrtuno/pipedrive
Origin
Official (Pipedrive)
Community
Laravel Support
Manual (Needs Binding)
Native (Facade/Provider)
API Coverage
100% (Auto-generated)
High (Manual)
Best For
Enterprise / Long-term apps
Rapid Prototyping / Small apps
Feature
Origin
Laravel Support
API Coverage
Best For
pipedrive/client-php
Official (Pipedrive)
Manual (Needs Binding)
100% (Auto-generated)
Enterprise / Long-term apps
IsraelOrtuno/pipedrive
Community
Native (Facade/Provider)
High (Manual)
Rapid Prototyping / Small apps
Copy table
Recommendation: Which should you use?
Recommendation: Which should you use?
Use
pipedrive/client-php...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
42272
|
|
42273
|
Unnamed Group
Platform Sprint 4 Q2 - Platform Team Unnamed Group
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Pipedrive API Reference and Documentation
Pipedrive API Reference and Documentation
pipedrive/client-php: Pipedrive API client for PHP
pipedrive/client-php: Pipedrive API client for PHP
Pipedrive API Changelog
Pipedrive API Changelog
client-php/docs/versions/v2/README.md at master · pipedrive/client-php
client-php/docs/versions/v2/README.md at master · pipedrive/client-php
Changes to the API
Changes to the API
JY-18091 | Update composer to support php 8.5 by nikolaybiaivanov · Pull Request #12058 · jiminny/app
JY-18091 | Update composer to support php 8.5 by nikolaybiaivanov · Pull Request #12058 · jiminny/app
[https://github.com/pipedrive/client-php](https://github.com/pipedrive/client-php) - Google Search
[https://github.com/pipedrive/client-php](https://github.com/pipedrive/client-php) - Google Search
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Usage | Windsurf
Usage | Windsurf
Unnamed Group
[SRD-6848] Sidekick SMS issue - Jira
[SRD-6848] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
Unnamed Group
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Unnamed Group
[SRD-6853] Moxso - Potential deal stages bug - Jira
[SRD-6853] Moxso - Potential deal stages bug - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
Close tab
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Useful commands - Engineering - Confluence
Useful commands - Engineering - Confluence
Dev Tools - Elastic
Dev Tools - Elastic
Jiminny
Jiminny
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
Unnamed Group
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
Pipedrive Developers Corner | Pipedrive API sandbox
Pipedrive Developers Corner | Pipedrive API sandbox
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
pipedrive/client-php: Pipedrive API client for PHP
pipedrive/client-php: Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
Code search results
Code search results
New Tab
Customize sidebar
Close Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AI Chat settings
Close
WORK, Google Account: [EMAIL]
Main menu
New Chat
Open menu for conversation actions.
Conversation with Gemini
Conversation with Gemini
Copy prompt
You said I am making and audio of pipedrive integration in laravel app. These are two candidates https://github.com/pipedrive/client-php and https://github.com/IsraelOrtuno/pipedrive. Evaluate them. Which one should I use and why?
You said
I am making and audio of pipedrive integration in laravel app. These are two candidates https://github.com/pipedrive/client-php and https://github.com/IsraelOrtuno/pipedrive. Evaluate them. Which one should I use and why?
Expand
Listen
Gemini said
Gemini said
When integrating Pipedrive into a Laravel application, the choice depends on whether you prioritize
long-term stability and official support
versus
Laravel-specific developer experience
.
Here is an evaluation of the two candidates:
1. pipedrive/client-php (Official SDK)
1.
pipedrive/client-php
pipedrive/client-php
(Official SDK)
This is the official Pipedrive API client for PHP.
Pros:
Always Up-to-Date:
Since it’s maintained by Pipedrive, it supports the latest API features (like the Leads API) and security patches immediately.
Stability:
It is a professional-grade SDK intended for production environments.
Auto-generated:
It is generated from the Pipedrive OpenAPI specification, ensuring high coverage of all endpoints.
Cons:
Generic PHP:
It is not "Laravel-aware." You will need to manually set up a Service Provider or Bindings in
AppServiceProvider
to use it as a singleton across your app.
Verbose:
The syntax can be more boilerplate-heavy compared to a package designed specifically for Laravel.
2. IsraelOrtuno/pipedrive (Laravel-focused)
2.
IsraelOrtuno/pipedrive
IsraelOrtuno/pipedrive
(Laravel-focused)
This is a popular community-driven wrapper specifically designed for Laravel.
Pros:
Laravel Integration:
Includes Service Providers and Facades out of the box.
You can call it like
Pipedrive::deals()->all()
.
View source details for citation from GitHub. Opens side panel.
Eloquent-like Syntax:
It feels more "natural" to a Laravel developer.
Ease of Setup:
Configuration is handled via a standard Laravel config file and
.env
.
Cons:
Maintenance Risk:
It is maintained by the community. If Pipedrive releases a major API change, this package might lag behind the official SDK.
Incomplete Coverage:
It may not support 100% of the Pipedrive API endpoints if they haven't been manually added to the wrapper.
Comparison Table
Comparison Table
Feature
pipedrive/client-php
IsraelOrtuno/pipedrive
Origin
Official (Pipedrive)
Community
Laravel Support
Manual (Needs Binding)
Native (Facade/Provider)
API Coverage
100% (Auto-generated)
High (Manual)...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
42273
|
|
42544
|
HomeDMsActivityFilesLater..•MoreSlackFileEditEDJim HomeDMsActivityFilesLater..•MoreSlackFileEditEDJiminny ...# engineering# general# jiminny-bg# platform-tickets# product_launches# random# releases#sofia-office# support# thank-yous# the_people_of jimi...Direct messagese. Aneliya Angelo...C. Vasil Vasilev&. Stefka Stoyanova: Todor StamatovMario GeorgievNikolay IvanovJames GrahamStoyan Tanev®. Galya DimitrovaSteliyan GeorgievPetko KashinskiLukas Kovalik y...:: AppsToastJira CloudViewGoHistoryWindowHelpDescribe what you are looking forVasil Vasilev• MessagesAdd canvas@ Files§ Support Daily • in 21 m100% C8• Thu 14 May 14:39:15& Pins +Today ~трябва да го видя ощеSaved for laterVasil Vasilev 9:44 AMSactivity = Activity::idOrUuId(SactivityId)->firstO;това е проблемаLukas Kovalik 9:44 AMдаVasil Vasilev 9:44 AMActivity::id0rUuld(SactivityId);това само по себе си врьща правилния моделобаче като извикаш върху Activity инстанция допълнтиелно ->frst0)бърка наново в базата и взима първия срещнат запискоито винаги е най ниското ИДмахни викането на first, и даже commit-ни командата, че тя в момента е счупенаLukas Kovalik 9:47 AMда, само да изчистя СРДVasil Vasilev 2:17 PMЛукаш, гледам ресетването на стейджовете на активитиScreenshot 2026-05-14 at 14.17.32.png •да+Aa...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
42544
|
|
42545
|
Unnamed Group
Platform Sprint 4 Q2 - Platform Team Unnamed Group
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Usage | Windsurf
Usage | Windsurf
Unnamed Group
[SRD-6848] Sidekick SMS issue - Jira
[SRD-6848] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
Unnamed Group
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Unnamed Group
[SRD-6853] Moxso - Potential deal stages bug - Jira
[SRD-6853] Moxso - Potential deal stages bug - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
Close tab
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Useful commands - Engineering - Confluence
Useful commands - Engineering - Confluence
Dev Tools - Elastic
Dev Tools - Elastic
Jiminny
Jiminny
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
Unnamed Group
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
Pipedrive Developers Corner | Pipedrive API sandbox
Pipedrive Developers Corner | Pipedrive API sandbox
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
pipedrive/client-php: Pipedrive API client for PHP
pipedrive/client-php: Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
Code search results
Code search results
New Tab
Customize sidebar
Close Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AI Chat settings
Close
WORK, Google Account: [EMAIL]
Main menu
New Chat
Open menu for conversation actions.
Conversation with Gemini
Conversation with Gemini
Copy prompt
You said I’m on page “<tabTitle>JY-18091 | Update composer to support php 8.5 by n</tabTitle>” with “<selection>@@ -40,15 +40,15 @@ public function postUsers(Request $request): JsonResponse40 {40 {41$team = $this->getTeamFromRequest($request);41$team = $this->getTeamFromRequest($request);424243-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);43+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);444445if ($requestDTO->getPrimaryPhoneNumber() !== null) {45if ($requestDTO->getPrimaryPhoneNumber() !== null) {46$user = $this->userRepository->findByPhone(46$user = $this->userRepository->findByPhone(47 phone: $requestDTO->getPrimaryPhoneNumber(),47 phone: $requestDTO->getPrimaryPhoneNumber(),48 );48 );494950if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {50if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {51-return (new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists'))51+return new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists')52 ->getResponse();52 ->getResponse();53 }53 }54 }54 }@@ -59,7 +59,7 @@ public function postUsers(Request $request): JsonResponse59 );59 );606061if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {61if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {62-return (new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists'))62+return new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists')63 ->getResponse();63 ->getResponse();64 }64 }65 }65 }@@ -74,11 +74,11 @@ public function postUsers(Request $request): JsonResponse74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);757576if (! $newUser instanceof User) {76if (! $newUser instanceof User) {77-return (new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed'))77+return new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed')78 ->getResponse();78 ->getResponse();79 }79 }808081-return (new CoreUser())81+return new CoreUser()82 ->createFromUser($newUser)82 ->createFromUser($newUser)83 ->setExternalId($requestDTO->getUserName())83 ->setExternalId($requestDTO->getUserName())84 ->setHttpCode(Constants::HTTP_CREATED)84 ->setHttpCode(Constants::HTTP_CREATED)@@ -93,22 +93,22 @@ public function putUsers(Request $request, string $id): JsonResponse93$team = $this->getTeamFromRequest($request);93$team = $this->getTeamFromRequest($request);949495if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {95if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {96-return (new Error())->getResponse();96+return new Error()->getResponse();97 }97 }989899-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);99+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);100100101try {101try {102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);103103104-return (new CoreUser())104+return new CoreUser()105 ->createFromUser($user)105 ->createFromUser($user)106 ->setHttpCode(Constants::HTTP_OK)106 ->setHttpCode(Constants::HTTP_OK)107 ->getResponse();107 ->getResponse();108 } catch (Exception $exception) {108 } catch (Exception $exception) {109 Sentry::captureException($exception);109 Sentry::captureException($exception);110110111-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();111+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();112 }112 }113 }113 }114114@@ -117,7 +117,7 @@ public function deleteUser(Request $request, string $id): JsonResponse117$team = $this->getTeamFromRequest($request);117$team = $this->getTeamFromRequest($request);118118119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {120-return (new Error())->getResponse();120+return new Error()->getResponse();121 }121 }122122123$user = $this->scimProvisioning->getUserById($id);123$user = $this->scimProvisioning->getUserById($id);@@ -131,18 +131,18 @@ public function deleteUser(Request $request, string $id): JsonResponse131 ),131 ),132 );132 );133133134-return (new JsonResponse())->setStatusCode(204);134+return new JsonResponse()->setStatusCode(204);135 }135 }136136137public function patchUser(Request $request, string $id): JsonResponse137public function patchUser(Request $request, string $id): JsonResponse138 {138 {139$team = $this->getTeamFromRequest($request);139$team = $this->getTeamFromRequest($request);140140141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {142-return (new Error())->getResponse();142+return new Error()->getResponse();143 }143 }144144145-$requestDTO = (new PatchUser())145+$requestDTO = new PatchUser()146 ->setResourceLocalId($id)146 ->setResourceLocalId($id)147 ->createFromRequestPayload($request);147 ->createFromRequestPayload($request);148148@@ -153,10 +153,10 @@ public function patchUser(Request $request, string $id): JsonResponse153 } catch (Exception $e) {153 } catch (Exception $e) {154 Sentry::captureException($e);154 Sentry::captureException($e);155155156-return (new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed'))->getResponse();156+return new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed')->getResponse();157 }157 }158158159-return (new CoreUser())159+return new CoreUser()160 ->createFromUser($user)160 ->createFromUser($user)161 ->setHttpCode(Constants::HTTP_OK)161 ->setHttpCode(Constants::HTTP_OK)162 ->getResponse();162 ->getResponse();@@ -167,16 +167,16 @@ public function getUser(Request $request, string $id): JsonResponse167$team = $this->getTeamFromRequest($request);167$team = $this->getTeamFromRequest($request);168168169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {170-return (new Error())->getResponse();170+return new Error()->getResponse();171 }171 }172172173$user = $this->scimProvisioning->getUserById($id);173$user = $this->scimProvisioning->getUserById($id);174174175if (! $team->isSame($user->getTeam())) {175if (! $team->isSame($user->getTeam())) {176-return (new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.'))->getResponse();176+return new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.')->getResponse();177 }177 }178178179-return (new CoreUser())179+return new CoreUser()180 ->setHttpCode(Constants::HTTP_OK)180 ->setHttpCode(Constants::HTTP_OK)181 ->createFromUser($user)181 ->createFromUser($user)182 ->getResponse();182 ->getResponse();@@ -186,20 +186,20 @@ public function getUsersByQuery(Request $request): JsonResponse186 {186 {187$team = $this->getTeamFromRequest($request);187$team = $this->getTeamFromRequest($request);188188189-$requestDto = (new GetUserByQuery())->createFromRequestPayload($request);189+$requestDto = new GetUserByQuery()->createFromRequestPayload($request);190190191try {191try {192$resultsQuery = $this->scimProvisioning192$resultsQuery = $this->scimProvisioning193 ->translateQueryStringsToUserModelQuery($requestDto, $team);193 ->translateQueryStringsToUserModelQuery($requestDto, $team);194 } catch (Exception $exception) {194 } catch (Exception $exception) {195-return (new ListResponse())->createEmpty()->getResponse();195+return new ListResponse()->createEmpty()->getResponse();196 }196 }197197198$resultsQuery198$resultsQuery199 ->limit($requestDto->getCount())199 ->limit($requestDto->getCount())200 ->offset($requestDto->getStartIndex() - 1);200 ->offset($requestDto->getStartIndex() - 1);201201202-return (new ListResponse())202+return new ListResponse()203 ->setHttpCode(Constants::HTTP_OK)203 ->setHttpCode(Constants::HTTP_OK)204 ->setStartIndex($requestDto->getStartIndex())204 ->setStartIndex($requestDto->getStartIndex())205 ->createFromCollection($resultsQuery->get())205 ->createFromCollection($resultsQuery->get())@@ -210,15 +210,15 @@ public function postGroups(Request $request): JsonResponse210 {210 {211$team = $this->getTeamFromRequest($request);211$team = $this->getTeamFromRequest($request);212212213-$requestDto = (new CoreGroupRequest())->createFromRequestPayload($request);213+$requestDto = new CoreGroupRequest()->createFromRequestPayload($request);214214215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);216216217if (! $group instanceof Group) {217if (! $group instanceof Group) {218-return (new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed'))->getResponse();218+return new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed')->getResponse();219 }219 }220220221-$response = (new CoreGroup())->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();221+$response = new CoreGroup()->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();222222223return $response;223return $response;224 }224 }@@ -228,22 +228,22 @@ public function putGroups(Request $request, string $id): JsonResponse228$team = $this->getTeamFromRequest($request);228$team = $this->getTeamFromRequest($request);229229230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {231-return (new Error())->getResponse();231+return new Error()->getResponse();232 }232 }233233234-$requestDTO = (new CoreGroupRequest())->createFromRequestPayload($request);234+$requestDTO = new CoreGroupRequest()->createFromRequestPayload($request);235235236try {236try {237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);238238239-return (new CoreGroup())239+return new CoreGroup()240 ->createFromGroup($group)240 ->createFromGroup($group)241 ->setHttpCode(Constants::HTTP_OK)241 ->setHttpCode(Constants::HTTP_OK)242 ->getResponse();242 ->getResponse();243 } catch (Exception $exception) {243 } catch (Exception $exception) {244 Sentry::captureException($exception);244 Sentry::captureException($exception);245245246-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();246+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();247 }247 }248 }248 }249249@@ -252,12 +252,12 @@ public function getGroup(Request $request, string $id): JsonResponse252$team = $this->getTeamFromRequest($request);252$team = $this->getTeamFromRequest($request);253253254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {255-return (new Error())->getResponse();255+return new Error()->getResponse();256 }256 }257257258$group = $this->scimProvisioning->getGroupById($id);258$group = $this->scimProvisioning->getGroupById($id);259259260-return (new CoreGroup())260+return new CoreGroup()261 ->excludeAttributes($request)261 ->excludeAttributes($request)262 ->setHttpCode(Constants::HTTP_OK)262 ->setHttpCode(Constants::HTTP_OK)263 ->createFromGroup($group)263 ->createFromGroup($group)@@ -268,19 +268,19 @@ public function getGroupByQuery(Request $request): JsonResponse268 {268 {269$team = $this->getTeamFromRequest($request);269$team = $this->getTeamFromRequest($request);270270271-$dto = (new GetGroupByQuery())->createFromRequestPayload($request);271+$dto = new GetGroupByQuery()->createFromRequestPayload($request);272272273try {273try {274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);275 } catch (Exception $exception) {275 } catch (Exception $exception) {276-return (new ListResponse())->createEmpty()->getResponse();276+return new ListResponse()->createEmpty()->getResponse();277 }277 }278278279$groupsQuery279$groupsQuery280 ->limit($dto->getCount())280 ->limit($dto->getCount())281 ->offset($dto->getStartIndex() - 1);281 ->offset($dto->getStartIndex() - 1);282282283-return (new ListResponse())283+return new ListResponse()284 ->setHttpCode(Constants::HTTP_OK)284 ->setHttpCode(Constants::HTTP_OK)285 ->setStartIndex($dto->getStartIndex())285 ->setStartIndex($dto->getStartIndex())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())@@ -292,30 +292,30 @@ public function patchGroup(Request $request, $id): JsonResponse292$team = $this->getTeamFromRequest($request);292$team = $this->getTeamFromRequest($request);293293294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {295-return (new Error())->getResponse();295+return new Error()->getResponse();296 }296 }297297298-$dto = (new PatchGroup())->createFromRequestPayload($request);298+$dto = new PatchGroup()->createFromRequestPayload($request);299299300$group = Group::uuid($id);300$group = Group::uuid($id);301301302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);303303304-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);304+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);305 }305 }306306307public function deleteGroup(Request $request, $id): JsonResponse307public function deleteGroup(Request $request, $id): JsonResponse308 {308 {309$team = $this->getTeamFromRequest($request);309$team = $this->getTeamFromRequest($request);310310311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {312-return (new Error())->getResponse();312+return new Error()->getResponse();313 }313 }314314315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {316-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);316+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);317 } else {317 } else {318-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();318+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();319 }319 }320 }320 }321321</selection>” selected. Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
You said
I’m on page “<tabTitle>JY-18091 | Update composer to support php 8.5 by n</tabTitle>” with “<selection>@@ -40,15 +40,15 @@ public function postUsers(Request $request): JsonResponse40 {40 {41$team = $this->getTeamFromRequest($request);41$team = $this->getTeamFromRequest($request);424243-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);43+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);444445if ($requestDTO->getPrimaryPhoneNumber() !== null) {45if ($requestDTO->getPrimaryPhoneNumber() !== null) {46$user = $this->userRepository->findByPhone(46$user = $this->userRepository->findByPhone(47 phone: $requestDTO->getPrimaryPhoneNumber(),47 phone: $requestDTO->getPrimaryPhoneNumber(),48 );48 );494950if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {50if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {51-return (new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists'))51+return new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists')52 ->getResponse();52 ->getResponse();53 }53 }54 }54 }@@ -59,7 +59,7 @@ public function postUsers(Request $request): JsonResponse59 );59 );606061if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {61if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {62-return (new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists'))62+return new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists')63 ->getResponse();63 ->getResponse();64 }64 }65 }65 }@@ -74,11 +74,11 @@ public function postUsers(Request $request): JsonResponse74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);757576if (! $newUser instanceof User) {76if (! $newUser instanceof User) {77-return (new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed'))77+return new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed')78 ->getResponse();78 ->getResponse();79 }79 }808081-return (new CoreUser())81+return new CoreUser()82 ->createFromUser($newUser)82 ->createFromUser($newUser)83 ->setExternalId($requestDTO->getUserName())83 ->setExternalId($requestDTO->getUserName())84 ->setHttpCode(Constants::HTTP_CREATED)84 ->setHttpCode(Constants::HTTP_CREATED)@@ -93,22 +93,22 @@ public function putUsers(Request $request, string $id): JsonResponse93$team = $this->getTeamFromRequest($request);93$team = $this->getTeamFromRequest($request);949495if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {95if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {96-return (new Error())->getResponse();96+return new Error()->getResponse();97 }97 }989899-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);99+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);100100101try {101try {102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);103103104-return (new CoreUser())104+return new CoreUser()105 ->createFromUser($user)105 ->createFromUser($user)106 ->setHttpCode(Constants::HTTP_OK)106 ->setHttpCode(Constants::HTTP_OK)107 ->getResponse();107 ->getResponse();108 } catch (Exception $exception) {108 } catch (Exception $exception) {109 Sentry::captureException($exception);109 Sentry::captureException($exception);110110111-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();111+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();112 }112 }113 }113 }114114@@ -117,7 +117,7 @@ public function deleteUser(Request $request, string $id): JsonResponse117$team = $this->getTeamFromRequest($request);117$team = $this->getTeamFromRequest($request);118118119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {120-return (new Error())->getResponse();120+return new Error()->getResponse();121 }121 }122122123$user = $this->scimProvisioning->getUserById($id);123$user = $this->scimProvisioning->getUserById($id);@@ -131,18 +131,18 @@ public function deleteUser(Request $request, string $id): JsonResponse131 ),131 ),132 );132 );133133134-return (new JsonResponse())->setStatusCode(204);134+return new JsonResponse()->setStatusCode(204);135 }135 }136136137public function patchUser(Request $request, string $id): JsonResponse137public function patchUser(Request $request, string $id): JsonResponse138 {138 {139$team = $this->getTeamFromRequest($request);139$team = $this->getTeamFromRequest($request);140140141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {142-return (new Error())->getResponse();142+return new Error()->getResponse();143 }143 }144144145-$requestDTO = (new PatchUser())145+$requestDTO = new PatchUser()146 ->setResourceLocalId($id)146 ->setResourceLocalId($id)147 ->createFromRequestPayload($request);147 ->createFromRequestPayload($request);148148@@ -153,10 +153,10 @@ public function patchUser(Request $request, string $id): JsonResponse153 } catch (Exception $e) {153 } catch (Exception $e) {154 Sentry::captureException($e);154 Sentry::captureException($e);155155156-return (new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed'))->getResponse();156+return new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed')->getResponse();157 }157 }158158159-return (new CoreUser())159+return new CoreUser()160 ->createFromUser($user)160 ->createFromUser($user)161 ->setHttpCode(Constants::HTTP_OK)161 ->setHttpCode(Constants::HTTP_OK)162 ->getResponse();162 ->getResponse();@@ -167,16 +167,16 @@ public function getUser(Request $request, string $id): JsonResponse167$team = $this->getTeamFromRequest($request);167$team = $this->getTeamFromRequest($request);168168169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {170-return (new Error())->getResponse();170+return new Error()->getResponse();171 }171 }172172173$user = $this->scimProvisioning->getUserById($id);173$user = $this->scimProvisioning->getUserById($id);174174175if (! $team->isSame($user->getTeam())) {175if (! $team->isSame($user->getTeam())) {176-return (new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.'))->getResponse();176+return new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.')->getResponse();177 }177 }178178179-return (new CoreUser())179+return new CoreUser()180 ->setHttpCode(Constants::HTTP_OK)180 ->setHttpCode(Constants::HTTP_OK)181 ->createFromUser($user)181 ->createFromUser($user)182 ->getResponse();182 ->getResponse();@@ -186,20 +186,20 @@ public function getUsersByQuery(Request $request): JsonResponse186 {186 {187$team = $this->getTeamFromRequest($request);187$team = $this->getTeamFromRequest($request);188188189-$requestDto = (new GetUserByQuery())->createFromRequestPayload($request);189+$requestDto = new GetUserByQuery()->createFromRequestPayload($request);190190191try {191try {192$resultsQuery = $this->scimProvisioning192$resultsQuery = $this->scimProvisioning193 ->translateQueryStringsToUserModelQuery($requestDto, $team);193 ->translateQueryStringsToUserModelQuery($requestDto, $team);194 } catch (Exception $exception) {194 } catch (Exception $exception) {195-return (new ListResponse())->createEmpty()->getResponse();195+return new ListResponse()->createEmpty()->getResponse();196 }196 }197197198$resultsQuery198$resultsQuery199 ->limit($requestDto->getCount())199 ->limit($requestDto->getCount())200 ->offset($requestDto->getStartIndex() - 1);200 ->offset($requestDto->getStartIndex() - 1);201201202-return (new ListResponse())202+return new ListResponse()203 ->setHttpCode(Constants::HTTP_OK)203 ->setHttpCode(Constants::HTTP_OK)204 ->setStartIndex($requestDto->getStartIndex())204 ->setStartIndex($requestDto->getStartIndex())205 ->createFromCollection($resultsQuery->get())205 ->createFromCollection($resultsQuery->get())@@ -210,15 +210,15 @@ public function postGroups(Request $request): JsonResponse210 {210 {211$team = $this->getTeamFromRequest($request);211$team = $this->getTeamFromRequest($request);212212213-$requestDto = (new CoreGroupRequest())->createFromRequestPayload($request);213+$requestDto = new CoreGroupRequest()->createFromRequestPayload($request);214214215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);216216217if (! $group instanceof Group) {217if (! $group instanceof Group) {218-return (new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed'))->getResponse();218+return new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed')->getResponse();219 }219 }220220221-$response = (new CoreGroup())->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();221+$response = new CoreGroup()->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();222222223return $response;223return $response;224 }224 }@@ -228,22 +228,22 @@ public function putGroups(Request $request, string $id): JsonResponse228$team = $this->getTeamFromRequest($request);228$team = $this->getTeamFromRequest($request);229229230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {231-return (new Error())->getResponse();231+return new Error()->getResponse();232 }232 }233233234-$requestDTO = (new CoreGroupRequest())->createFromRequestPayload($request);234+$requestDTO = new CoreGroupRequest()->createFromRequestPayload($request);235235236try {236try {237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);238238239-return (new CoreGroup())239+return new CoreGroup()240 ->createFromGroup($group)240 ->createFromGroup($group)241 ->setHttpCode(Constants::HTTP_OK)241 ->setHttpCode(Constants::HTTP_OK)242 ->getResponse();242 ->getResponse();243 } catch (Exception $exception) {243 } catch (Exception $exception) {244 Sentry::captureException($exception);244 Sentry::captureException($exception);245245246-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();246+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();247 }247 }248 }248 }249249@@ -252,12 +252,12 @@ public function getGroup(Request $request, string $id): JsonResponse252$team = $this->getTeamFromRequest($request);252$team = $this->getTeamFromRequest($request);253253254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {255-return (new Error())->getResponse();255+return new Error()->getResponse();256 }256 }257257258$group = $this->scimProvisioning->getGroupById($id);258$group = $this->scimProvisioning->getGroupById($id);259259260-return (new CoreGroup())260+return new CoreGroup()261 ->excludeAttributes($request)261 ->excludeAttributes($request)262 ->setHttpCode(Constants::HTTP_OK)262 ->setHttpCode(Constants::HTTP_OK)263 ->createFromGroup($group)263 ->createFromGroup($group)@@ -268,19 +268,19 @@ public function getGroupByQuery(Request $request): JsonResponse268 {268 {269$team = $this->getTeamFromRequest($request);269$team = $this->getTeamFromRequest($request);270270271-$dto = (new GetGroupByQuery())->createFromRequestPayload($request);271+$dto = new GetGroupByQuery()->createFromRequestPayload($request);272272273try {273try {274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);275 } catch (Exception $exception) {275 } catch (Exception $exception) {276-return (new ListResponse())->createEmpty()->getResponse();276+return new ListResponse()->createEmpty()->getResponse();277 }277 }278278279$groupsQuery279$groupsQuery280 ->limit($dto->getCount())280 ->limit($dto->getCount())281 ->offset($dto->getStartIndex() - 1);281 ->offset($dto->getStartIndex() - 1);282282283-return (new ListResponse())283+return new ListResponse()284 ->setHttpCode(Constants::HTTP_OK)284 ->setHttpCode(Constants::HTTP_OK)285 ->setStartIndex($dto->getStartIndex())285 ->setStartIndex($dto->getStartIndex())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())@@ -292,30 +292,30 @@ public function patchGroup(Request $request, $id): JsonResponse292$team = $this->getTeamFromRequest($request);292$team = $this->getTeamFromRequest($request);293293294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {295-return (new Error())->getResponse();295+return new Error()->getResponse();296 }296 }297297298-$dto = (new PatchGroup())->createFromRequestPayload($request);298+$dto = new PatchGroup()->createFromRequestPayload($request);299299300$group = Group::uuid($id);300$group = Group::uuid($id);301301302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);303303304-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);304+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);305 }305 }306306307public function deleteGroup(Request $request, $id): JsonResponse307public function deleteGroup(Request $request, $id): JsonResponse308 {308 {309$team = $this->getTeamFromRequest($request);309$team = $this->getTeamFromRequest($request);310310311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {312-return (new Error())->getResponse();312+return new Error()->getResponse();313 }313 }314314315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {316-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);316+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);317 } else {317 } else {318-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();318+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();319 }319 }320 }320 }321321</selection>” selected.
Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
Expand
Listen
Gemini said
Gemini said
The selected code changes represent a mechanical refactoring of a PHP controller to align with modern syntax standards, likely as part of the upgrade to
PHP 8.5
.
Core Change: Member Access on Instantiation
Core Change: Member Access on Instantiation
The primary modification across the entire file is the removal of unnecessary parentheses when performing member access (method chaining) on a newly instantiated object.
Pattern:
(new ClassName())->method()
is simplified to
new ClassName()->method()
.
Reasoning:
Since PHP 8.0+, the parser handles member access on new expressions without requiring the wrapping parentheses for disambiguation.
Affected Components
Affected Components
The refactoring impacts various response and DTO (Data Transfer Object) initializations within the following SCIM (System for Cross-domain Identity Management) endpoints:
User Management:
postUsers
: Simplified instantiation of
CoreUserRequest
,
Error
, and
CoreUser
.
putUsers
/
patchUser
/
getUser
: Updated
Error
,
CoreUser
, and
PatchUser
calls.
getUsersByQuery
: Updated
GetUserByQuery
and
ListResponse
.
deleteUser
: Updated
JsonResponse
and
Error
.
Group Management:
postGroups
: Simplified
CoreGroupRequest
,
Error
, and
CoreGroup
.
putGroups
/
getGroup
: Updated
CoreGroupRequest
and
Error
.
getGroupByQuery
: Updated
GetGroupByQuery
and
ListResponse
.
patchGroup
/
deleteGroup
: Updated
PatchGroup
,
JsonResponse
, and
Error
.
Technical Impact...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
42545
|
|
42546
|
Platform Sprint 4 02 - PlatformN1 (SRD-6849) Recor Platform Sprint 4 02 - PlatformN1 (SRD-6849) Recorded call dc XJsage | WindsurtN1 (SRD-6848) Sidekick SMS issue[JY-20891] Sidekick SMS issue@ JY-20891 add support for seconSRD-6849) Recorded call does8 Jiminny(SRD-6853) Moxso - Potential deWJY-209031 Recorded call does niJY-20903 Update activity ste X≥ Configure SSH access to multiple(*) Useful commands - Engineering -8 Dev Tools - ElasticJiminnyCa CloudWatch | eu-west-1& CloudWatch I eu-west-1• Jy-20904 Fix UpdateActivitvElas≤7 fuy-209041 Fix UndateActivitvFlaIL Now TohS0 hil f Support Daily - in 21mY.allassian.nellld/serviceaesk/oroects/okluctom/27ISPD-6810• Goodle geminiWhile this refactoring is syntactically correct formodern PHP, there are a few practical andtechnical "gotchas" to consider when movingfrom (new Class()) ->method() to newClass() ->method()1. Language Compatibility (BackwardCompatiolltyThe biggest risk is the PHP version itself.•PrP < 8.0: This chande willl cause a ParseError. Prior to PrP 8.0, the oarser coulolnot nand e memoer access on a new.exoression without oarentheses.• The "Trap": If your productionenvironment is updated to PHP 8.5 but adeveloper's local environment or a specificCl runner is still on PHP 7.4, the code willbreak immediately.? Onerator Precedence and ReadabilityWhile the enaine now understands this svntaxhuman developers might find it slightly moreamolquous ar a olance• Visual Grouping: The parentheses (newClass()) act as a visual "container,"making it clear that the instantiationhannens first. Without them. in verv• Enter a prompt for GeminiAl. It can make mistakes, so double check it. Your privacy & GeminSummarize pageO JIMINNY@ For you(@ Recent# Starred8* AppsQ SpacesJiminny (New)Service-DeskE Queuesv Team Priority©i All open tickets 145 Unassigned t... 3E Support tea...•, Raised by melAssigned to …Eh Service reau1 E Platform teamProcessing t...j Site reliability... o•1 New features... obn TntoSec issues 0y Ready for Cu….. 0Resolved ti... 999+= View all aueuesE Service requestsA Incidents!l Revorts)@ Operations# Knowledge Base• CustomersI= Channole• Email loas< Develoner escalationsii: Slack integration& Reporting CenterQ Search+ Create100% .• Inu 14 May 14.39.10Ask Rovo• back II# SRD-6849ImpactNoneRoot causeNoneAttachments 23 ay 202605133 pm905.png157.pngLinked work itemsrelates to** JY-20903 Recorded call does not appear on the dashboardActivity• Comments HistorvWork loaAporovalsAdd internal note / Reoiv to customerPro tip: oress M to commentLukas Kovalik 25 seconds ago & Internal noteCould vou please have a look if it is ok to have both recorded and failed status.€* • Edit • DeleteLukas Kovalik 19 hours ago & Internal noteThe issue is with the status of the activity. It is failed. Those are not displayed in the dashboard in the completed section.Result: Activity has status='failed' (because import failed) but recording_state='recorded' (because recording was captured before the import failure).1 [2026-05-12 14:25:191 production.ERROR: [MeetingBotl ImportTracks: Recordings not found. retrving"activitvUuid": "67cebfc2-ed56-44a2-8c68-7a0286ed8618" ."activitvTN"• 70763436€ • Edit • DeleteCODE REVIEW..+o Summarise 2 comments =AnalyzingDetailsAssignee@ Lukas KovalikReporter@ Stoyan Tomov.Request Typei Report a bugKnowledge base# View related ... vPriority levelP2 MediumDev TeamProcessing teamOrganizationNationBuilderCanny Links'Open Canny Links> More fields Labels, Time tracking, Type of Inf...> Automation 4 Rule executions> featureOS Open featureOs~ IntercomShowing 1 out of 1 linked conversations& Line Kristensen> Sentry ef! Linked Issuessô Configure...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
42546
|
|
42547
|
Unnamed Group
Platform Sprint 4 Q2 - Platform Team Unnamed Group
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Usage | Windsurf
Usage | Windsurf
Unnamed Group
[SRD-6848] Sidekick SMS issue - Jira
[SRD-6848] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
Unnamed Group
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Unnamed Group
[SRD-6853] Moxso - Potential deal stages bug - Jira
[SRD-6853] Moxso - Potential deal stages bug - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
Close tab
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Useful commands - Engineering - Confluence
Useful commands - Engineering - Confluence
Dev Tools - Elastic
Dev Tools - Elastic
Jiminny
Jiminny
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
Unnamed Group
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
Pipedrive Developers Corner | Pipedrive API sandbox
Pipedrive Developers Corner | Pipedrive API sandbox
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
pipedrive/client-php: Pipedrive API client for PHP
pipedrive/client-php: Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
Code search results
Code search results
New Tab
Customize sidebar
Close Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AI Chat settings
Close
WORK, Google Account: [EMAIL]
Main menu
New Chat
Open menu for conversation actions.
Conversation with Gemini
Conversation with Gemini
Copy prompt
You said I’m on page “<tabTitle>JY-18091 | Update composer to support php 8.5 by n</tabTitle>” with “<selection>@@ -40,15 +40,15 @@ public function postUsers(Request $request): JsonResponse40 {40 {41$team = $this->getTeamFromRequest($request);41$team = $this->getTeamFromRequest($request);424243-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);43+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);444445if ($requestDTO->getPrimaryPhoneNumber() !== null) {45if ($requestDTO->getPrimaryPhoneNumber() !== null) {46$user = $this->userRepository->findByPhone(46$user = $this->userRepository->findByPhone(47 phone: $requestDTO->getPrimaryPhoneNumber(),47 phone: $requestDTO->getPrimaryPhoneNumber(),48 );48 );494950if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {50if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {51-return (new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists'))51+return new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists')52 ->getResponse();52 ->getResponse();53 }53 }54 }54 }@@ -59,7 +59,7 @@ public function postUsers(Request $request): JsonResponse59 );59 );606061if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {61if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {62-return (new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists'))62+return new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists')63 ->getResponse();63 ->getResponse();64 }64 }65 }65 }@@ -74,11 +74,11 @@ public function postUsers(Request $request): JsonResponse74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);757576if (! $newUser instanceof User) {76if (! $newUser instanceof User) {77-return (new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed'))77+return new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed')78 ->getResponse();78 ->getResponse();79 }79 }808081-return (new CoreUser())81+return new CoreUser()82 ->createFromUser($newUser)82 ->createFromUser($newUser)83 ->setExternalId($requestDTO->getUserName())83 ->setExternalId($requestDTO->getUserName())84 ->setHttpCode(Constants::HTTP_CREATED)84 ->setHttpCode(Constants::HTTP_CREATED)@@ -93,22 +93,22 @@ public function putUsers(Request $request, string $id): JsonResponse93$team = $this->getTeamFromRequest($request);93$team = $this->getTeamFromRequest($request);949495if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {95if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {96-return (new Error())->getResponse();96+return new Error()->getResponse();97 }97 }989899-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);99+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);100100101try {101try {102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);103103104-return (new CoreUser())104+return new CoreUser()105 ->createFromUser($user)105 ->createFromUser($user)106 ->setHttpCode(Constants::HTTP_OK)106 ->setHttpCode(Constants::HTTP_OK)107 ->getResponse();107 ->getResponse();108 } catch (Exception $exception) {108 } catch (Exception $exception) {109 Sentry::captureException($exception);109 Sentry::captureException($exception);110110111-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();111+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();112 }112 }113 }113 }114114@@ -117,7 +117,7 @@ public function deleteUser(Request $request, string $id): JsonResponse117$team = $this->getTeamFromRequest($request);117$team = $this->getTeamFromRequest($request);118118119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {120-return (new Error())->getResponse();120+return new Error()->getResponse();121 }121 }122122123$user = $this->scimProvisioning->getUserById($id);123$user = $this->scimProvisioning->getUserById($id);@@ -131,18 +131,18 @@ public function deleteUser(Request $request, string $id): JsonResponse131 ),131 ),132 );132 );133133134-return (new JsonResponse())->setStatusCode(204);134+return new JsonResponse()->setStatusCode(204);135 }135 }136136137public function patchUser(Request $request, string $id): JsonResponse137public function patchUser(Request $request, string $id): JsonResponse138 {138 {139$team = $this->getTeamFromRequest($request);139$team = $this->getTeamFromRequest($request);140140141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {142-return (new Error())->getResponse();142+return new Error()->getResponse();143 }143 }144144145-$requestDTO = (new PatchUser())145+$requestDTO = new PatchUser()146 ->setResourceLocalId($id)146 ->setResourceLocalId($id)147 ->createFromRequestPayload($request);147 ->createFromRequestPayload($request);148148@@ -153,10 +153,10 @@ public function patchUser(Request $request, string $id): JsonResponse153 } catch (Exception $e) {153 } catch (Exception $e) {154 Sentry::captureException($e);154 Sentry::captureException($e);155155156-return (new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed'))->getResponse();156+return new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed')->getResponse();157 }157 }158158159-return (new CoreUser())159+return new CoreUser()160 ->createFromUser($user)160 ->createFromUser($user)161 ->setHttpCode(Constants::HTTP_OK)161 ->setHttpCode(Constants::HTTP_OK)162 ->getResponse();162 ->getResponse();@@ -167,16 +167,16 @@ public function getUser(Request $request, string $id): JsonResponse167$team = $this->getTeamFromRequest($request);167$team = $this->getTeamFromRequest($request);168168169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {170-return (new Error())->getResponse();170+return new Error()->getResponse();171 }171 }172172173$user = $this->scimProvisioning->getUserById($id);173$user = $this->scimProvisioning->getUserById($id);174174175if (! $team->isSame($user->getTeam())) {175if (! $team->isSame($user->getTeam())) {176-return (new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.'))->getResponse();176+return new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.')->getResponse();177 }177 }178178179-return (new CoreUser())179+return new CoreUser()180 ->setHttpCode(Constants::HTTP_OK)180 ->setHttpCode(Constants::HTTP_OK)181 ->createFromUser($user)181 ->createFromUser($user)182 ->getResponse();182 ->getResponse();@@ -186,20 +186,20 @@ public function getUsersByQuery(Request $request): JsonResponse186 {186 {187$team = $this->getTeamFromRequest($request);187$team = $this->getTeamFromRequest($request);188188189-$requestDto = (new GetUserByQuery())->createFromRequestPayload($request);189+$requestDto = new GetUserByQuery()->createFromRequestPayload($request);190190191try {191try {192$resultsQuery = $this->scimProvisioning192$resultsQuery = $this->scimProvisioning193 ->translateQueryStringsToUserModelQuery($requestDto, $team);193 ->translateQueryStringsToUserModelQuery($requestDto, $team);194 } catch (Exception $exception) {194 } catch (Exception $exception) {195-return (new ListResponse())->createEmpty()->getResponse();195+return new ListResponse()->createEmpty()->getResponse();196 }196 }197197198$resultsQuery198$resultsQuery199 ->limit($requestDto->getCount())199 ->limit($requestDto->getCount())200 ->offset($requestDto->getStartIndex() - 1);200 ->offset($requestDto->getStartIndex() - 1);201201202-return (new ListResponse())202+return new ListResponse()203 ->setHttpCode(Constants::HTTP_OK)203 ->setHttpCode(Constants::HTTP_OK)204 ->setStartIndex($requestDto->getStartIndex())204 ->setStartIndex($requestDto->getStartIndex())205 ->createFromCollection($resultsQuery->get())205 ->createFromCollection($resultsQuery->get())@@ -210,15 +210,15 @@ public function postGroups(Request $request): JsonResponse210 {210 {211$team = $this->getTeamFromRequest($request);211$team = $this->getTeamFromRequest($request);212212213-$requestDto = (new CoreGroupRequest())->createFromRequestPayload($request);213+$requestDto = new CoreGroupRequest()->createFromRequestPayload($request);214214215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);216216217if (! $group instanceof Group) {217if (! $group instanceof Group) {218-return (new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed'))->getResponse();218+return new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed')->getResponse();219 }219 }220220221-$response = (new CoreGroup())->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();221+$response = new CoreGroup()->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();222222223return $response;223return $response;224 }224 }@@ -228,22 +228,22 @@ public function putGroups(Request $request, string $id): JsonResponse228$team = $this->getTeamFromRequest($request);228$team = $this->getTeamFromRequest($request);229229230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {231-return (new Error())->getResponse();231+return new Error()->getResponse();232 }232 }233233234-$requestDTO = (new CoreGroupRequest())->createFromRequestPayload($request);234+$requestDTO = new CoreGroupRequest()->createFromRequestPayload($request);235235236try {236try {237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);238238239-return (new CoreGroup())239+return new CoreGroup()240 ->createFromGroup($group)240 ->createFromGroup($group)241 ->setHttpCode(Constants::HTTP_OK)241 ->setHttpCode(Constants::HTTP_OK)242 ->getResponse();242 ->getResponse();243 } catch (Exception $exception) {243 } catch (Exception $exception) {244 Sentry::captureException($exception);244 Sentry::captureException($exception);245245246-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();246+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();247 }247 }248 }248 }249249@@ -252,12 +252,12 @@ public function getGroup(Request $request, string $id): JsonResponse252$team = $this->getTeamFromRequest($request);252$team = $this->getTeamFromRequest($request);253253254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {255-return (new Error())->getResponse();255+return new Error()->getResponse();256 }256 }257257258$group = $this->scimProvisioning->getGroupById($id);258$group = $this->scimProvisioning->getGroupById($id);259259260-return (new CoreGroup())260+return new CoreGroup()261 ->excludeAttributes($request)261 ->excludeAttributes($request)262 ->setHttpCode(Constants::HTTP_OK)262 ->setHttpCode(Constants::HTTP_OK)263 ->createFromGroup($group)263 ->createFromGroup($group)@@ -268,19 +268,19 @@ public function getGroupByQuery(Request $request): JsonResponse268 {268 {269$team = $this->getTeamFromRequest($request);269$team = $this->getTeamFromRequest($request);270270271-$dto = (new GetGroupByQuery())->createFromRequestPayload($request);271+$dto = new GetGroupByQuery()->createFromRequestPayload($request);272272273try {273try {274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);275 } catch (Exception $exception) {275 } catch (Exception $exception) {276-return (new ListResponse())->createEmpty()->getResponse();276+return new ListResponse()->createEmpty()->getResponse();277 }277 }278278279$groupsQuery279$groupsQuery280 ->limit($dto->getCount())280 ->limit($dto->getCount())281 ->offset($dto->getStartIndex() - 1);281 ->offset($dto->getStartIndex() - 1);282282283-return (new ListResponse())283+return new ListResponse()284 ->setHttpCode(Constants::HTTP_OK)284 ->setHttpCode(Constants::HTTP_OK)285 ->setStartIndex($dto->getStartIndex())285 ->setStartIndex($dto->getStartIndex())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())@@ -292,30 +292,30 @@ public function patchGroup(Request $request, $id): JsonResponse292$team = $this->getTeamFromRequest($request);292$team = $this->getTeamFromRequest($request);293293294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {295-return (new Error())->getResponse();295+return new Error()->getResponse();296 }296 }297297298-$dto = (new PatchGroup())->createFromRequestPayload($request);298+$dto = new PatchGroup()->createFromRequestPayload($request);299299300$group = Group::uuid($id);300$group = Group::uuid($id);301301302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);303303304-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);304+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);305 }305 }306306307public function deleteGroup(Request $request, $id): JsonResponse307public function deleteGroup(Request $request, $id): JsonResponse308 {308 {309$team = $this->getTeamFromRequest($request);309$team = $this->getTeamFromRequest($request);310310311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {312-return (new Error())->getResponse();312+return new Error()->getResponse();313 }313 }314314315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {316-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);316+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);317 } else {317 } else {318-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();318+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();319 }319 }320 }320 }321321</selection>” selected. Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
You said
I’m on page “<tabTitle>JY-18091 | Update composer to support php 8.5 by n</tabTitle>” with “<selection>@@ -40,15 +40,15 @@ public function postUsers(Request $request): JsonResponse40 {40 {41$team = $this->getTeamFromRequest($request);41$team = $this->getTeamFromRequest($request);424243-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);43+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);444445if ($requestDTO->getPrimaryPhoneNumber() !== null) {45if ($requestDTO->getPrimaryPhoneNumber() !== null) {46$user = $this->userRepository->findByPhone(46$user = $this->userRepository->findByPhone(47 phone: $requestDTO->getPrimaryPhoneNumber(),47 phone: $requestDTO->getPrimaryPhoneNumber(),48 );48 );494950if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {50if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {51-return (new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists'))51+return new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists')52 ->getResponse();52 ->getResponse();53 }53 }54 }54 }@@ -59,7 +59,7 @@ public function postUsers(Request $request): JsonResponse59 );59 );606061if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {61if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {62-return (new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists'))62+return new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists')63 ->getResponse();63 ->getResponse();64 }64 }65 }65 }@@ -74,11 +74,11 @@ public function postUsers(Request $request): JsonResponse74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);757576if (! $newUser instanceof User) {76if (! $newUser instanceof User) {77-return (new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed'))77+return new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed')78 ->getResponse();78 ->getResponse();79 }79 }808081-return (new CoreUser())81+return new CoreUser()82 ->createFromUser($newUser)82 ->createFromUser($newUser)83 ->setExternalId($requestDTO->getUserName())83 ->setExternalId($requestDTO->getUserName())84 ->setHttpCode(Constants::HTTP_CREATED)84 ->setHttpCode(Constants::HTTP_CREATED)@@ -93,22 +93,22 @@ public function putUsers(Request $request, string $id): JsonResponse93$team = $this->getTeamFromRequest($request);93$team = $this->getTeamFromRequest($request);949495if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {95if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {96-return (new Error())->getResponse();96+return new Error()->getResponse();97 }97 }989899-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);99+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);100100101try {101try {102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);103103104-return (new CoreUser())104+return new CoreUser()105 ->createFromUser($user)105 ->createFromUser($user)106 ->setHttpCode(Constants::HTTP_OK)106 ->setHttpCode(Constants::HTTP_OK)107 ->getResponse();107 ->getResponse();108 } catch (Exception $exception) {108 } catch (Exception $exception) {109 Sentry::captureException($exception);109 Sentry::captureException($exception);110110111-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();111+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();112 }112 }113 }113 }114114@@ -117,7 +117,7 @@ public function deleteUser(Request $request, string $id): JsonResponse117$team = $this->getTeamFromRequest($request);117$team = $this->getTeamFromRequest($request);118118119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {120-return (new Error())->getResponse();120+return new Error()->getResponse();121 }121 }122122123$user = $this->scimProvisioning->getUserById($id);123$user = $this->scimProvisioning->getUserById($id);@@ -131,18 +131,18 @@ public function deleteUser(Request $request, string $id): JsonResponse131 ),131 ),132 );132 );133133134-return (new JsonResponse())->setStatusCode(204);134+return new JsonResponse()->setStatusCode(204);135 }135 }136136137public function patchUser(Request $request, string $id): JsonResponse137public function patchUser(Request $request, string $id): JsonResponse138 {138 {139$team = $this->getTeamFromRequest($request);139$team = $this->getTeamFromRequest($request);140140141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {142-return (new Error())->getResponse();142+return new Error()->getResponse();143 }143 }144144145-$requestDTO = (new PatchUser())145+$requestDTO = new PatchUser()146 ->setResourceLocalId($id)146 ->setResourceLocalId($id)147 ->createFromRequestPayload($request);147 ->createFromRequestPayload($request);148148@@ -153,10 +153,10 @@ public function patchUser(Request $request, string $id): JsonResponse153 } catch (Exception $e) {153 } catch (Exception $e) {154 Sentry::captureException($e);154 Sentry::captureException($e);155155156-return (new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed'))->getResponse();156+return new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed')->getResponse();157 }157 }158158159-return (new CoreUser())159+return new CoreUser()160 ->createFromUser($user)160 ->createFromUser($user)161 ->setHttpCode(Constants::HTTP_OK)161 ->setHttpCode(Constants::HTTP_OK)162 ->getResponse();162 ->getResponse();@@ -167,16 +167,16 @@ public function getUser(Request $request, string $id): JsonResponse167$team = $this->getTeamFromRequest($request);167$team = $this->getTeamFromRequest($request);168168169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {170-return (new Error())->getResponse();170+return new Error()->getResponse();171 }171 }172172173$user = $this->scimProvisioning->getUserById($id);173$user = $this->scimProvisioning->getUserById($id);174174175if (! $team->isSame($user->getTeam())) {175if (! $team->isSame($user->getTeam())) {176-return (new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.'))->getResponse();176+return new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.')->getResponse();177 }177 }178178179-return (new CoreUser())179+return new CoreUser()180 ->setHttpCode(Constants::HTTP_OK)180 ->setHttpCode(Constants::HTTP_OK)181 ->createFromUser($user)181 ->createFromUser($user)182 ->getResponse();182 ->getResponse();@@ -186,20 +186,20 @@ public function getUsersByQuery(Request $request): JsonResponse186 {186 {187$team = $this->getTeamFromRequest($request);187$team = $this->getTeamFromRequest($request);188188189-$requestDto = (new GetUserByQuery())->createFromRequestPayload($request);189+$requestDto = new GetUserByQuery()->createFromRequestPayload($request);190190191try {191try {192$resultsQuery = $this->scimProvisioning192$resultsQuery = $this->scimProvisioning193 ->translateQueryStringsToUserModelQuery($requestDto, $team);193 ->translateQueryStringsToUserModelQuery($requestDto, $team);194 } catch (Exception $exception) {194 } catch (Exception $exception) {195-return (new ListResponse())->createEmpty()->getResponse();195+return new ListResponse()->createEmpty()->getResponse();196 }196 }197197198$resultsQuery198$resultsQuery199 ->limit($requestDto->getCount())199 ->limit($requestDto->getCount())200 ->offset($requestDto->getStartIndex() - 1);200 ->offset($requestDto->getStartIndex() - 1);201201202-return (new ListResponse())202+return new ListResponse()203 ->setHttpCode(Constants::HTTP_OK)203 ->setHttpCode(Constants::HTTP_OK)204 ->setStartIndex($requestDto->getStartIndex())204 ->setStartIndex($requestDto->getStartIndex())205 ->createFromCollection($resultsQuery->get())205 ->createFromCollection($resultsQuery->get())@@ -210,15 +210,15 @@ public function postGroups(Request $request): JsonResponse210 {210 {211$team = $this->getTeamFromRequest($request);211$team = $this->getTeamFromRequest($request);212212213-$requestDto = (new CoreGroupRequest())->createFromRequestPayload($request);213+$requestDto = new CoreGroupRequest()->createFromRequestPayload($request);214214215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);216216217if (! $group instanceof Group) {217if (! $group instanceof Group) {218-return (new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed'))->getResponse();218+return new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed')->getResponse();219 }219 }220220221-$response = (new CoreGroup())->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();221+$response = new CoreGroup()->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();222222223return $response;223return $response;224 }224 }@@ -228,22 +228,22 @@ public function putGroups(Request $request, string $id): JsonResponse228$team = $this->getTeamFromRequest($request);228$team = $this->getTeamFromRequest($request);229229230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {231-return (new Error())->getResponse();231+return new Error()->getResponse();232 }232 }233233234-$requestDTO = (new CoreGroupRequest())->createFromRequestPayload($request);234+$requestDTO = new CoreGroupRequest()->createFromRequestPayload($request);235235236try {236try {237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);238238239-return (new CoreGroup())239+return new CoreGroup()240 ->createFromGroup($group)240 ->createFromGroup($group)241 ->setHttpCode(Constants::HTTP_OK)241 ->setHttpCode(Constants::HTTP_OK)242 ->getResponse();242 ->getResponse();243 } catch (Exception $exception) {243 } catch (Exception $exception) {244 Sentry::captureException($exception);244 Sentry::captureException($exception);245245246-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();246+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();247 }247 }248 }248 }249249@@ -252,12 +252,12 @@ public function getGroup(Request $request, string $id): JsonResponse252$team = $this->getTeamFromRequest($request);252$team = $this->getTeamFromRequest($request);253253254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {255-return (new Error())->getResponse();255+return new Error()->getResponse();256 }256 }257257258$group = $this->scimProvisioning->getGroupById($id);258$group = $this->scimProvisioning->getGroupById($id);259259260-return (new CoreGroup())260+return new CoreGroup()261 ->excludeAttributes($request)261 ->excludeAttributes($request)262 ->setHttpCode(Constants::HTTP_OK)262 ->setHttpCode(Constants::HTTP_OK)263 ->createFromGroup($group)263 ->createFromGroup($group)@@ -268,19 +268,19 @@ public function getGroupByQuery(Request $request): JsonResponse268 {268 {269$team = $this->getTeamFromRequest($request);269$team = $this->getTeamFromRequest($request);270270271-$dto = (new GetGroupByQuery())->createFromRequestPayload($request);271+$dto = new GetGroupByQuery()->createFromRequestPayload($request);272272273try {273try {274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);275 } catch (Exception $exception) {275 } catch (Exception $exception) {276-return (new ListResponse())->createEmpty()->getResponse();276+return new ListResponse()->createEmpty()->getResponse();277 }277 }278278279$groupsQuery279$groupsQuery280 ->limit($dto->getCount())280 ->limit($dto->getCount())281 ->offset($dto->getStartIndex() - 1);281 ->offset($dto->getStartIndex() - 1);282282283-return (new ListResponse())283+return new ListResponse()284 ->setHttpCode(Constants::HTTP_OK)284 ->setHttpCode(Constants::HTTP_OK)285 ->setStartIndex($dto->getStartIndex())285 ->setStartIndex($dto->getStartIndex())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())@@ -292,30 +292,30 @@ public function patchGroup(Request $request, $id): JsonResponse292$team = $this->getTeamFromRequest($request);292$team = $this->getTeamFromRequest($request);293293294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {295-return (new Error())->getResponse();295+return new Error()->getResponse();296 }296 }297297298-$dto = (new PatchGroup())->createFromRequestPayload($request);298+$dto = new PatchGroup()->createFromRequestPayload($request);299299300$group = Group::uuid($id);300$group = Group::uuid($id);301301302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);303303304-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);304+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);305 }305 }306306307public function deleteGroup(Request $request, $id): JsonResponse307public function deleteGroup(Request $request, $id): JsonResponse308 {308 {309$team = $this->getTeamFromRequest($request);309$team = $this->getTeamFromRequest($request);310310311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {312-return (new Error())->getResponse();312+return new Error()->getResponse();313 }313 }314314315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {316-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);316+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);317 } else {317 } else {318-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();318+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();319 }319 }320 }320 }321321</selection>” selected.
Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
Expand
Listen
Gemini said
Gemini said
The selected code changes represent a mechanical refactoring of a PHP controller to align with modern syntax standards, likely as part of the upgrade to
PHP 8.5
.
Core Change: Member Access on Instantiation
Core Change: Member Access on Instantiation
The primary modification across the entire file is the removal of unnecessary parentheses when performing member access (method chaining) on a newly instantiated object.
Pattern:
(new ClassName())->method()
is simplified to
new ClassName()->method()
.
Reasoning:
Since PHP 8.0+, the parser handles member access on new expressions without requiring the wrapping parentheses for disambiguation.
Affected Components
Affected Components
The refactoring impacts various response and DTO (Data Transfer Object) initializations within the following SCIM (System for Cross-domain Identity Management) endpoints:
User Management:
postUsers
: Simplified instantiation of
CoreUserRequest
,
Error
, and
CoreUser
.
putUsers
/
patchUser
/
getUser
: Updated
Error
,
CoreUser
, and
PatchUser
calls.
getUsersByQuery
: Updated
GetUserByQuery
and
ListResponse
.
deleteUser
: Updated
JsonResponse
and
Error
.
Group Management:
postGroups
: Simplified
CoreGroupRequest
,
Error
, and
CoreGroup
.
putGroups
/
getGroup
: Updated
CoreGroupRequest
and
Error
.
getGroupByQuery
: Updated
GetGroupByQuery
and
ListResponse
.
patchGroup
/
deleteGroup
: Updated
PatchGroup
,
JsonResponse
, and
Error
.
Technical Impact
Technical Impact
No Functional Change:
The logic for user provisioning, group updates, and error handling remains identical.
Code Cleanliness:
Reduces visual noise and adopts the more concise syntax permitted in recent PHP versions.
Good response
Bad response
Share & export
Copy
Show more options
Copy prompt
Edit
You said are there soem potential issues?
You said
are there soem potential issues?
Listen
Gemini said
Gemini said
While this refactoring is syntactically correct for modern PHP, there are a few practical and technical "gotchas" to consider when moving from
(new Class())->method()
to
new Class()->method()
.
1. Language Compatibility (Backward Compatibility)
1. Language Compatibility (Backward Compatibility)
The biggest risk is the PHP version itself.
PHP < 8.0:
This change will cause a
Parse Error
. Prior to PHP 8.0, the parser could not handle member access on a
new
expression without parentheses.
The "Trap":
If your production environment is updated to PHP 8.5 but a developer's local environment or a specific CI runner is still on PHP 7.4, the code will break immediately.
2. Operator Precedence and Readability
2. Operator Precedence and Readability
While the engine now understands this syntax, human developers might find it slightly more ambiguous at a glance.
Visual Grouping:
The parentheses
(new Class())
act as a visual "container," making it clear that the instantiation happens first. Without them, in very complex one-liners, it can take a fraction of a second longer for a human to parse the execution order.
Consistency:
If only half the codebase is updated, the inconsistency can lead to "style drift," where different developers follow different patterns, making the code feel disorganized.
3. Tooling and IDE Support
3. Tooling and IDE Support
Static Analysis:
Older versions of static analysis tools (like PHPStan or Psalm) or older IDE versions might flag the new syntax as an error or "low-quality code" if they aren't configured for PHP 8.0+.
Automated Refactoring:
If this change was done via an automated tool (like Rector), it is usually safe. However, if done via "Find and Replace," there is a risk of accidentally stripping parentheses from complex expressions where they might still be required for logic.
4. Error Reporting Sensitivity
4. Error Reporting Sensitivity
In some edge cases, if the constructor of the class throws an exception:
The stack trace remains the same, but when debugging "on the fly" in some older debugger clients, the lack of grouping can occasionally make it slightly harder to evaluate the object state
before
the method call in a watch window.
Summary of Risk Levels
Summary of Risk Levels
Risk Factor
Level
Mitigation
Production Crash
High
Ensure
platform
in
composer.json
is set to
8.0
or higher.
Developer Confusion
Low
Update team style guides to reflect PHP 8.x standards.
Linting Errors
Medium
Update CI/CD linting rules to support modern PHP syntax.
Risk Factor
Production Crash
Developer Confusion
Linting Errors
Level
High
Low
Medium
Mitigation
Ensure
platform
in
composer.json
is set to
8.0
or higher.
Update team style guides to reflect PHP 8.x standards.
Update CI/CD linting rules to support modern PHP syntax.
Copy table
Are you planning to deploy this to an environment where you are certain the PHP version is strictly 8.0 or higher?
Good response
Bad response
Redo
Share & export
Copy
Show more options
Enter a prompt for Gemini
encrypted
Enter a prompt for Gemini
encrypted
Open upload file menu
Tools
Open mode picker
Fast
Microphone
Send message
Your Jiminny chats aren’t used to improve our models. Gemini is AI. It can make mistakes, so double check it.
Your privacy & Gemini Opens in a new window
Your privacy & Gemini
Opens in a new window
Summarize page
Summarize page
Skip to content
Skip to content
Open menu
Homepage (g then d)
jiminny
jiminny
app
app
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
All issues(g then i)
All pull requests
All repositories
You have unread notifications(g then n)
Open user navigation menu
Repository navigation
Repository navigation
Code
Code
Pull requests (29)
Pull requests
(
29
)
Agents
Agents
Actions
Actions
Wiki
Wiki
Security and quality
Security and quality
Insights
Insights
Settings
Settings
Important update
Important update
On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.
Review this update
Review this update
and manage your preferences in your
GitHub account settings
GitHub account settings
.
Dismiss banner
JY-20903 Update activity stage when opportunity is changed #12077 Edit title
JY-20903 Update activity stage when opportunity is changed
#
12077
Edit title
Awaiting approval
Awaiting approval
Code
Code
Open
LakyLak
LakyLak
wants to merge 1 commit into
master
master
from
JY-20903-update_activity-stage-on-opportunity-change
JY-20903-update_activity-stage-on-opportunity-change
Copy head branch name to clipboard
Lines changed: 10 additions & 5 deletions
Conversation (2)
Conversation
(
2
)
Commits (1)
Commits
(
1
)
Checks (4)
Checks
(
4
)
Files changed (2)
Files changed
(
2
)
Open
JY-20903 Update activity stage when opportunity is changed #12077 LakyLak wants to merge 1 commit into master from JY-20903-update_activity-stage-on-opportunity-change Copy head branch name to clipboard
JY-20903 Update activity stage when opportunity is changed
JY-20903 Update activity stage when opportunity is changed
#
12077
LakyLak
LakyLak
wants to merge 1 commit into
master
master
from
JY-20903-update_activity-stage-on-opportunity-change...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
42547
|
|
42548
|
Unnamed Group
Platform Sprint 4 Q2 - Platform Team Unnamed Group
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Usage | Windsurf
Usage | Windsurf
Unnamed Group
[SRD-6848] Sidekick SMS issue - Jira
[SRD-6848] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
Unnamed Group
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Unnamed Group
[SRD-6853] Moxso - Potential deal stages bug - Jira
[SRD-6853] Moxso - Potential deal stages bug - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
Close tab
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Useful commands - Engineering - Confluence
Useful commands - Engineering - Confluence
Dev Tools - Elastic
Dev Tools - Elastic
Jiminny
Jiminny
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
Unnamed Group
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
Pipedrive Developers Corner | Pipedrive API sandbox
Pipedrive Developers Corner | Pipedrive API sandbox
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
pipedrive/client-php: Pipedrive API client for PHP
pipedrive/client-php: Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
Code search results
Code search results
New Tab
Customize sidebar
Close Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AI Chat settings
Close
WORK, Google Account: [EMAIL]
Main menu
New Chat
Open menu for conversation actions.
Conversation with Gemini
Conversation with Gemini
Copy prompt
You said I’m on page “<tabTitle>JY-18091 | Update composer to support php 8.5 by n</tabTitle>” with “<selection>@@ -40,15 +40,15 @@ public function postUsers(Request $request): JsonResponse40 {40 {41$team = $this->getTeamFromRequest($request);41$team = $this->getTeamFromRequest($request);424243-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);43+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);444445if ($requestDTO->getPrimaryPhoneNumber() !== null) {45if ($requestDTO->getPrimaryPhoneNumber() !== null) {46$user = $this->userRepository->findByPhone(46$user = $this->userRepository->findByPhone(47 phone: $requestDTO->getPrimaryPhoneNumber(),47 phone: $requestDTO->getPrimaryPhoneNumber(),48 );48 );494950if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {50if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {51-return (new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists'))51+return new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists')52 ->getResponse();52 ->getResponse();53 }53 }54 }54 }@@ -59,7 +59,7 @@ public function postUsers(Request $request): JsonResponse59 );59 );606061if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {61if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {62-return (new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists'))62+return new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists')63 ->getResponse();63 ->getResponse();64 }64 }65 }65 }@@ -74,11 +74,11 @@ public function postUsers(Request $request): JsonResponse74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);757576if (! $newUser instanceof User) {76if (! $newUser instanceof User) {77-return (new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed'))77+return new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed')78 ->getResponse();78 ->getResponse();79 }79 }808081-return (new CoreUser())81+return new CoreUser()82 ->createFromUser($newUser)82 ->createFromUser($newUser)83 ->setExternalId($requestDTO->getUserName())83 ->setExternalId($requestDTO->getUserName())84 ->setHttpCode(Constants::HTTP_CREATED)84 ->setHttpCode(Constants::HTTP_CREATED)@@ -93,22 +93,22 @@ public function putUsers(Request $request, string $id): JsonResponse93$team = $this->getTeamFromRequest($request);93$team = $this->getTeamFromRequest($request);949495if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {95if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {96-return (new Error())->getResponse();96+return new Error()->getResponse();97 }97 }989899-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);99+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);100100101try {101try {102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);103103104-return (new CoreUser())104+return new CoreUser()105 ->createFromUser($user)105 ->createFromUser($user)106 ->setHttpCode(Constants::HTTP_OK)106 ->setHttpCode(Constants::HTTP_OK)107 ->getResponse();107 ->getResponse();108 } catch (Exception $exception) {108 } catch (Exception $exception) {109 Sentry::captureException($exception);109 Sentry::captureException($exception);110110111-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();111+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();112 }112 }113 }113 }114114@@ -117,7 +117,7 @@ public function deleteUser(Request $request, string $id): JsonResponse117$team = $this->getTeamFromRequest($request);117$team = $this->getTeamFromRequest($request);118118119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {120-return (new Error())->getResponse();120+return new Error()->getResponse();121 }121 }122122123$user = $this->scimProvisioning->getUserById($id);123$user = $this->scimProvisioning->getUserById($id);@@ -131,18 +131,18 @@ public function deleteUser(Request $request, string $id): JsonResponse131 ),131 ),132 );132 );133133134-return (new JsonResponse())->setStatusCode(204);134+return new JsonResponse()->setStatusCode(204);135 }135 }136136137public function patchUser(Request $request, string $id): JsonResponse137public function patchUser(Request $request, string $id): JsonResponse138 {138 {139$team = $this->getTeamFromRequest($request);139$team = $this->getTeamFromRequest($request);140140141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {142-return (new Error())->getResponse();142+return new Error()->getResponse();143 }143 }144144145-$requestDTO = (new PatchUser())145+$requestDTO = new PatchUser()146 ->setResourceLocalId($id)146 ->setResourceLocalId($id)147 ->createFromRequestPayload($request);147 ->createFromRequestPayload($request);148148@@ -153,10 +153,10 @@ public function patchUser(Request $request, string $id): JsonResponse153 } catch (Exception $e) {153 } catch (Exception $e) {154 Sentry::captureException($e);154 Sentry::captureException($e);155155156-return (new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed'))->getResponse();156+return new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed')->getResponse();157 }157 }158158159-return (new CoreUser())159+return new CoreUser()160 ->createFromUser($user)160 ->createFromUser($user)161 ->setHttpCode(Constants::HTTP_OK)161 ->setHttpCode(Constants::HTTP_OK)162 ->getResponse();162 ->getResponse();@@ -167,16 +167,16 @@ public function getUser(Request $request, string $id): JsonResponse167$team = $this->getTeamFromRequest($request);167$team = $this->getTeamFromRequest($request);168168169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {170-return (new Error())->getResponse();170+return new Error()->getResponse();171 }171 }172172173$user = $this->scimProvisioning->getUserById($id);173$user = $this->scimProvisioning->getUserById($id);174174175if (! $team->isSame($user->getTeam())) {175if (! $team->isSame($user->getTeam())) {176-return (new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.'))->getResponse();176+return new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.')->getResponse();177 }177 }178178179-return (new CoreUser())179+return new CoreUser()180 ->setHttpCode(Constants::HTTP_OK)180 ->setHttpCode(Constants::HTTP_OK)181 ->createFromUser($user)181 ->createFromUser($user)182 ->getResponse();182 ->getResponse();@@ -186,20 +186,20 @@ public function getUsersByQuery(Request $request): JsonResponse186 {186 {187$team = $this->getTeamFromRequest($request);187$team = $this->getTeamFromRequest($request);188188189-$requestDto = (new GetUserByQuery())->createFromRequestPayload($request);189+$requestDto = new GetUserByQuery()->createFromRequestPayload($request);190190191try {191try {192$resultsQuery = $this->scimProvisioning192$resultsQuery = $this->scimProvisioning193 ->translateQueryStringsToUserModelQuery($requestDto, $team);193 ->translateQueryStringsToUserModelQuery($requestDto, $team);194 } catch (Exception $exception) {194 } catch (Exception $exception) {195-return (new ListResponse())->createEmpty()->getResponse();195+return new ListResponse()->createEmpty()->getResponse();196 }196 }197197198$resultsQuery198$resultsQuery199 ->limit($requestDto->getCount())199 ->limit($requestDto->getCount())200 ->offset($requestDto->getStartIndex() - 1);200 ->offset($requestDto->getStartIndex() - 1);201201202-return (new ListResponse())202+return new ListResponse()203 ->setHttpCode(Constants::HTTP_OK)203 ->setHttpCode(Constants::HTTP_OK)204 ->setStartIndex($requestDto->getStartIndex())204 ->setStartIndex($requestDto->getStartIndex())205 ->createFromCollection($resultsQuery->get())205 ->createFromCollection($resultsQuery->get())@@ -210,15 +210,15 @@ public function postGroups(Request $request): JsonResponse210 {210 {211$team = $this->getTeamFromRequest($request);211$team = $this->getTeamFromRequest($request);212212213-$requestDto = (new CoreGroupRequest())->createFromRequestPayload($request);213+$requestDto = new CoreGroupRequest()->createFromRequestPayload($request);214214215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);216216217if (! $group instanceof Group) {217if (! $group instanceof Group) {218-return (new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed'))->getResponse();218+return new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed')->getResponse();219 }219 }220220221-$response = (new CoreGroup())->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();221+$response = new CoreGroup()->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();222222223return $response;223return $response;224 }224 }@@ -228,22 +228,22 @@ public function putGroups(Request $request, string $id): JsonResponse228$team = $this->getTeamFromRequest($request);228$team = $this->getTeamFromRequest($request);229229230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {231-return (new Error())->getResponse();231+return new Error()->getResponse();232 }232 }233233234-$requestDTO = (new CoreGroupRequest())->createFromRequestPayload($request);234+$requestDTO = new CoreGroupRequest()->createFromRequestPayload($request);235235236try {236try {237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);238238239-return (new CoreGroup())239+return new CoreGroup()240 ->createFromGroup($group)240 ->createFromGroup($group)241 ->setHttpCode(Constants::HTTP_OK)241 ->setHttpCode(Constants::HTTP_OK)242 ->getResponse();242 ->getResponse();243 } catch (Exception $exception) {243 } catch (Exception $exception) {244 Sentry::captureException($exception);244 Sentry::captureException($exception);245245246-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();246+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();247 }247 }248 }248 }249249@@ -252,12 +252,12 @@ public function getGroup(Request $request, string $id): JsonResponse252$team = $this->getTeamFromRequest($request);252$team = $this->getTeamFromRequest($request);253253254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {255-return (new Error())->getResponse();255+return new Error()->getResponse();256 }256 }257257258$group = $this->scimProvisioning->getGroupById($id);258$group = $this->scimProvisioning->getGroupById($id);259259260-return (new CoreGroup())260+return new CoreGroup()261 ->excludeAttributes($request)261 ->excludeAttributes($request)262 ->setHttpCode(Constants::HTTP_OK)262 ->setHttpCode(Constants::HTTP_OK)263 ->createFromGroup($group)263 ->createFromGroup($group)@@ -268,19 +268,19 @@ public function getGroupByQuery(Request $request): JsonResponse268 {268 {269$team = $this->getTeamFromRequest($request);269$team = $this->getTeamFromRequest($request);270270271-$dto = (new GetGroupByQuery())->createFromRequestPayload($request);271+$dto = new GetGroupByQuery()->createFromRequestPayload($request);272272273try {273try {274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);275 } catch (Exception $exception) {275 } catch (Exception $exception) {276-return (new ListResponse())->createEmpty()->getResponse();276+return new ListResponse()->createEmpty()->getResponse();277 }277 }278278279$groupsQuery279$groupsQuery280 ->limit($dto->getCount())280 ->limit($dto->getCount())281 ->offset($dto->getStartIndex() - 1);281 ->offset($dto->getStartIndex() - 1);282282283-return (new ListResponse())283+return new ListResponse()284 ->setHttpCode(Constants::HTTP_OK)284 ->setHttpCode(Constants::HTTP_OK)285 ->setStartIndex($dto->getStartIndex())285 ->setStartIndex($dto->getStartIndex())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())@@ -292,30 +292,30 @@ public function patchGroup(Request $request, $id): JsonResponse292$team = $this->getTeamFromRequest($request);292$team = $this->getTeamFromRequest($request);293293294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {295-return (new Error())->getResponse();295+return new Error()->getResponse();296 }296 }297297298-$dto = (new PatchGroup())->createFromRequestPayload($request);298+$dto = new PatchGroup()->createFromRequestPayload($request);299299300$group = Group::uuid($id);300$group = Group::uuid($id);301301302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);303303304-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);304+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);305 }305 }306306307public function deleteGroup(Request $request, $id): JsonResponse307public function deleteGroup(Request $request, $id): JsonResponse308 {308 {309$team = $this->getTeamFromRequest($request);309$team = $this->getTeamFromRequest($request);310310311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {312-return (new Error())->getResponse();312+return new Error()->getResponse();313 }313 }314314315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {316-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);316+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);317 } else {317 } else {318-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();318+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();319 }319 }320 }320 }321321</selection>” selected. Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
You said
I’m on page “<tabTitle>JY-18091 | Update composer to support php 8.5 by n</tabTitle>” with “<selection>@@ -40,15 +40,15 @@ public function postUsers(Request $request): JsonResponse40 {40 {41$team = $this->getTeamFromRequest($request);41$team = $this->getTeamFromRequest($request);424243-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);43+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);444445if ($requestDTO->getPrimaryPhoneNumber() !== null) {45if ($requestDTO->getPrimaryPhoneNumber() !== null) {46$user = $this->userRepository->findByPhone(46$user = $this->userRepository->findByPhone(47 phone: $requestDTO->getPrimaryPhoneNumber(),47 phone: $requestDTO->getPrimaryPhoneNumber(),48 );48 );494950if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {50if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {51-return (new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists'))51+return new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists')52 ->getResponse();52 ->getResponse();53 }53 }54 }54 }@@ -59,7 +59,7 @@ public function postUsers(Request $request): JsonResponse59 );59 );606061if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {61if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {62-return (new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists'))62+return new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists')63 ->getResponse();63 ->getResponse();64 }64 }65 }65 }@@ -74,11 +74,11 @@ public function postUsers(Request $request): JsonResponse74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);757576if (! $newUser instanceof User) {76if (! $newUser instanceof User) {77-return (new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed'))77+return new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed')78 ->getResponse();78 ->getResponse();79 }79 }808081-return (new CoreUser())81+return new CoreUser()82 ->createFromUser($newUser)82 ->createFromUser($newUser)83 ->setExternalId($requestDTO->getUserName())83 ->setExternalId($requestDTO->getUserName())84 ->setHttpCode(Constants::HTTP_CREATED)84 ->setHttpCode(Constants::HTTP_CREATED)@@ -93,22 +93,22 @@ public function putUsers(Request $request, string $id): JsonResponse93$team = $this->getTeamFromRequest($request);93$team = $this->getTeamFromRequest($request);949495if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {95if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {96-return (new Error())->getResponse();96+return new Error()->getResponse();97 }97 }989899-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);99+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);100100101try {101try {102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);103103104-return (new CoreUser())104+return new CoreUser()105 ->createFromUser($user)105 ->createFromUser($user)106 ->setHttpCode(Constants::HTTP_OK)106 ->setHttpCode(Constants::HTTP_OK)107 ->getResponse();107 ->getResponse();108 } catch (Exception $exception) {108 } catch (Exception $exception) {109 Sentry::captureException($exception);109 Sentry::captureException($exception);110110111-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();111+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();112 }112 }113 }113 }114114@@ -117,7 +117,7 @@ public function deleteUser(Request $request, string $id): JsonResponse117$team = $this->getTeamFromRequest($request);117$team = $this->getTeamFromRequest($request);118118119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {120-return (new Error())->getResponse();120+return new Error()->getResponse();121 }121 }122122123$user = $this->scimProvisioning->getUserById($id);123$user = $this->scimProvisioning->getUserById($id);@@ -131,18 +131,18 @@ public function deleteUser(Request $request, string $id): JsonResponse131 ),131 ),132 );132 );133133134-return (new JsonResponse())->setStatusCode(204);134+return new JsonResponse()->setStatusCode(204);135 }135 }136136137public function patchUser(Request $request, string $id): JsonResponse137public function patchUser(Request $request, string $id): JsonResponse138 {138 {139$team = $this->getTeamFromRequest($request);139$team = $this->getTeamFromRequest($request);140140141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {142-return (new Error())->getResponse();142+return new Error()->getResponse();143 }143 }144144145-$requestDTO = (new PatchUser())145+$requestDTO = new PatchUser()146 ->setResourceLocalId($id)146 ->setResourceLocalId($id)147 ->createFromRequestPayload($request);147 ->createFromRequestPayload($request);148148@@ -153,10 +153,10 @@ public function patchUser(Request $request, string $id): JsonResponse153 } catch (Exception $e) {153 } catch (Exception $e) {154 Sentry::captureException($e);154 Sentry::captureException($e);155155156-return (new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed'))->getResponse();156+return new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed')->getResponse();157 }157 }158158159-return (new CoreUser())159+return new CoreUser()160 ->createFromUser($user)160 ->createFromUser($user)161 ->setHttpCode(Constants::HTTP_OK)161 ->setHttpCode(Constants::HTTP_OK)162 ->getResponse();162 ->getResponse();@@ -167,16 +167,16 @@ public function getUser(Request $request, string $id): JsonResponse167$team = $this->getTeamFromRequest($request);167$team = $this->getTeamFromRequest($request);168168169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {170-return (new Error())->getResponse();170+return new Error()->getResponse();171 }171 }172172173$user = $this->scimProvisioning->getUserById($id);173$user = $this->scimProvisioning->getUserById($id);174174175if (! $team->isSame($user->getTeam())) {175if (! $team->isSame($user->getTeam())) {176-return (new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.'))->getResponse();176+return new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.')->getResponse();177 }177 }178178179-return (new CoreUser())179+return new CoreUser()180 ->setHttpCode(Constants::HTTP_OK)180 ->setHttpCode(Constants::HTTP_OK)181 ->createFromUser($user)181 ->createFromUser($user)182 ->getResponse();182 ->getResponse();@@ -186,20 +186,20 @@ public function getUsersByQuery(Request $request): JsonResponse186 {186 {187$team = $this->getTeamFromRequest($request);187$team = $this->getTeamFromRequest($request);188188189-$requestDto = (new GetUserByQuery())->createFromRequestPayload($request);189+$requestDto = new GetUserByQuery()->createFromRequestPayload($request);190190191try {191try {192$resultsQuery = $this->scimProvisioning192$resultsQuery = $this->scimProvisioning193 ->translateQueryStringsToUserModelQuery($requestDto, $team);193 ->translateQueryStringsToUserModelQuery($requestDto, $team);194 } catch (Exception $exception) {194 } catch (Exception $exception) {195-return (new ListResponse())->createEmpty()->getResponse();195+return new ListResponse()->createEmpty()->getResponse();196 }196 }197197198$resultsQuery198$resultsQuery199 ->limit($requestDto->getCount())199 ->limit($requestDto->getCount())200 ->offset($requestDto->getStartIndex() - 1);200 ->offset($requestDto->getStartIndex() - 1);201201202-return (new ListResponse())202+return new ListResponse()203 ->setHttpCode(Constants::HTTP_OK)203 ->setHttpCode(Constants::HTTP_OK)204 ->setStartIndex($requestDto->getStartIndex())204 ->setStartIndex($requestDto->getStartIndex())205 ->createFromCollection($resultsQuery->get())205 ->createFromCollection($resultsQuery->get())@@ -210,15 +210,15 @@ public function postGroups(Request $request): JsonResponse210 {210 {211$team = $this->getTeamFromRequest($request);211$team = $this->getTeamFromRequest($request);212212213-$requestDto = (new CoreGroupRequest())->createFromRequestPayload($request);213+$requestDto = new CoreGroupRequest()->createFromRequestPayload($request);214214215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);216216217if (! $group instanceof Group) {217if (! $group instanceof Group) {218-return (new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed'))->getResponse();218+return new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed')->getResponse();219 }219 }220220221-$response = (new CoreGroup())->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();221+$response = new CoreGroup()->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();222222223return $response;223return $response;224 }224 }@@ -228,22 +228,22 @@ public function putGroups(Request $request, string $id): JsonResponse228$team = $this->getTeamFromRequest($request);228$team = $this->getTeamFromRequest($request);229229230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {231-return (new Error())->getResponse();231+return new Error()->getResponse();232 }232 }233233234-$requestDTO = (new CoreGroupRequest())->createFromRequestPayload($request);234+$requestDTO = new CoreGroupRequest()->createFromRequestPayload($request);235235236try {236try {237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);238238239-return (new CoreGroup())239+return new CoreGroup()240 ->createFromGroup($group)240 ->createFromGroup($group)241 ->setHttpCode(Constants::HTTP_OK)241 ->setHttpCode(Constants::HTTP_OK)242 ->getResponse();242 ->getResponse();243 } catch (Exception $exception) {243 } catch (Exception $exception) {244 Sentry::captureException($exception);244 Sentry::captureException($exception);245245246-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();246+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();247 }247 }248 }248 }249249@@ -252,12 +252,12 @@ public function getGroup(Request $request, string $id): JsonResponse252$team = $this->getTeamFromRequest($request);252$team = $this->getTeamFromRequest($request);253253254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {255-return (new Error())->getResponse();255+return new Error()->getResponse();256 }256 }257257258$group = $this->scimProvisioning->getGroupById($id);258$group = $this->scimProvisioning->getGroupById($id);259259260-return (new CoreGroup())260+return new CoreGroup()261 ->excludeAttributes($request)261 ->excludeAttributes($request)262 ->setHttpCode(Constants::HTTP_OK)262 ->setHttpCode(Constants::HTTP_OK)263 ->createFromGroup($group)263 ->createFromGroup($group)@@ -268,19 +268,19 @@ public function getGroupByQuery(Request $request): JsonResponse268 {268 {269$team = $this->getTeamFromRequest($request);269$team = $this->getTeamFromRequest($request);270270271-$dto = (new GetGroupByQuery())->createFromRequestPayload($request);271+$dto = new GetGroupByQuery()->createFromRequestPayload($request);272272273try {273try {274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);275 } catch (Exception $exception) {275 } catch (Exception $exception) {276-return (new ListResponse())->createEmpty()->getResponse();276+return new ListResponse()->createEmpty()->getResponse();277 }277 }278278279$groupsQuery279$groupsQuery280 ->limit($dto->getCount())280 ->limit($dto->getCount())281 ->offset($dto->getStartIndex() - 1);281 ->offset($dto->getStartIndex() - 1);282282283-return (new ListResponse())283+return new ListResponse()284 ->setHttpCode(Constants::HTTP_OK)284 ->setHttpCode(Constants::HTTP_OK)285 ->setStartIndex($dto->getStartIndex())285 ->setStartIndex($dto->getStartIndex())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())@@ -292,30 +292,30 @@ public function patchGroup(Request $request, $id): JsonResponse292$team = $this->getTeamFromRequest($request);292$team = $this->getTeamFromRequest($request);293293294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {295-return (new Error())->getResponse();295+return new Error()->getResponse();296 }296 }297297298-$dto = (new PatchGroup())->createFromRequestPayload($request);298+$dto = new PatchGroup()->createFromRequestPayload($request);299299300$group = Group::uuid($id);300$group = Group::uuid($id);301301302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);303303304-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);304+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);305 }305 }306306307public function deleteGroup(Request $request, $id): JsonResponse307public function deleteGroup(Request $request, $id): JsonResponse308 {308 {309$team = $this->getTeamFromRequest($request);309$team = $this->getTeamFromRequest($request);310310311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {312-return (new Error())->getResponse();312+return new Error()->getResponse();313 }313 }314314315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {316-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);316+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);317 } else {317 } else {318-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();318+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();319 }319 }320 }320 }321321</selection>” selected.
Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
Expand
Listen
Gemini said
Gemini said
The selected code changes represent a mechanical refactoring of a PHP controller to align with modern syntax standards, likely as part of the upgrade to
PHP 8.5
.
Core Change: Member Access on Instantiation
Core Change: Member Access on Instantiation
The primary modification across the entire file is the removal of unnecessary parentheses when performing member access (method chaining) on a newly instantiated object.
Pattern:
(new ClassName())->method()
is simplified to
new ClassName()->method()
.
Reasoning:
Since PHP 8.0+, the parser handles member access on new expressions without requiring the wrapping parentheses for disambiguation.
Affected Components
Affected Components
The refactoring impacts various response and DTO (Data Transfer Object) initializations within the following SCIM (System for Cross-domain Identity Management) endpoints:
User Management:
postUsers
: Simplified instantiation of
CoreUserRequest
,
Error
, and
CoreUser
.
putUsers
/
patchUser
/
getUser
: Updated
Error
,
CoreUser
, and
PatchUser
calls.
getUsersByQuery
: Updated
GetUserByQuery
and
ListResponse
.
deleteUser
: Updated
JsonResponse
and
Error
.
Group Management:
postGroups
: Simplified
CoreGroupRequest
,
Error
, and
CoreGroup
.
putGroups
/
getGroup
: Updated
CoreGroupRequest
and
Error
.
getGroupByQuery
: Updated
GetGroupByQuery
and
ListResponse
.
patchGroup
/
deleteGroup
: Updated
PatchGroup
,
JsonResponse
, and
Error
.
Technical Impact
Technical Impact
No Functional Change:
The logic for user provisioning, group updates, and error handling remains identical.
Code Cleanliness:
Reduces visual noise and adopts the more concise syntax permitted in recent PHP versions.
Good response
Bad response
Share & export
Copy
Show more options
Copy prompt
Edit
You said are there soem potential issues?
You said
are there soem potential issues?
Listen
Gemini said
Gemini said
While this refactoring is syntactically correct for modern PHP, there are a few practical and technical "gotchas" to consider when moving from
(new Class())->method()
to
new Class()->method()
.
1. Language Compatibility (Backward Compatibility)
1. Language Compatibility (Backward Compatibility)
The biggest risk is the PHP version itself.
PHP < 8.0:
This change will cause a
Parse Error
. Prior to PHP 8.0, the parser could not handle member access on a
new
expression without parentheses.
The "Trap":
If your production environment is updated to PHP 8.5 but a developer's local environment or a specific CI runner is still on PHP 7.4, the code will break immediately.
2. Operator Precedence and Readability
2. Operator Precedence and Readability
While the engine now understands this syntax, human developers might find it slightly more ambiguous at a glance.
Visual Grouping:
The parentheses
(new Class())
act as a visual "container," making it clear that the instantiation happens first. Without them, in very complex one-liners, it can take a fraction of a second longer for a human to parse the execution order.
Consistency:
If only half the codebase is updated, the inconsistency can lead to "style drift," where different developers follow different patterns, making the code feel disorganized.
3. Tooling and IDE Support
3. Tooling and IDE Support
Static Analysis:
Older versions of static analysis tools (like PHPStan or Psalm) or older IDE versions might flag the new syntax as an error or "low-quality code" if they aren't configured for PHP 8.0+.
Automated Refactoring:
If this change was done via an automated tool (like Rector), it is usually safe. However, if done via "Find and Replace," there is a risk of accidentally stripping parentheses from complex expressions where they might still be required for logic.
4. Error Reporting Sensitivity
4. Error Reporting Sensitivity
In some edge cases, if the constructor of the class throws an exception:
The stack trace remains the same, but when debugging "on the fly" in some older debugger clients, the lack of grouping can occasionally make it slightly harder to evaluate the object state
before
the method call in a watch window.
Summary of Risk Levels
Summary of Risk Levels
Risk Factor
Level
Mitigation
Production Crash
High
Ensure
platform
in
composer.json
is set to
8.0
or higher.
Developer Confusion
Low
Update team style guides to reflect PHP 8.x standards.
Linting Errors
Medium
Update CI/CD linting rules to support modern PHP syntax.
Risk Factor
Production Crash
Developer Confusion
Linting Errors
Level
High
Low
Medium
Mitigation
Ensure
platform
in
composer.json
is set to
8.0
or higher.
Update team style guides to reflect PHP 8.x standards.
Update CI/CD linting rules to support modern PHP syntax.
Copy table
Are you planning to deploy this to an environment where you are certain the PHP version is strictly 8.0 or higher?
Good response
Bad response
Redo
Share & export
Copy
Show more options
Enter a prompt for Gemini
encrypted
Enter a prompt for Gemini
encrypted
Open upload file menu
Tools
Open mode picker
Fast
Microphone
Send message
Your Jiminny chats aren’t used to improve our models. Gemini is AI. It can make mistakes, so double check it.
Your privacy & Gemini Opens in a new window
Your privacy & Gemini
Opens in a new window
Summarize page
Summarize page
Skip to content
Skip to content
Open menu
Homepage (g then d)
jiminny
jiminny
app
app
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
All issues(g then i)
All pull requests
All repositories
You have unread notifications(g then n)
Open user navigation menu
Repository navigation
Repository navigation
Code
Code
Pull requests (29)
Pull requests
(
29
)
Agents
Agents
Actions
Actions
Wiki
Wiki
Security and quality
Security and quality
Insights
Insights
Settings
Settings
Important update
Important update
On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.
Review this update
Review this update
and manage your preferences in your
GitHub account settings
GitHub account settings
.
Dismiss banner
JY-20903 Update activity stage when opportunity is changed #12077 Edit title
JY-20903 Update activity stage when opportunity is changed
#
12077
Edit title
Awaiting approval
Awaiting approval
Code
Code
Open
LakyLak
LakyLak
wants to merge 1 commit into
master
master
from
JY-20903-update_activity-stage-on-opportunity-change
JY-20903-update_activity-stage-on-opportunity-change
Copy head branch name to clipboard
Lines changed: 10 additions & 5 deletions
Conversation (2)
Conversation
(
2
)
Commits (1)
Commits
(
1
)
Checks (4)
Checks
(
4
)
Files changed (2)
Files changed
(
2
)
Open
JY-20903 Update activity stage when opportunity is changed #12077 LakyLak wants to merge 1 commit into master from JY-20903-update_activity-stage-on-opportunity-change Copy head branch name to clipboard
JY-20903 Update activity stage when opportunity is changed
JY-20903 Update activity stage when opportunity is changed
#
12077
LakyLak
LakyLak
wants to merge 1 commit into
master
master
from
JY-20903-update_activity-stage-on-opportunity-change
JY-20903-update_activity-stage-on-opportunity-change
Copy head branch name to clipboard
Conversation
Conversation
@LakyLak
Show options
LakyLak commented 2 hours ago
LakyLak
LakyLak
commented
2 hours ago
2 hours ago
JIRA: JY-20903
JIRA:
JY-20903
JY-20903
Changes:
Changes:
Reset stage on activity if opportunity is changed
Add or remove reactions
@LakyLak
JY-20903
JY-20903
Update activity stage when opportunity is changed
Update activity stage when opportunity is changed
12 / 13 checks OK
8dac0df
8dac0df
@sonarqubecloud
Show options
sonarqubecloud Bot commented 1 hour ago
sonarqubecloud
sonarqubecloud
Bot
commented
1 hour ago
1 hour ago
Quality Gate Passed Quality Gate passed
Quality Gate Passed
Quality Gate passed
Issues
0 New issues
0 New issues
0 Accepted issues
0 Accepted issues
Measures
0 Security Hotspots
0 Security Hotspots
0.0% Coverage on New Code
0.0% Coverage on New Code
0.0% Duplication on New Code
0.0% Duplication on New Code
See analysis details on SonarQube Cloud
See analysis details on SonarQube Cloud
Add or remove reactions
@LakyLak
LakyLak
LakyLak
requested review from
Vasil-Jiminny
Vasil-Jiminny
,
nikolaybiaivanov
nikolaybiaivanov
and
yalokin-jiminny
yalokin-jiminny
1 hour ago
1 hour ago
Vasil-Jiminny
Vasil-Jiminny
Vasil-Jiminny
reviewed
22 minutes ago
22 minutes ago
View reviewed changes
View reviewed changes
Comment thread
app/Console/Commands/Activities/FixActivitiesOpportunity.php
app/Console/Commands/Activities/FixActivitiesOpportunity.php
123
-
$activity->update(['opportunity_id' => $opportunity->getId()]);
123
+
$activity->update([
124...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
42548
|
|
42549
|
Unnamed Group
Platform Sprint 4 Q2 - Platform Team Unnamed Group
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Usage | Windsurf
Usage | Windsurf
Unnamed Group
[SRD-6848] Sidekick SMS issue - Jira
[SRD-6848] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
Unnamed Group
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Unnamed Group
[SRD-6853] Moxso - Potential deal stages bug - Jira
[SRD-6853] Moxso - Potential deal stages bug - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
Close tab
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Useful commands - Engineering - Confluence
Useful commands - Engineering - Confluence
Dev Tools - Elastic
Dev Tools - Elastic
Jiminny
Jiminny
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
Unnamed Group
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
Pipedrive Developers Corner | Pipedrive API sandbox
Pipedrive Developers Corner | Pipedrive API sandbox
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
pipedrive/client-php: Pipedrive API client for PHP
pipedrive/client-php: Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
Code search results
Code search results
New Tab
Customize sidebar
Close Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AI Chat settings
Close
WORK, Google Account: [EMAIL]
Main menu
New Chat
Open menu for conversation actions.
Conversation with Gemini
Conversation with Gemini
Copy prompt
You said I’m on page “<tabTitle>JY-18091 | Update composer to support php 8.5 by n</tabTitle>” with “<selection>@@ -40,15 +40,15 @@ public function postUsers(Request $request): JsonResponse40 {40 {41$team = $this->getTeamFromRequest($request);41$team = $this->getTeamFromRequest($request);424243-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);43+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);444445if ($requestDTO->getPrimaryPhoneNumber() !== null) {45if ($requestDTO->getPrimaryPhoneNumber() !== null) {46$user = $this->userRepository->findByPhone(46$user = $this->userRepository->findByPhone(47 phone: $requestDTO->getPrimaryPhoneNumber(),47 phone: $requestDTO->getPrimaryPhoneNumber(),48 );48 );494950if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {50if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {51-return (new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists'))51+return new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists')52 ->getResponse();52 ->getResponse();53 }53 }54 }54 }@@ -59,7 +59,7 @@ public function postUsers(Request $request): JsonResponse59 );59 );606061if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {61if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {62-return (new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists'))62+return new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists')63 ->getResponse();63 ->getResponse();64 }64 }65 }65 }@@ -74,11 +74,11 @@ public function postUsers(Request $request): JsonResponse74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);757576if (! $newUser instanceof User) {76if (! $newUser instanceof User) {77-return (new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed'))77+return new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed')78 ->getResponse();78 ->getResponse();79 }79 }808081-return (new CoreUser())81+return new CoreUser()82 ->createFromUser($newUser)82 ->createFromUser($newUser)83 ->setExternalId($requestDTO->getUserName())83 ->setExternalId($requestDTO->getUserName())84 ->setHttpCode(Constants::HTTP_CREATED)84 ->setHttpCode(Constants::HTTP_CREATED)@@ -93,22 +93,22 @@ public function putUsers(Request $request, string $id): JsonResponse93$team = $this->getTeamFromRequest($request);93$team = $this->getTeamFromRequest($request);949495if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {95if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {96-return (new Error())->getResponse();96+return new Error()->getResponse();97 }97 }989899-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);99+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);100100101try {101try {102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);103103104-return (new CoreUser())104+return new CoreUser()105 ->createFromUser($user)105 ->createFromUser($user)106 ->setHttpCode(Constants::HTTP_OK)106 ->setHttpCode(Constants::HTTP_OK)107 ->getResponse();107 ->getResponse();108 } catch (Exception $exception) {108 } catch (Exception $exception) {109 Sentry::captureException($exception);109 Sentry::captureException($exception);110110111-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();111+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();112 }112 }113 }113 }114114@@ -117,7 +117,7 @@ public function deleteUser(Request $request, string $id): JsonResponse117$team = $this->getTeamFromRequest($request);117$team = $this->getTeamFromRequest($request);118118119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {120-return (new Error())->getResponse();120+return new Error()->getResponse();121 }121 }122122123$user = $this->scimProvisioning->getUserById($id);123$user = $this->scimProvisioning->getUserById($id);@@ -131,18 +131,18 @@ public function deleteUser(Request $request, string $id): JsonResponse131 ),131 ),132 );132 );133133134-return (new JsonResponse())->setStatusCode(204);134+return new JsonResponse()->setStatusCode(204);135 }135 }136136137public function patchUser(Request $request, string $id): JsonResponse137public function patchUser(Request $request, string $id): JsonResponse138 {138 {139$team = $this->getTeamFromRequest($request);139$team = $this->getTeamFromRequest($request);140140141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {142-return (new Error())->getResponse();142+return new Error()->getResponse();143 }143 }144144145-$requestDTO = (new PatchUser())145+$requestDTO = new PatchUser()146 ->setResourceLocalId($id)146 ->setResourceLocalId($id)147 ->createFromRequestPayload($request);147 ->createFromRequestPayload($request);148148@@ -153,10 +153,10 @@ public function patchUser(Request $request, string $id): JsonResponse153 } catch (Exception $e) {153 } catch (Exception $e) {154 Sentry::captureException($e);154 Sentry::captureException($e);155155156-return (new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed'))->getResponse();156+return new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed')->getResponse();157 }157 }158158159-return (new CoreUser())159+return new CoreUser()160 ->createFromUser($user)160 ->createFromUser($user)161 ->setHttpCode(Constants::HTTP_OK)161 ->setHttpCode(Constants::HTTP_OK)162 ->getResponse();162 ->getResponse();@@ -167,16 +167,16 @@ public function getUser(Request $request, string $id): JsonResponse167$team = $this->getTeamFromRequest($request);167$team = $this->getTeamFromRequest($request);168168169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {170-return (new Error())->getResponse();170+return new Error()->getResponse();171 }171 }172172173$user = $this->scimProvisioning->getUserById($id);173$user = $this->scimProvisioning->getUserById($id);174174175if (! $team->isSame($user->getTeam())) {175if (! $team->isSame($user->getTeam())) {176-return (new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.'))->getResponse();176+return new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.')->getResponse();177 }177 }178178179-return (new CoreUser())179+return new CoreUser()180 ->setHttpCode(Constants::HTTP_OK)180 ->setHttpCode(Constants::HTTP_OK)181 ->createFromUser($user)181 ->createFromUser($user)182 ->getResponse();182 ->getResponse();@@ -186,20 +186,20 @@ public function getUsersByQuery(Request $request): JsonResponse186 {186 {187$team = $this->getTeamFromRequest($request);187$team = $this->getTeamFromRequest($request);188188189-$requestDto = (new GetUserByQuery())->createFromRequestPayload($request);189+$requestDto = new GetUserByQuery()->createFromRequestPayload($request);190190191try {191try {192$resultsQuery = $this->scimProvisioning192$resultsQuery = $this->scimProvisioning193 ->translateQueryStringsToUserModelQuery($requestDto, $team);193 ->translateQueryStringsToUserModelQuery($requestDto, $team);194 } catch (Exception $exception) {194 } catch (Exception $exception) {195-return (new ListResponse())->createEmpty()->getResponse();195+return new ListResponse()->createEmpty()->getResponse();196 }196 }197197198$resultsQuery198$resultsQuery199 ->limit($requestDto->getCount())199 ->limit($requestDto->getCount())200 ->offset($requestDto->getStartIndex() - 1);200 ->offset($requestDto->getStartIndex() - 1);201201202-return (new ListResponse())202+return new ListResponse()203 ->setHttpCode(Constants::HTTP_OK)203 ->setHttpCode(Constants::HTTP_OK)204 ->setStartIndex($requestDto->getStartIndex())204 ->setStartIndex($requestDto->getStartIndex())205 ->createFromCollection($resultsQuery->get())205 ->createFromCollection($resultsQuery->get())@@ -210,15 +210,15 @@ public function postGroups(Request $request): JsonResponse210 {210 {211$team = $this->getTeamFromRequest($request);211$team = $this->getTeamFromRequest($request);212212213-$requestDto = (new CoreGroupRequest())->createFromRequestPayload($request);213+$requestDto = new CoreGroupRequest()->createFromRequestPayload($request);214214215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);216216217if (! $group instanceof Group) {217if (! $group instanceof Group) {218-return (new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed'))->getResponse();218+return new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed')->getResponse();219 }219 }220220221-$response = (new CoreGroup())->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();221+$response = new CoreGroup()->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();222222223return $response;223return $response;224 }224 }@@ -228,22 +228,22 @@ public function putGroups(Request $request, string $id): JsonResponse228$team = $this->getTeamFromRequest($request);228$team = $this->getTeamFromRequest($request);229229230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {231-return (new Error())->getResponse();231+return new Error()->getResponse();232 }232 }233233234-$requestDTO = (new CoreGroupRequest())->createFromRequestPayload($request);234+$requestDTO = new CoreGroupRequest()->createFromRequestPayload($request);235235236try {236try {237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);238238239-return (new CoreGroup())239+return new CoreGroup()240 ->createFromGroup($group)240 ->createFromGroup($group)241 ->setHttpCode(Constants::HTTP_OK)241 ->setHttpCode(Constants::HTTP_OK)242 ->getResponse();242 ->getResponse();243 } catch (Exception $exception) {243 } catch (Exception $exception) {244 Sentry::captureException($exception);244 Sentry::captureException($exception);245245246-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();246+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();247 }247 }248 }248 }249249@@ -252,12 +252,12 @@ public function getGroup(Request $request, string $id): JsonResponse252$team = $this->getTeamFromRequest($request);252$team = $this->getTeamFromRequest($request);253253254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {255-return (new Error())->getResponse();255+return new Error()->getResponse();256 }256 }257257258$group = $this->scimProvisioning->getGroupById($id);258$group = $this->scimProvisioning->getGroupById($id);259259260-return (new CoreGroup())260+return new CoreGroup()261 ->excludeAttributes($request)261 ->excludeAttributes($request)262 ->setHttpCode(Constants::HTTP_OK)262 ->setHttpCode(Constants::HTTP_OK)263 ->createFromGroup($group)263 ->createFromGroup($group)@@ -268,19 +268,19 @@ public function getGroupByQuery(Request $request): JsonResponse268 {268 {269$team = $this->getTeamFromRequest($request);269$team = $this->getTeamFromRequest($request);270270271-$dto = (new GetGroupByQuery())->createFromRequestPayload($request);271+$dto = new GetGroupByQuery()->createFromRequestPayload($request);272272273try {273try {274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);275 } catch (Exception $exception) {275 } catch (Exception $exception) {276-return (new ListResponse())->createEmpty()->getResponse();276+return new ListResponse()->createEmpty()->getResponse();277 }277 }278278279$groupsQuery279$groupsQuery280 ->limit($dto->getCount())280 ->limit($dto->getCount())281 ->offset($dto->getStartIndex() - 1);281 ->offset($dto->getStartIndex() - 1);282282283-return (new ListResponse())283+return new ListResponse()284 ->setHttpCode(Constants::HTTP_OK)284 ->setHttpCode(Constants::HTTP_OK)285 ->setStartIndex($dto->getStartIndex())285 ->setStartIndex($dto->getStartIndex())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())@@ -292,30 +292,30 @@ public function patchGroup(Request $request, $id): JsonResponse292$team = $this->getTeamFromRequest($request);292$team = $this->getTeamFromRequest($request);293293294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {295-return (new Error())->getResponse();295+return new Error()->getResponse();296 }296 }297297298-$dto = (new PatchGroup())->createFromRequestPayload($request);298+$dto = new PatchGroup()->createFromRequestPayload($request);299299300$group = Group::uuid($id);300$group = Group::uuid($id);301301302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);303303304-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);304+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);305 }305 }306306307public function deleteGroup(Request $request, $id): JsonResponse307public function deleteGroup(Request $request, $id): JsonResponse308 {308 {309$team = $this->getTeamFromRequest($request);309$team = $this->getTeamFromRequest($request);310310311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {312-return (new Error())->getResponse();312+return new Error()->getResponse();313 }313 }314314315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {316-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);316+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);317 } else {317 } else {318-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();318+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();319 }319 }320 }320 }321321</selection>” selected. Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
You said
I’m on page “<tabTitle>JY-18091 | Update composer to support php 8.5 by n</tabTitle>” with “<selection>@@ -40,15 +40,15 @@ public function postUsers(Request $request): JsonResponse40 {40 {41$team = $this->getTeamFromRequest($request);41$team = $this->getTeamFromRequest($request);424243-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);43+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);444445if ($requestDTO->getPrimaryPhoneNumber() !== null) {45if ($requestDTO->getPrimaryPhoneNumber() !== null) {46$user = $this->userRepository->findByPhone(46$user = $this->userRepository->findByPhone(47 phone: $requestDTO->getPrimaryPhoneNumber(),47 phone: $requestDTO->getPrimaryPhoneNumber(),48 );48 );494950if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {50if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {51-return (new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists'))51+return new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists')52 ->getResponse();52 ->getResponse();53 }53 }54 }54 }@@ -59,7 +59,7 @@ public function postUsers(Request $request): JsonResponse59 );59 );606061if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {61if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {62-return (new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists'))62+return new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists')63 ->getResponse();63 ->getResponse();64 }64 }65 }65 }@@ -74,11 +74,11 @@ public function postUsers(Request $request): JsonResponse74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);757576if (! $newUser instanceof User) {76if (! $newUser instanceof User) {77-return (new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed'))77+return new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed')78 ->getResponse();78 ->getResponse();79 }79 }808081-return (new CoreUser())81+return new CoreUser()82 ->createFromUser($newUser)82 ->createFromUser($newUser)83 ->setExternalId($requestDTO->getUserName())83 ->setExternalId($requestDTO->getUserName())84 ->setHttpCode(Constants::HTTP_CREATED)84 ->setHttpCode(Constants::HTTP_CREATED)@@ -93,22 +93,22 @@ public function putUsers(Request $request, string $id): JsonResponse93$team = $this->getTeamFromRequest($request);93$team = $this->getTeamFromRequest($request);949495if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {95if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {96-return (new Error())->getResponse();96+return new Error()->getResponse();97 }97 }989899-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);99+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);100100101try {101try {102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);103103104-return (new CoreUser())104+return new CoreUser()105 ->createFromUser($user)105 ->createFromUser($user)106 ->setHttpCode(Constants::HTTP_OK)106 ->setHttpCode(Constants::HTTP_OK)107 ->getResponse();107 ->getResponse();108 } catch (Exception $exception) {108 } catch (Exception $exception) {109 Sentry::captureException($exception);109 Sentry::captureException($exception);110110111-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();111+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();112 }112 }113 }113 }114114@@ -117,7 +117,7 @@ public function deleteUser(Request $request, string $id): JsonResponse117$team = $this->getTeamFromRequest($request);117$team = $this->getTeamFromRequest($request);118118119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {120-return (new Error())->getResponse();120+return new Error()->getResponse();121 }121 }122122123$user = $this->scimProvisioning->getUserById($id);123$user = $this->scimProvisioning->getUserById($id);@@ -131,18 +131,18 @@ public function deleteUser(Request $request, string $id): JsonResponse131 ),131 ),132 );132 );133133134-return (new JsonResponse())->setStatusCode(204);134+return new JsonResponse()->setStatusCode(204);135 }135 }136136137public function patchUser(Request $request, string $id): JsonResponse137public function patchUser(Request $request, string $id): JsonResponse138 {138 {139$team = $this->getTeamFromRequest($request);139$team = $this->getTeamFromRequest($request);140140141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {142-return (new Error())->getResponse();142+return new Error()->getResponse();143 }143 }144144145-$requestDTO = (new PatchUser())145+$requestDTO = new PatchUser()146 ->setResourceLocalId($id)146 ->setResourceLocalId($id)147 ->createFromRequestPayload($request);147 ->createFromRequestPayload($request);148148@@ -153,10 +153,10 @@ public function patchUser(Request $request, string $id): JsonResponse153 } catch (Exception $e) {153 } catch (Exception $e) {154 Sentry::captureException($e);154 Sentry::captureException($e);155155156-return (new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed'))->getResponse();156+return new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed')->getResponse();157 }157 }158158159-return (new CoreUser())159+return new CoreUser()160 ->createFromUser($user)160 ->createFromUser($user)161 ->setHttpCode(Constants::HTTP_OK)161 ->setHttpCode(Constants::HTTP_OK)162 ->getResponse();162 ->getResponse();@@ -167,16 +167,16 @@ public function getUser(Request $request, string $id): JsonResponse167$team = $this->getTeamFromRequest($request);167$team = $this->getTeamFromRequest($request);168168169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {170-return (new Error())->getResponse();170+return new Error()->getResponse();171 }171 }172172173$user = $this->scimProvisioning->getUserById($id);173$user = $this->scimProvisioning->getUserById($id);174174175if (! $team->isSame($user->getTeam())) {175if (! $team->isSame($user->getTeam())) {176-return (new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.'))->getResponse();176+return new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.')->getResponse();177 }177 }178178179-return (new CoreUser())179+return new CoreUser()180 ->setHttpCode(Constants::HTTP_OK)180 ->setHttpCode(Constants::HTTP_OK)181 ->createFromUser($user)181 ->createFromUser($user)182 ->getResponse();182 ->getResponse();@@ -186,20 +186,20 @@ public function getUsersByQuery(Request $request): JsonResponse186 {186 {187$team = $this->getTeamFromRequest($request);187$team = $this->getTeamFromRequest($request);188188189-$requestDto = (new GetUserByQuery())->createFromRequestPayload($request);189+$requestDto = new GetUserByQuery()->createFromRequestPayload($request);190190191try {191try {192$resultsQuery = $this->scimProvisioning192$resultsQuery = $this->scimProvisioning193 ->translateQueryStringsToUserModelQuery($requestDto, $team);193 ->translateQueryStringsToUserModelQuery($requestDto, $team);194 } catch (Exception $exception) {194 } catch (Exception $exception) {195-return (new ListResponse())->createEmpty()->getResponse();195+return new ListResponse()->createEmpty()->getResponse();196 }196 }197197198$resultsQuery198$resultsQuery199 ->limit($requestDto->getCount())199 ->limit($requestDto->getCount())200 ->offset($requestDto->getStartIndex() - 1);200 ->offset($requestDto->getStartIndex() - 1);201201202-return (new ListResponse())202+return new ListResponse()203 ->setHttpCode(Constants::HTTP_OK)203 ->setHttpCode(Constants::HTTP_OK)204 ->setStartIndex($requestDto->getStartIndex())204 ->setStartIndex($requestDto->getStartIndex())205 ->createFromCollection($resultsQuery->get())205 ->createFromCollection($resultsQuery->get())@@ -210,15 +210,15 @@ public function postGroups(Request $request): JsonResponse210 {210 {211$team = $this->getTeamFromRequest($request);211$team = $this->getTeamFromRequest($request);212212213-$requestDto = (new CoreGroupRequest())->createFromRequestPayload($request);213+$requestDto = new CoreGroupRequest()->createFromRequestPayload($request);214214215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);216216217if (! $group instanceof Group) {217if (! $group instanceof Group) {218-return (new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed'))->getResponse();218+return new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed')->getResponse();219 }219 }220220221-$response = (new CoreGroup())->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();221+$response = new CoreGroup()->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();222222223return $response;223return $response;224 }224 }@@ -228,22 +228,22 @@ public function putGroups(Request $request, string $id): JsonResponse228$team = $this->getTeamFromRequest($request);228$team = $this->getTeamFromRequest($request);229229230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {231-return (new Error())->getResponse();231+return new Error()->getResponse();232 }232 }233233234-$requestDTO = (new CoreGroupRequest())->createFromRequestPayload($request);234+$requestDTO = new CoreGroupRequest()->createFromRequestPayload($request);235235236try {236try {237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);238238239-return (new CoreGroup())239+return new CoreGroup()240 ->createFromGroup($group)240 ->createFromGroup($group)241 ->setHttpCode(Constants::HTTP_OK)241 ->setHttpCode(Constants::HTTP_OK)242 ->getResponse();242 ->getResponse();243 } catch (Exception $exception) {243 } catch (Exception $exception) {244 Sentry::captureException($exception);244 Sentry::captureException($exception);245245246-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();246+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();247 }247 }248 }248 }249249@@ -252,12 +252,12 @@ public function getGroup(Request $request, string $id): JsonResponse252$team = $this->getTeamFromRequest($request);252$team = $this->getTeamFromRequest($request);253253254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {255-return (new Error())->getResponse();255+return new Error()->getResponse();256 }256 }257257258$group = $this->scimProvisioning->getGroupById($id);258$group = $this->scimProvisioning->getGroupById($id);259259260-return (new CoreGroup())260+return new CoreGroup()261 ->excludeAttributes($request)261 ->excludeAttributes($request)262 ->setHttpCode(Constants::HTTP_OK)262 ->setHttpCode(Constants::HTTP_OK)263 ->createFromGroup($group)263 ->createFromGroup($group)@@ -268,19 +268,19 @@ public function getGroupByQuery(Request $request): JsonResponse268 {268 {269$team = $this->getTeamFromRequest($request);269$team = $this->getTeamFromRequest($request);270270271-$dto = (new GetGroupByQuery())->createFromRequestPayload($request);271+$dto = new GetGroupByQuery()->createFromRequestPayload($request);272272273try {273try {274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);275 } catch (Exception $exception) {275 } catch (Exception $exception) {276-return (new ListResponse())->createEmpty()->getResponse();276+return new ListResponse()->createEmpty()->getResponse();277 }277 }278278279$groupsQuery279$groupsQuery280 ->limit($dto->getCount())280 ->limit($dto->getCount())281 ->offset($dto->getStartIndex() - 1);281 ->offset($dto->getStartIndex() - 1);282282283-return (new ListResponse())283+return new ListResponse()284 ->setHttpCode(Constants::HTTP_OK)284 ->setHttpCode(Constants::HTTP_OK)285 ->setStartIndex($dto->getStartIndex())285 ->setStartIndex($dto->getStartIndex())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())@@ -292,30 +292,30 @@ public function patchGroup(Request $request, $id): JsonResponse292$team = $this->getTeamFromRequest($request);292$team = $this->getTeamFromRequest($request);293293294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {295-return (new Error())->getResponse();295+return new Error()->getResponse();296 }296 }297297298-$dto = (new PatchGroup())->createFromRequestPayload($request);298+$dto = new PatchGroup()->createFromRequestPayload($request);299299300$group = Group::uuid($id);300$group = Group::uuid($id);301301302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);303303304-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);304+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);305 }305 }306306307public function deleteGroup(Request $request, $id): JsonResponse307public function deleteGroup(Request $request, $id): JsonResponse308 {308 {309$team = $this->getTeamFromRequest($request);309$team = $this->getTeamFromRequest($request);310310311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {312-return (new Error())->getResponse();312+return new Error()->getResponse();313 }313 }314314315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {316-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);316+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);317 } else {317 } else {318-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();318+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();319 }319 }320 }320 }321321</selection>” selected.
Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
Expand
Listen
Gemini said
Gemini said
The selected code changes represent a mechanical refactoring of a PHP controller to align with modern syntax standards, likely as part of the upgrade to
PHP 8.5
.
Core Change: Member Access on Instantiation
Core Change: Member Access on Instantiation
The primary modification across the entire file is the removal of unnecessary parentheses when performing member access (method chaining) on a newly instantiated object.
Pattern:
(new ClassName())->method()
is simplified to
new ClassName()->method()
.
Reasoning:
Since PHP 8.0+, the parser handles member access on new expressions without requiring the wrapping parentheses for disambiguation.
Affected Components
Affected Components
The refactoring impacts various response and DTO (Data Transfer Object) initializations within the following SCIM (System for Cross-domain Identity Management) endpoints:
User Management:
postUsers
: Simplified instantiation of
CoreUserRequest
,
Error
, and
CoreUser
.
putUsers
/
patchUser
/
getUser
: Updated
Error
,
CoreUser
, and
PatchUser
calls.
getUsersByQuery
: Updated
GetUserByQuery
and
ListResponse
.
deleteUser
: Updated
JsonResponse
and
Error
.
Group Management:
postGroups
: Simplified
CoreGroupRequest
,
Error
, and
CoreGroup
.
putGroups
/
getGroup
: Updated
CoreGroupRequest
and
Error
.
getGroupByQuery
: Updated
GetGroupByQuery
and
ListResponse
.
patchGroup
/
deleteGroup
: Updated
PatchGroup
,
JsonResponse
, and
Error
.
Technical Impact
Technical Impact
No Functional Change:
The logic for user provisioning, group updates, and error handling remains identical.
Code Cleanliness:
Reduces visual noise and adopts the more concise syntax permitted in recent PHP versions.
Good response
Bad response
Share & export
Copy
Show more options
Copy prompt
Edit
You said are there soem potential issues?
You said
are there soem potential issues?
Listen
Gemini said
Gemini said
While this refactoring is syntactically correct for modern PHP, there are a few practical and technical "gotchas" to consider when moving from
(new Class())->method()
to
new Class()->method()
.
1. Language Compatibility (Backward Compatibility)
1. Language Compatibility (Backward Compatibility)
The biggest risk is the PHP version itself.
PHP < 8.0:
This change will cause a
Parse Error
. Prior to PHP 8.0, the parser could not handle member access on a
new
expression without parentheses.
The "Trap":
If your production environment is updated to PHP 8.5 but a developer's local environment or a specific CI runner is still on PHP 7.4, the code will break immediately.
2. Operator Precedence and Readability
2. Operator Precedence and Readability
While the engine now understands this syntax, human developers might find it slightly more ambiguous at a glance.
Visual Grouping:
The parentheses
(new Class())
act as a visual "container," making it clear that the instantiation happens first. Without them, in very complex one-liners, it can take a fraction of a second longer for a human to parse the execution order.
Consistency:
If only half the codebase is updated, the inconsistency can lead to "style drift," where different developers follow different patterns, making the code feel disorganized.
3. Tooling and IDE Support
3. Tooling and IDE Support
Static Analysis:
Older versions of static analysis tools (like PHPStan or Psalm) or older IDE versions might flag the new syntax as an error or "low-quality code" if they aren't configured for PHP 8.0+.
Automated Refactoring:
If this change was done via an automated tool (like Rector), it is usually safe. However, if done via "Find and Replace," there is a risk of accidentally stripping parentheses from complex expressions where they might still be required for logic.
4. Error Reporting Sensitivity
4. Error Reporting Sensitivity
In some edge cases, if the constructor of the class throws an exception:
The stack trace remains the same, but when debugging "on the fly" in some older debugger clients, the lack of grouping can occasionally make it slightly harder to evaluate the object state
before
the method call in a watch window.
Summary of Risk Levels
Summary of Risk Levels
Risk Factor
Level
Mitigation
Production Crash
High
Ensure
platform
in
composer.json
is set to
8.0
or higher.
Developer Confusion
Low
Update team style guides to reflect PHP 8.x standards.
Linting Errors
Medium
Update CI/CD linting rules to support modern PHP syntax.
Risk Factor
Production Crash
Developer Confusion
Linting Errors
Level
High
Low
Medium
Mitigation
Ensure
platform
in
composer.json
is set to
8.0
or higher.
Update team style guides to reflect PHP 8.x standards.
Update CI/CD linting rules to support modern PHP syntax.
Copy table
Are you planning to deploy this to an environment where you are certain the PHP version is strictly 8.0 or higher?
Good response
Bad response
Redo
Share & export
Copy
Show more options
Enter a prompt for Gemini
encrypted
Enter a prompt for Gemini
encrypted
Open upload file menu
Tools
Open mode picker
Fast
Microphone
Send message
Your Jiminny chats aren’t used to improve our models. Gemini is AI. It can make mistakes, so double check it.
Your privacy & Gemini Opens in a new window
Your privacy & Gemini
Opens in a new window
Summarize page
Summarize page
Skip to content
Skip to content
Open menu
Homepage (g then d)
jiminny
jiminny
app
app
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
All issues(g then i)
All pull requests
All repositories
You have unread notifications(g then n)
Open user navigation menu
Repository navigation
Repository navigation
Code...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
42549
|
|
42609
|
Unnamed Group
HomeDMsActivitySlackFileEditViewEDJi Unnamed Group
HomeDMsActivitySlackFileEditViewEDJiminny ...# engineering# general# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# supportGoHistoryWindowHelpQDescribe what you are looking forVasil Vasilev• Messagest Add canvasO Files& Pins +наскоро рових по тоя кодмахаме lead id и подменяме stage id с това от сделкатавьпроса е дали е редно да го правим от историческа гледна точкаLukas Kovalik 2:40 PMами тука не знам, като цяло това му беше идеяда знаеш по кое време е направено activityно щом вече го сменяваме при lead§ Support Daily - in 15 m100% C8• Thu 14 May 14:45:20Today ~+PS-: Todor StamatovMario GeorgievNikolay IvanovJames GrahamStoyan Tanev®. Galya DimitrovaRo Steliyan GeorgievPetko KashinskiE. Lukas Kovalik y...AppsToastJira Cloud$1N3FirefoxIIN IUA CIURIAVIIU TINIIUUURIN CURIV SU IUUU I UVELIIN O VEE MUIRAEIR (EUIEUSпреди малко подхвърлих иначе на Галя идеята, дали да не ги покажем смените на стейджовете на сделките в deal insightsимаме дата на отваряне и затваряне на сделказащо да не сложим и един маркер кога се е променил стейджатака в таймлайна ще се вижда "развитието" на тая сделкаLukas Kovalik 2:45 PMхм ами то дали да го няма вечеVasil Vasilev 2:45 PMняма гоMessage Vasil Vasilev+...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
42609
|
|
42610
|
roledeyD CrmboorstrapintegrationA©Importvetadata.o roledeyD CrmboorstrapintegrationA©Importvetadata.ongc) LavoutmoatieaListeneRematchActivityonern© RemoteCrmRecordDelC) Resolveowner.phpc) Syncopportunitv.phpSvncProfileLeads.ohpDealRisksGrounsM Mailbox• M UcerDilot(C) CreateNudaeCreatedeM Onnortunitiecv M Plavbooks(c) AttachLavout.php© ChangeSidekickSettins© CreatePlaybookCreatev D PlaylistsM AstivitiodvM dlanhatc) CreateActivityAdde>0 UserPilot€ ImportGroupPlaylistSh> C Teamsa Transcriptionv _ Users@ ActivitvProviderDiscon(C) ActivitvProviderintearal@ CreateDefaultPlavlist.r(C) CreateDefaultSavedSe9) NotifvCrmOwnerDiscoC) NotifvCrmUserDisconr(C) SetDefaultAvatarl ister(C) SetunCalendarSvnc.nf(C) SetunMailSvne.nhnl(C) Svncintercom.nhn(c CuncDlanhat nhr(e) Cunel IcorDilat nhn© ValidateSendingMessa() Volidato CondinaNotific© Sso.php© ActivityRepC) OpportunityRepository.php© UpdateSingleEntity.phpC) MatchActivityCrmData.phpWOpportunitySynctrait.php(C) PayloadBuilder.php(c) Confiquration.phpclass ImportActivitylypes implements ShouldQuevepublic function __construct(private readonly PlaybookCategoryRepository Srepository.{...1* Import the standard Event/Task Type picklist options from the CRMpubLic tunction nandle(Playpookcreated sevent): vo1dSolavbook = Sevent->[URL_WITH_CREDENTIALS] console [PROD]cascade© ValidateSendingMessage.phpA console (EU] X iii accounts [EU]fii stages (EU]tid teams [EU]© Activity.phpPipedrive SDK EvaluaFixing Activity Stage DImport CRM Activity T+O •© FixActivitiesOpportunity.php© Opportunity.php& console [EMAIL] is this flow for each CRM?Ty: AutoyPlavaround vSo jiminny© StaleRecordValidator.phpMA9A27 X3XI06 A v.Inoughts(c) Service.phpC) Client.phpSELE * FROM users WhERE name LIKE "%rell Hovles': # 1651SELECT * FROM social accounts WHERE sociable id = 17651:1643=Read ImportActivitvivpes.ohoThought for 2s ›Yes, this flow is designed to work for each CRM. The key is in line 47SELEC * FROM activities WERE uuid to bin('975c6830-7049-4cle-b2e9-ac80c10a738a') = uuid:mA1л v1645VSELEC * FROM opportunities WHEREidIN 9842553. 621172724— 16481164911O0. SELECT * FROM contacts WHERE id IN (10202724, 6211727);SELEC * FROM opportunity stages WHERE opportunity 1d = 7842553÷SSLSeCONCAT(u.id, CASE WHEN U.id = t.owner_id THEN ' (owner)' ELSE'' END) AS user_idv.emailt.owner_id FROM social_accounts saJOIN users u on u.id = sa.sociable_idJOIN teams t 1..n<->1: on t.id = u.team_idWHERE u.team_id = 519 and sa.provider = 'hubspot';select * from crm confiqurations where id = 436:select * from crm profiles where crm confiquration id = 436: # 76091797 -> 16612select * from contact roles where contact id = 10202724:select * from stages where team_id = 519: # 187781O SSELECTcrm provider 1d.stage 1d.is closed.is won.stage undated at.undated at.FROM opportunitiesWHERE id TN 6211727. 7842553)4CELSCT * SP0M onnontunity contacteWHEPE onnontunitv id = 4211727 AND contact id = 1920272/•SELECT id, name, stage id, is closed, is won, updated at, remotely created atFROM opportunitiesWHERE account id = 8179134ORDER BY updated at DESC:phpScrmservice = sch1s→>crmkesolver→>resolverorleam(Splaybook→>gecleam():The Resolvereamermconnection service dynamicallv resolves the appropriate CRM service (Hubspot, salestorce.Pipedrive, etc.) based on the team's CRM configuration. The listener then calls generic methods.•syncField() - syncs the activity field from CRMimportPicklistValues() - imports picklist values (activity types) from CRMEach CRM service imolements these methods accordina to their soecific APl requirements. If the CRM APl talls. it tallsback to database values (lines 58-65).searchea tunction syncriela in app/services/crnThouaht for 1sYes, this flow is designed to work with each CRM. The ResolveTeamCrmConnection service resolves the appropriate CRMservice (huospor, salestorce, Pipearive, etc. based on the team's contiguration, then calls genenic interace metnoasthat each CRM imolements;•svncField()) - svncs the activitv field metadata from the CRM•importPicklistValues() - imports the activity type picklist valuesThe arep results confirm syncFieldo is imolemented across multiple CRM services:•Hubspot/Service.phpSalesforce/Service.phpPipedrive/Service.php• Conner/Service.ohn• Bullhorn/BullhornService.phpIntearationAoo (via SvncCrmFieldsTrait)If the CRM API call fails, the listener falls back to using existing database values for the field (lines 58-65), ensuring theolavbook creation doesn't fail due to CRM connectivitv issueslo 1l ***Your included weekly usage quota is exhausted. Purchase extra usage to continue using premium modele. Ouata racate Mau ez aoanAsk anvthina (884-L)< CodeSWE-16W Windsurf TeamsA5-1Po 4 space...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
42610
|
|
42611
|
SlackFileEditViewHomeDMSActivityFilesLaterMoreJimi SlackFileEditViewHomeDMSActivityFilesLaterMoreJiminny ...# engineering# general# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi...Direct messagesVasil VasilevStefka StoyanovaP. Aneliya Angelova: Todor StamatovMario GeorgievNikolay IvanovJames GrahamStoyan Tanev% Galya DimitrovaSteliyan GeorgievPetko Kashinski8 Lukas Kovalik y...:: AppsToastJira CloudGoHistoryWindowHelp>0.alolSupport Daily • in 15 mQDescribe what you are looking forVasil Vasilev• Messagest Add canvas@ Files& Pins +наскоро рових по тоя кодToday ~махаме lead id и подменяме stage id с това от сделкатавыпроса е дали е редно да го правим от историческа гледна точкаLukas Kovalik 2:40 PMами тука не знам, като цяло това му беше идеяда знаеш по кое време е направено activityно щом вече го сменяваме при leadне е линеарно една сделка или lead която се развива във времето, сега си скаче напред назад както го мачнемще пиша на Галя да я питам какво да правимVasil Vasilev 2:42 PMмоето е по скоро идеяв момента не го правим, но и почти не го показваме никьде като информацияние имаме някаква история на сделката, имаме стейдж по време на импорта на активититоно тоя стейдж го ползваме само за това търсене в on demand (edited)преди малко подхвърлих иначе на Галя идеята, дали да не ги покажем смените на стейджовете на сделките в deal insightsимаме дата на отваряне и затваряне на сделказащо да не сложим и един маркер кога се е променил стейджатака в таймлайна ще се вижда "развитието" на тая сделкаLukas Kovalik 2:45 PMхм ами то дали да го няма вечеVasil Vasilev 2:45 PMняма гоMessage Vasil Vasilev+100% <78• Thu 14 May 14:45:226 0New...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
42611
|
|
42612
|
Unnamed Group
Platform Sprint 4 Q2 - Platform Team Unnamed Group
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Usage | Windsurf
Usage | Windsurf
Unnamed Group
[SRD-6848] Sidekick SMS issue - Jira
[SRD-6848] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
Unnamed Group
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Unnamed Group
[SRD-6853] Moxso - Potential deal stages bug - Jira
[SRD-6853] Moxso - Potential deal stages bug - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
Close tab
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Useful commands - Engineering - Confluence
Useful commands - Engineering - Confluence
Dev Tools - Elastic
Dev Tools - Elastic
Jiminny
Jiminny
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
Unnamed Group
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
Pipedrive Developers Corner | Pipedrive API sandbox
Pipedrive Developers Corner | Pipedrive API sandbox
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
pipedrive/client-php: Pipedrive API client for PHP
pipedrive/client-php: Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
Code search results
Code search results
New Tab
Customize sidebar
Close Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AI Chat settings
Close
WORK, Google Account: [EMAIL]
Main menu
New Chat
Open menu for conversation actions.
Conversation with Gemini
Conversation with Gemini
Copy prompt
You said I’m on page “<tabTitle>JY-18091 | Update composer to support php 8.5 by n</tabTitle>” with “<selection>@@ -40,15 +40,15 @@ public function postUsers(Request $request): JsonResponse40 {40 {41$team = $this->getTeamFromRequest($request);41$team = $this->getTeamFromRequest($request);424243-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);43+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);444445if ($requestDTO->getPrimaryPhoneNumber() !== null) {45if ($requestDTO->getPrimaryPhoneNumber() !== null) {46$user = $this->userRepository->findByPhone(46$user = $this->userRepository->findByPhone(47 phone: $requestDTO->getPrimaryPhoneNumber(),47 phone: $requestDTO->getPrimaryPhoneNumber(),48 );48 );494950if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {50if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {51-return (new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists'))51+return new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists')52 ->getResponse();52 ->getResponse();53 }53 }54 }54 }@@ -59,7 +59,7 @@ public function postUsers(Request $request): JsonResponse59 );59 );606061if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {61if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {62-return (new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists'))62+return new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists')63 ->getResponse();63 ->getResponse();64 }64 }65 }65 }@@ -74,11 +74,11 @@ public function postUsers(Request $request): JsonResponse74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);757576if (! $newUser instanceof User) {76if (! $newUser instanceof User) {77-return (new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed'))77+return new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed')78 ->getResponse();78 ->getResponse();79 }79 }808081-return (new CoreUser())81+return new CoreUser()82 ->createFromUser($newUser)82 ->createFromUser($newUser)83 ->setExternalId($requestDTO->getUserName())83 ->setExternalId($requestDTO->getUserName())84 ->setHttpCode(Constants::HTTP_CREATED)84 ->setHttpCode(Constants::HTTP_CREATED)@@ -93,22 +93,22 @@ public function putUsers(Request $request, string $id): JsonResponse93$team = $this->getTeamFromRequest($request);93$team = $this->getTeamFromRequest($request);949495if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {95if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {96-return (new Error())->getResponse();96+return new Error()->getResponse();97 }97 }989899-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);99+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);100100101try {101try {102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);103103104-return (new CoreUser())104+return new CoreUser()105 ->createFromUser($user)105 ->createFromUser($user)106 ->setHttpCode(Constants::HTTP_OK)106 ->setHttpCode(Constants::HTTP_OK)107 ->getResponse();107 ->getResponse();108 } catch (Exception $exception) {108 } catch (Exception $exception) {109 Sentry::captureException($exception);109 Sentry::captureException($exception);110110111-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();111+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();112 }112 }113 }113 }114114@@ -117,7 +117,7 @@ public function deleteUser(Request $request, string $id): JsonResponse117$team = $this->getTeamFromRequest($request);117$team = $this->getTeamFromRequest($request);118118119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {120-return (new Error())->getResponse();120+return new Error()->getResponse();121 }121 }122122123$user = $this->scimProvisioning->getUserById($id);123$user = $this->scimProvisioning->getUserById($id);@@ -131,18 +131,18 @@ public function deleteUser(Request $request, string $id): JsonResponse131 ),131 ),132 );132 );133133134-return (new JsonResponse())->setStatusCode(204);134+return new JsonResponse()->setStatusCode(204);135 }135 }136136137public function patchUser(Request $request, string $id): JsonResponse137public function patchUser(Request $request, string $id): JsonResponse138 {138 {139$team = $this->getTeamFromRequest($request);139$team = $this->getTeamFromRequest($request);140140141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {142-return (new Error())->getResponse();142+return new Error()->getResponse();143 }143 }144144145-$requestDTO = (new PatchUser())145+$requestDTO = new PatchUser()146 ->setResourceLocalId($id)146 ->setResourceLocalId($id)147 ->createFromRequestPayload($request);147 ->createFromRequestPayload($request);148148@@ -153,10 +153,10 @@ public function patchUser(Request $request, string $id): JsonResponse153 } catch (Exception $e) {153 } catch (Exception $e) {154 Sentry::captureException($e);154 Sentry::captureException($e);155155156-return (new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed'))->getResponse();156+return new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed')->getResponse();157 }157 }158158159-return (new CoreUser())159+return new CoreUser()160 ->createFromUser($user)160 ->createFromUser($user)161 ->setHttpCode(Constants::HTTP_OK)161 ->setHttpCode(Constants::HTTP_OK)162 ->getResponse();162 ->getResponse();@@ -167,16 +167,16 @@ public function getUser(Request $request, string $id): JsonResponse167$team = $this->getTeamFromRequest($request);167$team = $this->getTeamFromRequest($request);168168169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {170-return (new Error())->getResponse();170+return new Error()->getResponse();171 }171 }172172173$user = $this->scimProvisioning->getUserById($id);173$user = $this->scimProvisioning->getUserById($id);174174175if (! $team->isSame($user->getTeam())) {175if (! $team->isSame($user->getTeam())) {176-return (new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.'))->getResponse();176+return new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.')->getResponse();177 }177 }178178179-return (new CoreUser())179+return new CoreUser()180 ->setHttpCode(Constants::HTTP_OK)180 ->setHttpCode(Constants::HTTP_OK)181 ->createFromUser($user)181 ->createFromUser($user)182 ->getResponse();182 ->getResponse();@@ -186,20 +186,20 @@ public function getUsersByQuery(Request $request): JsonResponse186 {186 {187$team = $this->getTeamFromRequest($request);187$team = $this->getTeamFromRequest($request);188188189-$requestDto = (new GetUserByQuery())->createFromRequestPayload($request);189+$requestDto = new GetUserByQuery()->createFromRequestPayload($request);190190191try {191try {192$resultsQuery = $this->scimProvisioning192$resultsQuery = $this->scimProvisioning193 ->translateQueryStringsToUserModelQuery($requestDto, $team);193 ->translateQueryStringsToUserModelQuery($requestDto, $team);194 } catch (Exception $exception) {194 } catch (Exception $exception) {195-return (new ListResponse())->createEmpty()->getResponse();195+return new ListResponse()->createEmpty()->getResponse();196 }196 }197197198$resultsQuery198$resultsQuery199 ->limit($requestDto->getCount())199 ->limit($requestDto->getCount())200 ->offset($requestDto->getStartIndex() - 1);200 ->offset($requestDto->getStartIndex() - 1);201201202-return (new ListResponse())202+return new ListResponse()203 ->setHttpCode(Constants::HTTP_OK)203 ->setHttpCode(Constants::HTTP_OK)204 ->setStartIndex($requestDto->getStartIndex())204 ->setStartIndex($requestDto->getStartIndex())205 ->createFromCollection($resultsQuery->get())205 ->createFromCollection($resultsQuery->get())@@ -210,15 +210,15 @@ public function postGroups(Request $request): JsonResponse210 {210 {211$team = $this->getTeamFromRequest($request);211$team = $this->getTeamFromRequest($request);212212213-$requestDto = (new CoreGroupRequest())->createFromRequestPayload($request);213+$requestDto = new CoreGroupRequest()->createFromRequestPayload($request);214214215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);216216217if (! $group instanceof Group) {217if (! $group instanceof Group) {218-return (new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed'))->getResponse();218+return new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed')->getResponse();219 }219 }220220221-$response = (new CoreGroup())->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();221+$response = new CoreGroup()->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();222222223return $response;223return $response;224 }224 }@@ -228,22 +228,22 @@ public function putGroups(Request $request, string $id): JsonResponse228$team = $this->getTeamFromRequest($request);228$team = $this->getTeamFromRequest($request);229229230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {231-return (new Error())->getResponse();231+return new Error()->getResponse();232 }232 }233233234-$requestDTO = (new CoreGroupRequest())->createFromRequestPayload($request);234+$requestDTO = new CoreGroupRequest()->createFromRequestPayload($request);235235236try {236try {237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);238238239-return (new CoreGroup())239+return new CoreGroup()240 ->createFromGroup($group)240 ->createFromGroup($group)241 ->setHttpCode(Constants::HTTP_OK)241 ->setHttpCode(Constants::HTTP_OK)242 ->getResponse();242 ->getResponse();243 } catch (Exception $exception) {243 } catch (Exception $exception) {244 Sentry::captureException($exception);244 Sentry::captureException($exception);245245246-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();246+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();247 }247 }248 }248 }249249@@ -252,12 +252,12 @@ public function getGroup(Request $request, string $id): JsonResponse252$team = $this->getTeamFromRequest($request);252$team = $this->getTeamFromRequest($request);253253254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {255-return (new Error())->getResponse();255+return new Error()->getResponse();256 }256 }257257258$group = $this->scimProvisioning->getGroupById($id);258$group = $this->scimProvisioning->getGroupById($id);259259260-return (new CoreGroup())260+return new CoreGroup()261 ->excludeAttributes($request)261 ->excludeAttributes($request)262 ->setHttpCode(Constants::HTTP_OK)262 ->setHttpCode(Constants::HTTP_OK)263 ->createFromGroup($group)263 ->createFromGroup($group)@@ -268,19 +268,19 @@ public function getGroupByQuery(Request $request): JsonResponse268 {268 {269$team = $this->getTeamFromRequest($request);269$team = $this->getTeamFromRequest($request);270270271-$dto = (new GetGroupByQuery())->createFromRequestPayload($request);271+$dto = new GetGroupByQuery()->createFromRequestPayload($request);272272273try {273try {274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);275 } catch (Exception $exception) {275 } catch (Exception $exception) {276-return (new ListResponse())->createEmpty()->getResponse();276+return new ListResponse()->createEmpty()->getResponse();277 }277 }278278279$groupsQuery279$groupsQuery280 ->limit($dto->getCount())280 ->limit($dto->getCount())281 ->offset($dto->getStartIndex() - 1);281 ->offset($dto->getStartIndex() - 1);282282283-return (new ListResponse())283+return new ListResponse()284 ->setHttpCode(Constants::HTTP_OK)284 ->setHttpCode(Constants::HTTP_OK)285 ->setStartIndex($dto->getStartIndex())285 ->setStartIndex($dto->getStartIndex())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())@@ -292,30 +292,30 @@ public function patchGroup(Request $request, $id): JsonResponse292$team = $this->getTeamFromRequest($request);292$team = $this->getTeamFromRequest($request);293293294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {295-return (new Error())->getResponse();295+return new Error()->getResponse();296 }296 }297297298-$dto = (new PatchGroup())->createFromRequestPayload($request);298+$dto = new PatchGroup()->createFromRequestPayload($request);299299300$group = Group::uuid($id);300$group = Group::uuid($id);301301302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);303303304-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);304+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);305 }305 }306306307public function deleteGroup(Request $request, $id): JsonResponse307public function deleteGroup(Request $request, $id): JsonResponse308 {308 {309$team = $this->getTeamFromRequest($request);309$team = $this->getTeamFromRequest($request);310310311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {312-return (new Error())->getResponse();312+return new Error()->getResponse();313 }313 }314314315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {316-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);316+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);317 } else {317 } else {318-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();318+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();319 }319 }320 }320 }321321</selection>” selected. Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
You said
I’m on page “<tabTitle>JY-18091 | Update composer to support php 8.5 by n</tabTitle>” with “<selection>@@ -40,15 +40,15 @@ public function postUsers(Request $request): JsonResponse40 {40 {41$team = $this->getTeamFromRequest($request);41$team = $this->getTeamFromRequest($request);424243-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);43+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);444445if ($requestDTO->getPrimaryPhoneNumber() !== null) {45if ($requestDTO->getPrimaryPhoneNumber() !== null) {46$user = $this->userRepository->findByPhone(46$user = $this->userRepository->findByPhone(47 phone: $requestDTO->getPrimaryPhoneNumber(),47 phone: $requestDTO->getPrimaryPhoneNumber(),48 );48 );494950if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {50if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {51-return (new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists'))51+return new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists')52 ->getResponse();52 ->getResponse();53 }53 }54 }54 }@@ -59,7 +59,7 @@ public function postUsers(Request $request): JsonResponse59 );59 );606061if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {61if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {62-return (new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists'))62+return new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists')63 ->getResponse();63 ->getResponse();64 }64 }65 }65 }@@ -74,11 +74,11 @@ public function postUsers(Request $request): JsonResponse74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);757576if (! $newUser instanceof User) {76if (! $newUser instanceof User) {77-return (new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed'))77+return new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed')78 ->getResponse();78 ->getResponse();79 }79 }808081-return (new CoreUser())81+return new CoreUser()82 ->createFromUser($newUser)82 ->createFromUser($newUser)83 ->setExternalId($requestDTO->getUserName())83 ->setExternalId($requestDTO->getUserName())84 ->setHttpCode(Constants::HTTP_CREATED)84 ->setHttpCode(Constants::HTTP_CREATED)@@ -93,22 +93,22 @@ public function putUsers(Request $request, string $id): JsonResponse93$team = $this->getTeamFromRequest($request);93$team = $this->getTeamFromRequest($request);949495if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {95if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {96-return (new Error())->getResponse();96+return new Error()->getResponse();97 }97 }989899-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);99+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);100100101try {101try {102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);103103104-return (new CoreUser())104+return new CoreUser()105 ->createFromUser($user)105 ->createFromUser($user)106 ->setHttpCode(Constants::HTTP_OK)106 ->setHttpCode(Constants::HTTP_OK)107 ->getResponse();107 ->getResponse();108 } catch (Exception $exception) {108 } catch (Exception $exception) {109 Sentry::captureException($exception);109 Sentry::captureException($exception);110110111-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();111+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();112 }112 }113 }113 }114114@@ -117,7 +117,7 @@ public function deleteUser(Request $request, string $id): JsonResponse117$team = $this->getTeamFromRequest($request);117$team = $this->getTeamFromRequest($request);118118119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {120-return (new Error())->getResponse();120+return new Error()->getResponse();121 }121 }122122123$user = $this->scimProvisioning->getUserById($id);123$user = $this->scimProvisioning->getUserById($id);@@ -131,18 +131,18 @@ public function deleteUser(Request $request, string $id): JsonResponse131 ),131 ),132 );132 );133133134-return (new JsonResponse())->setStatusCode(204);134+return new JsonResponse()->setStatusCode(204);135 }135 }136136137public function patchUser(Request $request, string $id): JsonResponse137public function patchUser(Request $request, string $id): JsonResponse138 {138 {139$team = $this->getTeamFromRequest($request);139$team = $this->getTeamFromRequest($request);140140141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {142-return (new Error())->getResponse();142+return new Error()->getResponse();143 }143 }144144145-$requestDTO = (new PatchUser())145+$requestDTO = new PatchUser()146 ->setResourceLocalId($id)146 ->setResourceLocalId($id)147 ->createFromRequestPayload($request);147 ->createFromRequestPayload($request);148148@@ -153,10 +153,10 @@ public function patchUser(Request $request, string $id): JsonResponse153 } catch (Exception $e) {153 } catch (Exception $e) {154 Sentry::captureException($e);154 Sentry::captureException($e);155155156-return (new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed'))->getResponse();156+return new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed')->getResponse();157 }157 }158158159-return (new CoreUser())159+return new CoreUser()160 ->createFromUser($user)160 ->createFromUser($user)161 ->setHttpCode(Constants::HTTP_OK)161 ->setHttpCode(Constants::HTTP_OK)162 ->getResponse();162 ->getResponse();@@ -167,16 +167,16 @@ public function getUser(Request $request, string $id): JsonResponse167$team = $this->getTeamFromRequest($request);167$team = $this->getTeamFromRequest($request);168168169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {170-return (new Error())->getResponse();170+return new Error()->getResponse();171 }171 }172172173$user = $this->scimProvisioning->getUserById($id);173$user = $this->scimProvisioning->getUserById($id);174174175if (! $team->isSame($user->getTeam())) {175if (! $team->isSame($user->getTeam())) {176-return (new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.'))->getResponse();176+return new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.')->getResponse();177 }177 }178178179-return (new CoreUser())179+return new CoreUser()180 ->setHttpCode(Constants::HTTP_OK)180 ->setHttpCode(Constants::HTTP_OK)181 ->createFromUser($user)181 ->createFromUser($user)182 ->getResponse();182 ->getResponse();@@ -186,20 +186,20 @@ public function getUsersByQuery(Request $request): JsonResponse186 {186 {187$team = $this->getTeamFromRequest($request);187$team = $this->getTeamFromRequest($request);188188189-$requestDto = (new GetUserByQuery())->createFromRequestPayload($request);189+$requestDto = new GetUserByQuery()->createFromRequestPayload($request);190190191try {191try {192$resultsQuery = $this->scimProvisioning192$resultsQuery = $this->scimProvisioning193 ->translateQueryStringsToUserModelQuery($requestDto, $team);193 ->translateQueryStringsToUserModelQuery($requestDto, $team);194 } catch (Exception $exception) {194 } catch (Exception $exception) {195-return (new ListResponse())->createEmpty()->getResponse();195+return new ListResponse()->createEmpty()->getResponse();196 }196 }197197198$resultsQuery198$resultsQuery199 ->limit($requestDto->getCount())199 ->limit($requestDto->getCount())200 ->offset($requestDto->getStartIndex() - 1);200 ->offset($requestDto->getStartIndex() - 1);201201202-return (new ListResponse())202+return new ListResponse()203 ->setHttpCode(Constants::HTTP_OK)203 ->setHttpCode(Constants::HTTP_OK)204 ->setStartIndex($requestDto->getStartIndex())204 ->setStartIndex($requestDto->getStartIndex())205 ->createFromCollection($resultsQuery->get())205 ->createFromCollection($resultsQuery->get())@@ -210,15 +210,15 @@ public function postGroups(Request $request): JsonResponse210 {210 {211$team = $this->getTeamFromRequest($request);211$team = $this->getTeamFromRequest($request);212212213-$requestDto = (new CoreGroupRequest())->createFromRequestPayload($request);213+$requestDto = new CoreGroupRequest()->createFromRequestPayload($request);214214215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);216216217if (! $group instanceof Group) {217if (! $group instanceof Group) {218-return (new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed'))->getResponse();218+return new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed')->getResponse();219 }219 }220220221-$response = (new CoreGroup())->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();221+$response = new CoreGroup()->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();222222223return $response;223return $response;224 }224 }@@ -228,22 +228,22 @@ public function putGroups(Request $request, string $id): JsonResponse228$team = $this->getTeamFromRequest($request);228$team = $this->getTeamFromRequest($request);229229230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {231-return (new Error())->getResponse();231+return new Error()->getResponse();232 }232 }233233234-$requestDTO = (new CoreGroupRequest())->createFromRequestPayload($request);234+$requestDTO = new CoreGroupRequest()->createFromRequestPayload($request);235235236try {236try {237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);238238239-return (new CoreGroup())239+return new CoreGroup()240 ->createFromGroup($group)240 ->createFromGroup($group)241 ->setHttpCode(Constants::HTTP_OK)241 ->setHttpCode(Constants::HTTP_OK)242 ->getResponse();242 ->getResponse();243 } catch (Exception $exception) {243 } catch (Exception $exception) {244 Sentry::captureException($exception);244 Sentry::captureException($exception);245245246-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();246+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();247 }247 }248 }248 }249249@@ -252,12 +252,12 @@ public function getGroup(Request $request, string $id): JsonResponse252$team = $this->getTeamFromRequest($request);252$team = $this->getTeamFromRequest($request);253253254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {255-return (new Error())->getResponse();255+return new Error()->getResponse();256 }256 }257257258$group = $this->scimProvisioning->getGroupById($id);258$group = $this->scimProvisioning->getGroupById($id);259259260-return (new CoreGroup())260+return new CoreGroup()261 ->excludeAttributes($request)261 ->excludeAttributes($request)262 ->setHttpCode(Constants::HTTP_OK)262 ->setHttpCode(Constants::HTTP_OK)263 ->createFromGroup($group)263 ->createFromGroup($group)@@ -268,19 +268,19 @@ public function getGroupByQuery(Request $request): JsonResponse268 {268 {269$team = $this->getTeamFromRequest($request);269$team = $this->getTeamFromRequest($request);270270271-$dto = (new GetGroupByQuery())->createFromRequestPayload($request);271+$dto = new GetGroupByQuery()->createFromRequestPayload($request);272272273try {273try {274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);275 } catch (Exception $exception) {275 } catch (Exception $exception) {276-return (new ListResponse())->createEmpty()->getResponse();276+return new ListResponse()->createEmpty()->getResponse();277 }277 }278278279$groupsQuery279$groupsQuery280 ->limit($dto->getCount())280 ->limit($dto->getCount())281 ->offset($dto->getStartIndex() - 1);281 ->offset($dto->getStartIndex() - 1);282282283-return (new ListResponse())283+return new ListResponse()284 ->setHttpCode(Constants::HTTP_OK)284 ->setHttpCode(Constants::HTTP_OK)285 ->setStartIndex($dto->getStartIndex())285 ->setStartIndex($dto->getStartIndex())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())@@ -292,30 +292,30 @@ public function patchGroup(Request $request, $id): JsonResponse292$team = $this->getTeamFromRequest($request);292$team = $this->getTeamFromRequest($request);293293294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {295-return (new Error())->getResponse();295+return new Error()->getResponse();296 }296 }297297298-$dto = (new PatchGroup())->createFromRequestPayload($request);298+$dto = new PatchGroup()->createFromRequestPayload($request);299299300$group = Group::uuid($id);300$group = Group::uuid($id);301301302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);303303304-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);304+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);305 }305 }306306307public function deleteGroup(Request $request, $id): JsonResponse307public function deleteGroup(Request $request, $id): JsonResponse308 {308 {309$team = $this->getTeamFromRequest($request);309$team = $this->getTeamFromRequest($request);310310311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {312-return (new Error())->getResponse();312+return new Error()->getResponse();313 }313 }314314315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {316-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);316+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);317 } else {317 } else {318-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();318+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();319 }319 }320 }320 }321321</selection>” selected.
Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
Expand
Listen
Gemini said
Gemini said
The selected code changes represent a mechanical refactoring of a PHP controller to align with modern syntax standards, likely as part of the upgrade to
PHP 8.5
.
Core Change: Member Access on Instantiation
Core Change: Member Access on Instantiation
The primary modification across the entire file is the removal of unnecessary parentheses when performing member access (method chaining) on a newly instantiated object.
Pattern:
(new ClassName())->method()
is simplified to
new ClassName()->method()
.
Reasoning:
Since PHP 8.0+, the parser handles member access on new expressions without requiring the wrapping parentheses for disambiguation.
Affected Components
Affected Components
The refactoring impacts various response and DTO (Data Transfer Object) initializations within the following SCIM (System for Cross-domain Identity Management) endpoints:
User Management:
postUsers
: Simplified instantiation of
CoreUserRequest
,
Error
, and
CoreUser
.
putUsers
/
patchUser
/
getUser
: Updated
Error
,
CoreUser
, and
PatchUser
calls.
getUsersByQuery
: Updated
GetUserByQuery
and
ListResponse
.
deleteUser
: Updated
JsonResponse
and
Error
.
Group Management:
postGroups
: Simplified
CoreGroupRequest
,
Error
, and
CoreGroup
.
putGroups
/
getGroup
: Updated
CoreGroupRequest
and
Error
.
getGroupByQuery
: Updated
GetGroupByQuery
and
ListResponse
.
patchGroup
/
deleteGroup
: Updated
PatchGroup
,
JsonResponse
, and
Error
.
Technical Impact
Technical Impact
No Functional Change:
The logic for user provisioning, group updates, and error handling remains identical.
Code Cleanliness:
Reduces visual noise and adopts the more concise syntax permitted in recent PHP versions.
Good response
Bad response
Share & export
Copy
Show more options
Copy prompt
Edit
You said are there soem potential issues?
You said
are there soem potential issues?
Listen
Gemini said
Gemini said
While this refactoring is syntactically correct for modern PHP, there are a few practical and technical "gotchas" to consider when moving from
(new Class())->method()
to
new Class()->method()
.
1. Language Compatibility (Backward Compatibility)
1. Language Compatibility (Backward Compatibility)
The biggest risk is the PHP version itself.
PHP < 8.0:
This change will cause a
Parse Error
. Prior to PHP 8.0, the parser could not handle member access on a
new
expression without parentheses.
The "Trap":
If your production environment is updated to PHP 8.5 but a developer's local environment or a specific CI runner is still on PHP 7.4, the code will break immediately.
2. Operator Precedence and Readability
2. Operator Precedence and Readability
While the engine now understands this syntax, human developers might find it slightly more ambiguous at a glance.
Visual Grouping:
The parentheses
(new Class())
act as a visual "container," making it clear that the instantiation happens first. Without them, in very complex one-liners, it can take a fraction of a second longer for a human to parse the execution order....
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
42612
|
|
42887
|
Unnamed Group
Platform Sprint 4 Q2 - Platform Team Unnamed Group
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Usage | Windsurf
Usage | Windsurf
Unnamed Group
[SRD-6848] Sidekick SMS issue - Jira
[SRD-6848] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
Unnamed Group
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Unnamed Group
[SRD-6853] Moxso - Potential deal stages bug - Jira
[SRD-6853] Moxso - Potential deal stages bug - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
Close tab
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Useful commands - Engineering - Confluence
Useful commands - Engineering - Confluence
Dev Tools - Elastic
Dev Tools - Elastic
Jiminny
Jiminny
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
Unnamed Group
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
Pipedrive Developers Corner | Pipedrive API sandbox
Pipedrive Developers Corner | Pipedrive API sandbox
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
pipedrive/client-php: Pipedrive API client for PHP
pipedrive/client-php: Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
Code search results
Code search results
Jiminny
Jiminny
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
New Tab
Customize sidebar
Close Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AI Chat settings
Close
WORK, Google Account: [EMAIL]
Main menu
New Chat
Open menu for conversation actions.
Conversation with Gemini
Conversation with Gemini
Copy prompt
You said I’m on page “<tabTitle>JY-18091 | Update composer to support php 8.5 by n</tabTitle>” with “<selection>@@ -40,15 +40,15 @@ public function postUsers(Request $request): JsonResponse40 {40 {41$team = $this->getTeamFromRequest($request);41$team = $this->getTeamFromRequest($request);424243-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);43+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);444445if ($requestDTO->getPrimaryPhoneNumber() !== null) {45if ($requestDTO->getPrimaryPhoneNumber() !== null) {46$user = $this->userRepository->findByPhone(46$user = $this->userRepository->findByPhone(47 phone: $requestDTO->getPrimaryPhoneNumber(),47 phone: $requestDTO->getPrimaryPhoneNumber(),48 );48 );494950if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {50if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {51-return (new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists'))51+return new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists')52 ->getResponse();52 ->getResponse();53 }53 }54 }54 }@@ -59,7 +59,7 @@ public function postUsers(Request $request): JsonResponse59 );59 );606061if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {61if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {62-return (new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists'))62+return new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists')63 ->getResponse();63 ->getResponse();64 }64 }65 }65 }@@ -74,11 +74,11 @@ public function postUsers(Request $request): JsonResponse74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);757576if (! $newUser instanceof User) {76if (! $newUser instanceof User) {77-return (new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed'))77+return new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed')78 ->getResponse();78 ->getResponse();79 }79 }808081-return (new CoreUser())81+return new CoreUser()82 ->createFromUser($newUser)82 ->createFromUser($newUser)83 ->setExternalId($requestDTO->getUserName())83 ->setExternalId($requestDTO->getUserName())84 ->setHttpCode(Constants::HTTP_CREATED)84 ->setHttpCode(Constants::HTTP_CREATED)@@ -93,22 +93,22 @@ public function putUsers(Request $request, string $id): JsonResponse93$team = $this->getTeamFromRequest($request);93$team = $this->getTeamFromRequest($request);949495if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {95if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {96-return (new Error())->getResponse();96+return new Error()->getResponse();97 }97 }989899-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);99+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);100100101try {101try {102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);103103104-return (new CoreUser())104+return new CoreUser()105 ->createFromUser($user)105 ->createFromUser($user)106 ->setHttpCode(Constants::HTTP_OK)106 ->setHttpCode(Constants::HTTP_OK)107 ->getResponse();107 ->getResponse();108 } catch (Exception $exception) {108 } catch (Exception $exception) {109 Sentry::captureException($exception);109 Sentry::captureException($exception);110110111-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();111+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();112 }112 }113 }113 }114114@@ -117,7 +117,7 @@ public function deleteUser(Request $request, string $id): JsonResponse117$team = $this->getTeamFromRequest($request);117$team = $this->getTeamFromRequest($request);118118119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {120-return (new Error())->getResponse();120+return new Error()->getResponse();121 }121 }122122123$user = $this->scimProvisioning->getUserById($id);123$user = $this->scimProvisioning->getUserById($id);@@ -131,18 +131,18 @@ public function deleteUser(Request $request, string $id): JsonResponse131 ),131 ),132 );132 );133133134-return (new JsonResponse())->setStatusCode(204);134+return new JsonResponse()->setStatusCode(204);135 }135 }136136137public function patchUser(Request $request, string $id): JsonResponse137public function patchUser(Request $request, string $id): JsonResponse138 {138 {139$team = $this->getTeamFromRequest($request);139$team = $this->getTeamFromRequest($request);140140141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {142-return (new Error())->getResponse();142+return new Error()->getResponse();143 }143 }144144145-$requestDTO = (new PatchUser())145+$requestDTO = new PatchUser()146 ->setResourceLocalId($id)146 ->setResourceLocalId($id)147 ->createFromRequestPayload($request);147 ->createFromRequestPayload($request);148148@@ -153,10 +153,10 @@ public function patchUser(Request $request, string $id): JsonResponse153 } catch (Exception $e) {153 } catch (Exception $e) {154 Sentry::captureException($e);154 Sentry::captureException($e);155155156-return (new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed'))->getResponse();156+return new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed')->getResponse();157 }157 }158158159-return (new CoreUser())159+return new CoreUser()160 ->createFromUser($user)160 ->createFromUser($user)161 ->setHttpCode(Constants::HTTP_OK)161 ->setHttpCode(Constants::HTTP_OK)162 ->getResponse();162 ->getResponse();@@ -167,16 +167,16 @@ public function getUser(Request $request, string $id): JsonResponse167$team = $this->getTeamFromRequest($request);167$team = $this->getTeamFromRequest($request);168168169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {170-return (new Error())->getResponse();170+return new Error()->getResponse();171 }171 }172172173$user = $this->scimProvisioning->getUserById($id);173$user = $this->scimProvisioning->getUserById($id);174174175if (! $team->isSame($user->getTeam())) {175if (! $team->isSame($user->getTeam())) {176-return (new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.'))->getResponse();176+return new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.')->getResponse();177 }177 }178178179-return (new CoreUser())179+return new CoreUser()180 ->setHttpCode(Constants::HTTP_OK)180 ->setHttpCode(Constants::HTTP_OK)181 ->createFromUser($user)181 ->createFromUser($user)182 ->getResponse();182 ->getResponse();@@ -186,20 +186,20 @@ public function getUsersByQuery(Request $request): JsonResponse186 {186 {187$team = $this->getTeamFromRequest($request);187$team = $this->getTeamFromRequest($request);188188189-$requestDto = (new GetUserByQuery())->createFromRequestPayload($request);189+$requestDto = new GetUserByQuery()->createFromRequestPayload($request);190190191try {191try {192$resultsQuery = $this->scimProvisioning192$resultsQuery = $this->scimProvisioning193 ->translateQueryStringsToUserModelQuery($requestDto, $team);193 ->translateQueryStringsToUserModelQuery($requestDto, $team);194 } catch (Exception $exception) {194 } catch (Exception $exception) {195-return (new ListResponse())->createEmpty()->getResponse();195+return new ListResponse()->createEmpty()->getResponse();196 }196 }197197198$resultsQuery198$resultsQuery199 ->limit($requestDto->getCount())199 ->limit($requestDto->getCount())200 ->offset($requestDto->getStartIndex() - 1);200 ->offset($requestDto->getStartIndex() - 1);201201202-return (new ListResponse())202+return new ListResponse()203 ->setHttpCode(Constants::HTTP_OK)203 ->setHttpCode(Constants::HTTP_OK)204 ->setStartIndex($requestDto->getStartIndex())204 ->setStartIndex($requestDto->getStartIndex())205 ->createFromCollection($resultsQuery->get())205 ->createFromCollection($resultsQuery->get())@@ -210,15 +210,15 @@ public function postGroups(Request $request): JsonResponse210 {210 {211$team = $this->getTeamFromRequest($request);211$team = $this->getTeamFromRequest($request);212212213-$requestDto = (new CoreGroupRequest())->createFromRequestPayload($request);213+$requestDto = new CoreGroupRequest()->createFromRequestPayload($request);214214215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);216216217if (! $group instanceof Group) {217if (! $group instanceof Group) {218-return (new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed'))->getResponse();218+return new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed')->getResponse();219 }219 }220220221-$response = (new CoreGroup())->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();221+$response = new CoreGroup()->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();222222223return $response;223return $response;224 }224 }@@ -228,22 +228,22 @@ public function putGroups(Request $request, string $id): JsonResponse228$team = $this->getTeamFromRequest($request);228$team = $this->getTeamFromRequest($request);229229230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {231-return (new Error())->getResponse();231+return new Error()->getResponse();232 }232 }233233234-$requestDTO = (new CoreGroupRequest())->createFromRequestPayload($request);234+$requestDTO = new CoreGroupRequest()->createFromRequestPayload($request);235235236try {236try {237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);238238239-return (new CoreGroup())239+return new CoreGroup()240 ->createFromGroup($group)240 ->createFromGroup($group)241 ->setHttpCode(Constants::HTTP_OK)241 ->setHttpCode(Constants::HTTP_OK)242 ->getResponse();242 ->getResponse();243 } catch (Exception $exception) {243 } catch (Exception $exception) {244 Sentry::captureException($exception);244 Sentry::captureException($exception);245245246-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();246+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();247 }247 }248 }248 }249249@@ -252,12 +252,12 @@ public function getGroup(Request $request, string $id): JsonResponse252$team = $this->getTeamFromRequest($request);252$team = $this->getTeamFromRequest($request);253253254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {255-return (new Error())->getResponse();255+return new Error()->getResponse();256 }256 }257257258$group = $this->scimProvisioning->getGroupById($id);258$group = $this->scimProvisioning->getGroupById($id);259259260-return (new CoreGroup())260+return new CoreGroup()261 ->excludeAttributes($request)261 ->excludeAttributes($request)262 ->setHttpCode(Constants::HTTP_OK)262 ->setHttpCode(Constants::HTTP_OK)263 ->createFromGroup($group)263 ->createFromGroup($group)@@ -268,19 +268,19 @@ public function getGroupByQuery(Request $request): JsonResponse268 {268 {269$team = $this->getTeamFromRequest($request);269$team = $this->getTeamFromRequest($request);270270271-$dto = (new GetGroupByQuery())->createFromRequestPayload($request);271+$dto = new GetGroupByQuery()->createFromRequestPayload($request);272272273try {273try {274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);275 } catch (Exception $exception) {275 } catch (Exception $exception) {276-return (new ListResponse())->createEmpty()->getResponse();276+return new ListResponse()->createEmpty()->getResponse();277 }277 }278278279$groupsQuery279$groupsQuery280 ->limit($dto->getCount())280 ->limit($dto->getCount())281 ->offset($dto->getStartIndex() - 1);281 ->offset($dto->getStartIndex() - 1);282282283-return (new ListResponse())283+return new ListResponse()284 ->setHttpCode(Constants::HTTP_OK)284 ->setHttpCode(Constants::HTTP_OK)285 ->setStartIndex($dto->getStartIndex())285 ->setStartIndex($dto->getStartIndex())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())@@ -292,30 +292,30 @@ public function patchGroup(Request $request, $id): JsonResponse292$team = $this->getTeamFromRequest($request);292$team = $this->getTeamFromRequest($request);293293294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {295-return (new Error())->getResponse();295+return new Error()->getResponse();296 }296 }297297298-$dto = (new PatchGroup())->createFromRequestPayload($request);298+$dto = new PatchGroup()->createFromRequestPayload($request);299299300$group = Group::uuid($id);300$group = Group::uuid($id);301301302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);303303304-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);304+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);305 }305 }306306307public function deleteGroup(Request $request, $id): JsonResponse307public function deleteGroup(Request $request, $id): JsonResponse308 {308 {309$team = $this->getTeamFromRequest($request);309$team = $this->getTeamFromRequest($request);310310311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {312-return (new Error())->getResponse();312+return new Error()->getResponse();313 }313 }314314315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {316-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);316+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);317 } else {317 } else {318-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();318+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();319 }319 }320 }320 }321321</selection>” selected. Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
You said
I’m on page “<tabTitle>JY-18091 | Update composer to support php 8.5 by n</tabTitle>” with “<selection>@@ -40,15 +40,15 @@ public function postUsers(Request $request): JsonResponse40 {40 {41$team = $this->getTeamFromRequest($request);41$team = $this->getTeamFromRequest($request);424243-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);43+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);444445if ($requestDTO->getPrimaryPhoneNumber() !== null) {45if ($requestDTO->getPrimaryPhoneNumber() !== null) {46$user = $this->userRepository->findByPhone(46$user = $this->userRepository->findByPhone(47 phone: $requestDTO->getPrimaryPhoneNumber(),47 phone: $requestDTO->getPrimaryPhoneNumber(),48 );48 );494950if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {50if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {51-return (new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists'))51+return new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists')52 ->getResponse();52 ->getResponse();53 }53 }54 }54 }@@ -59,7 +59,7 @@ public function postUsers(Request $request): JsonResponse59 );59 );606061if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {61if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {62-return (new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists'))62+return new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists')63 ->getResponse();63 ->getResponse();64 }64 }65 }65 }@@ -74,11 +74,11 @@ public function postUsers(Request $request): JsonResponse74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);757576if (! $newUser instanceof User) {76if (! $newUser instanceof User) {77-return (new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed'))77+return new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed')78 ->getResponse();78 ->getResponse();79 }79 }808081-return (new CoreUser())81+return new CoreUser()82 ->createFromUser($newUser)82 ->createFromUser($newUser)83 ->setExternalId($requestDTO->getUserName())83 ->setExternalId($requestDTO->getUserName())84 ->setHttpCode(Constants::HTTP_CREATED)84 ->setHttpCode(Constants::HTTP_CREATED)@@ -93,22 +93,22 @@ public function putUsers(Request $request, string $id): JsonResponse93$team = $this->getTeamFromRequest($request);93$team = $this->getTeamFromRequest($request);949495if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {95if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {96-return (new Error())->getResponse();96+return new Error()->getResponse();97 }97 }989899-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);99+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);100100101try {101try {102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);103103104-return (new CoreUser())104+return new CoreUser()105 ->createFromUser($user)105 ->createFromUser($user)106 ->setHttpCode(Constants::HTTP_OK)106 ->setHttpCode(Constants::HTTP_OK)107 ->getResponse();107 ->getResponse();108 } catch (Exception $exception) {108 } catch (Exception $exception) {109 Sentry::captureException($exception);109 Sentry::captureException($exception);110110111-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();111+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();112 }112 }113 }113 }114114@@ -117,7 +117,7 @@ public function deleteUser(Request $request, string $id): JsonResponse117$team = $this->getTeamFromRequest($request);117$team = $this->getTeamFromRequest($request);118118119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {120-return (new Error())->getResponse();120+return new Error()->getResponse();121 }121 }122122123$user = $this->scimProvisioning->getUserById($id);123$user = $this->scimProvisioning->getUserById($id);@@ -131,18 +131,18 @@ public function deleteUser(Request $request, string $id): JsonResponse131 ),131 ),132 );132 );133133134-return (new JsonResponse())->setStatusCode(204);134+return new JsonResponse()->setStatusCode(204);135 }135 }136136137public function patchUser(Request $request, string $id): JsonResponse137public function patchUser(Request $request, string $id): JsonResponse138 {138 {139$team = $this->getTeamFromRequest($request);139$team = $this->getTeamFromRequest($request);140140141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {142-return (new Error())->getResponse();142+return new Error()->getResponse();143 }143 }144144145-$requestDTO = (new PatchUser())145+$requestDTO = new PatchUser()146 ->setResourceLocalId($id)146 ->setResourceLocalId($id)147 ->createFromRequestPayload($request);147 ->createFromRequestPayload($request);148148@@ -153,10 +153,10 @@ public function patchUser(Request $request, string $id): JsonResponse153 } catch (Exception $e) {153 } catch (Exception $e) {154 Sentry::captureException($e);154 Sentry::captureException($e);155155156-return (new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed'))->getResponse();156+return new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed')->getResponse();157 }157 }158158159-return (new CoreUser())159+return new CoreUser()160 ->createFromUser($user)160 ->createFromUser($user)161 ->setHttpCode(Constants::HTTP_OK)161 ->setHttpCode(Constants::HTTP_OK)162 ->getResponse();162 ->getResponse();@@ -167,16 +167,16 @@ public function getUser(Request $request, string $id): JsonResponse167$team = $this->getTeamFromRequest($request);167$team = $this->getTeamFromRequest($request);168168169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {170-return (new Error())->getResponse();170+return new Error()->getResponse();171 }171 }172172173$user = $this->scimProvisioning->getUserById($id);173$user = $this->scimProvisioning->getUserById($id);174174175if (! $team->isSame($user->getTeam())) {175if (! $team->isSame($user->getTeam())) {176-return (new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.'))->getResponse();176+return new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.')->getResponse();177 }177 }178178179-return (new CoreUser())179+return new CoreUser()180 ->setHttpCode(Constants::HTTP_OK)180 ->setHttpCode(Constants::HTTP_OK)181 ->createFromUser($user)181 ->createFromUser($user)182 ->getResponse();182 ->getResponse();@@ -186,20 +186,20 @@ public function getUsersByQuery(Request $request): JsonResponse186 {186 {187$team = $this->getTeamFromRequest($request);187$team = $this->getTeamFromRequest($request);188188189-$requestDto = (new GetUserByQuery())->createFromRequestPayload($request);189+$requestDto = new GetUserByQuery()->createFromRequestPayload($request);190190191try {191try {192$resultsQuery = $this->scimProvisioning192$resultsQuery = $this->scimProvisioning193 ->translateQueryStringsToUserModelQuery($requestDto, $team);193 ->translateQueryStringsToUserModelQuery($requestDto, $team);194 } catch (Exception $exception) {194 } catch (Exception $exception) {195-return (new ListResponse())->createEmpty()->getResponse();195+return new ListResponse()->createEmpty()->getResponse();196 }196 }197197198$resultsQuery198$resultsQuery199 ->limit($requestDto->getCount())199 ->limit($requestDto->getCount())200 ->offset($requestDto->getStartIndex() - 1);200 ->offset($requestDto->getStartIndex() - 1);201201202-return (new ListResponse())202+return new ListResponse()203 ->setHttpCode(Constants::HTTP_OK)203 ->setHttpCode(Constants::HTTP_OK)204 ->setStartIndex($requestDto->getStartIndex())204 ->setStartIndex($requestDto->getStartIndex())205 ->createFromCollection($resultsQuery->get())205 ->createFromCollection($resultsQuery->get())@@ -210,15 +210,15 @@ public function postGroups(Request $request): JsonResponse210 {210 {211$team = $this->getTeamFromRequest($request);211$team = $this->getTeamFromRequest($request);212212213-$requestDto = (new CoreGroupRequest())->createFromRequestPayload($request);213+$requestDto = new CoreGroupRequest()->createFromRequestPayload($request);214214215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);216216217if (! $group instanceof Group) {217if (! $group instanceof Group) {218-return (new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed'))->getResponse();218+return new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed')->getResponse();219 }219 }220220221-$response = (new CoreGroup())->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();221+$response = new CoreGroup()->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();222222223return $response;223return $response;224 }224 }@@ -228,22 +228,22 @@ public function putGroups(Request $request, string $id): JsonResponse228$team = $this->getTeamFromRequest($request);228$team = $this->getTeamFromRequest($request);229229230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {231-return (new Error())->getResponse();231+return new Error()->getResponse();232 }232 }233233234-$requestDTO = (new CoreGroupRequest())->createFromRequestPayload($request);234+$requestDTO = new CoreGroupRequest()->createFromRequestPayload($request);235235236try {236try {237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);238238239-return (new CoreGroup())239+return new CoreGroup()240 ->createFromGroup($group)240 ->createFromGroup($group)241 ->setHttpCode(Constants::HTTP_OK)241 ->setHttpCode(Constants::HTTP_OK)242 ->getResponse();242 ->getResponse();243 } catch (Exception $exception) {243 } catch (Exception $exception) {244 Sentry::captureException($exception);244 Sentry::captureException($exception);245245246-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();246+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();247 }247 }248 }248 }249249@@ -252,12 +252,12 @@ public function getGroup(Request $request, string $id): JsonResponse252$team = $this->getTeamFromRequest($request);252$team = $this->getTeamFromRequest($request);253253254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {255-return (new Error())->getResponse();255+return new Error()->getResponse();256 }256 }257257258$group = $this->scimProvisioning->getGroupById($id);258$group = $this->scimProvisioning->getGroupById($id);259259260-return (new CoreGroup())260+return new CoreGroup()261 ->excludeAttributes($request)261 ->excludeAttributes($request)262 ->setHttpCode(Constants::HTTP_OK)262 ->setHttpCode(Constants::HTTP_OK)263 ->createFromGroup($group)263 ->createFromGroup($group)@@ -268,19 +268,19 @@ public function getGroupByQuery(Request $request): JsonResponse268 {268 {269$team = $this->getTeamFromRequest($request);269$team = $this->getTeamFromRequest($request);270270271-$dto = (new GetGroupByQuery())->createFromRequestPayload($request);271+$dto = new GetGroupByQuery()->createFromRequestPayload($request);272272273try {273try {274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);275 } catch (Exception $exception) {275 } catch (Exception $exception) {276-return (new ListResponse())->createEmpty()->getResponse();276+return new ListResponse()->createEmpty()->getResponse();277 }277 }278278279$groupsQuery279$groupsQuery280 ->limit($dto->getCount())280 ->limit($dto->getCount())281 ->offset($dto->getStartIndex() - 1);281 ->offset($dto->getStartIndex() - 1);282282283-return (new ListResponse())283+return new ListResponse()284 ->setHttpCode(Constants::HTTP_OK)284 ->setHttpCode(Constants::HTTP_OK)285 ->setStartIndex($dto->getStartIndex())285 ->setStartIndex($dto->getStartIndex())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())@@ -292,30 +292,30 @@ public function patchGroup(Request $request, $id): JsonResponse292$team = $this->getTeamFromRequest($request);292$team = $this->getTeamFromRequest($request);293293294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {295-return (new Error())->getResponse();295+return new Error()->getResponse();296 }296 }297297298-$dto = (new PatchGroup())->createFromRequestPayload($request);298+$dto = new PatchGroup()->createFromRequestPayload($request);299299300$group = Group::uuid($id);300$group = Group::uuid($id);301301302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);303303304-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);304+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);305 }305 }306306307public function deleteGroup(Request $request, $id): JsonResponse307public function deleteGroup(Request $request, $id): JsonResponse308 {308 {309$team = $this->getTeamFromRequest($request);309$team = $this->getTeamFromRequest($request);310310311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {312-return (new Error())->getResponse();312+return new Error()->getResponse();313 }313 }314314315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {316-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);316+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);317 } else {317 } else {318-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();318+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();319 }319 }320 }320 }321321</selection>” selected.
Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
Expand
Listen
Gemini said
Gemini said
The selected code changes represent a mechanical refactoring of a PHP controller to align with modern syntax standards, likely as part of the upgrade to
PHP 8.5
.
Core Change: Member Access on Instantiation
Core Change: Member Access on Instantiation
The primary modification across the entire file is the removal of unnecessary parentheses when performing member access (method chaining) on a newly instantiated object.
Pattern:
(new ClassName())->method()
is simplified to
new ClassName()->method()
.
Reasoning:
Since PHP 8.0+, the parser handles member access on new expressions without requiring the wrapping parentheses for disambiguation.
Affected Components
Affected Components
The refactoring impacts various response and DTO (Data Transfer Object) initializations within the following SCIM (System for Cross-domain Identity Management) endpoints:
User Management:
postUsers
: Simplified instantiation of
CoreUserRequest
,
Error
, and
CoreUser
.
putUsers
/
patchUser
/
getUser
: Updated
Error
,
CoreUser
, and
PatchUser
calls.
getUsersByQuery
: Updated
GetUserByQuery
and
ListResponse
.
deleteUser
: Updated
JsonResponse
and
Error
.
Group Management:
postGroups
: Simplified
CoreGroupRequest
,
Error
, and
CoreGroup...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
42887
|
|
42888
|
Unnamed Group
Platform Sprint 4 Q2 - Platform Team Unnamed Group
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Usage | Windsurf
Usage | Windsurf
Unnamed Group
[SRD-6848] Sidekick SMS issue - Jira
[SRD-6848] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
Unnamed Group
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Unnamed Group
[SRD-6853] Moxso - Potential deal stages bug - Jira
[SRD-6853] Moxso - Potential deal stages bug - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
Close tab
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Useful commands - Engineering - Confluence
Useful commands - Engineering - Confluence
Dev Tools - Elastic
Dev Tools - Elastic
Jiminny
Jiminny
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
Unnamed Group
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
Pipedrive Developers Corner | Pipedrive API sandbox
Pipedrive Developers Corner | Pipedrive API sandbox
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
pipedrive/client-php: Pipedrive API client for PHP
pipedrive/client-php: Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
Code search results
Code search results
Jiminny
Jiminny
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
New Tab
Customize sidebar
Close Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AI Chat settings
Close
WORK, Google Account: [EMAIL]
Main menu
New Chat
Open menu for conversation actions.
Conversation with Gemini
Conversation with Gemini
Copy prompt
You said I’m on page “<tabTitle>JY-18091 | Update composer to support php 8.5 by n</tabTitle>” with “<selection>@@ -40,15 +40,15 @@ public function postUsers(Request $request): JsonResponse40 {40 {41$team = $this->getTeamFromRequest($request);41$team = $this->getTeamFromRequest($request);424243-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);43+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);444445if ($requestDTO->getPrimaryPhoneNumber() !== null) {45if ($requestDTO->getPrimaryPhoneNumber() !== null) {46$user = $this->userRepository->findByPhone(46$user = $this->userRepository->findByPhone(47 phone: $requestDTO->getPrimaryPhoneNumber(),47 phone: $requestDTO->getPrimaryPhoneNumber(),48 );48 );494950if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {50if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {51-return (new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists'))51+return new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists')52 ->getResponse();52 ->getResponse();53 }53 }54 }54 }@@ -59,7 +59,7 @@ public function postUsers(Request $request): JsonResponse59 );59 );606061if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {61if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {62-return (new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists'))62+return new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists')63 ->getResponse();63 ->getResponse();64 }64 }65 }65 }@@ -74,11 +74,11 @@ public function postUsers(Request $request): JsonResponse74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);757576if (! $newUser instanceof User) {76if (! $newUser instanceof User) {77-return (new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed'))77+return new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed')78 ->getResponse();78 ->getResponse();79 }79 }808081-return (new CoreUser())81+return new CoreUser()82 ->createFromUser($newUser)82 ->createFromUser($newUser)83 ->setExternalId($requestDTO->getUserName())83 ->setExternalId($requestDTO->getUserName())84 ->setHttpCode(Constants::HTTP_CREATED)84 ->setHttpCode(Constants::HTTP_CREATED)@@ -93,22 +93,22 @@ public function putUsers(Request $request, string $id): JsonResponse93$team = $this->getTeamFromRequest($request);93$team = $this->getTeamFromRequest($request);949495if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {95if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {96-return (new Error())->getResponse();96+return new Error()->getResponse();97 }97 }989899-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);99+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);100100101try {101try {102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);103103104-return (new CoreUser())104+return new CoreUser()105 ->createFromUser($user)105 ->createFromUser($user)106 ->setHttpCode(Constants::HTTP_OK)106 ->setHttpCode(Constants::HTTP_OK)107 ->getResponse();107 ->getResponse();108 } catch (Exception $exception) {108 } catch (Exception $exception) {109 Sentry::captureException($exception);109 Sentry::captureException($exception);110110111-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();111+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();112 }112 }113 }113 }114114@@ -117,7 +117,7 @@ public function deleteUser(Request $request, string $id): JsonResponse117$team = $this->getTeamFromRequest($request);117$team = $this->getTeamFromRequest($request);118118119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {120-return (new Error())->getResponse();120+return new Error()->getResponse();121 }121 }122122123$user = $this->scimProvisioning->getUserById($id);123$user = $this->scimProvisioning->getUserById($id);@@ -131,18 +131,18 @@ public function deleteUser(Request $request, string $id): JsonResponse131 ),131 ),132 );132 );133133134-return (new JsonResponse())->setStatusCode(204);134+return new JsonResponse()->setStatusCode(204);135 }135 }136136137public function patchUser(Request $request, string $id): JsonResponse137public function patchUser(Request $request, string $id): JsonResponse138 {138 {139$team = $this->getTeamFromRequest($request);139$team = $this->getTeamFromRequest($request);140140141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {142-return (new Error())->getResponse();142+return new Error()->getResponse();143 }143 }144144145-$requestDTO = (new PatchUser())145+$requestDTO = new PatchUser()146 ->setResourceLocalId($id)146 ->setResourceLocalId($id)147 ->createFromRequestPayload($request);147 ->createFromRequestPayload($request);148148@@ -153,10 +153,10 @@ public function patchUser(Request $request, string $id): JsonResponse153 } catch (Exception $e) {153 } catch (Exception $e) {154 Sentry::captureException($e);154 Sentry::captureException($e);155155156-return (new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed'))->getResponse();156+return new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed')->getResponse();157 }157 }158158159-return (new CoreUser())159+return new CoreUser()160 ->createFromUser($user)160 ->createFromUser($user)161 ->setHttpCode(Constants::HTTP_OK)161 ->setHttpCode(Constants::HTTP_OK)162 ->getResponse();162 ->getResponse();@@ -167,16 +167,16 @@ public function getUser(Request $request, string $id): JsonResponse167$team = $this->getTeamFromRequest($request);167$team = $this->getTeamFromRequest($request);168168169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {170-return (new Error())->getResponse();170+return new Error()->getResponse();171 }171 }172172173$user = $this->scimProvisioning->getUserById($id);173$user = $this->scimProvisioning->getUserById($id);174174175if (! $team->isSame($user->getTeam())) {175if (! $team->isSame($user->getTeam())) {176-return (new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.'))->getResponse();176+return new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.')->getResponse();177 }177 }178178179-return (new CoreUser())179+return new CoreUser()180 ->setHttpCode(Constants::HTTP_OK)180 ->setHttpCode(Constants::HTTP_OK)181 ->createFromUser($user)181 ->createFromUser($user)182 ->getResponse();182 ->getResponse();@@ -186,20 +186,20 @@ public function getUsersByQuery(Request $request): JsonResponse186 {186 {187$team = $this->getTeamFromRequest($request);187$team = $this->getTeamFromRequest($request);188188189-$requestDto = (new GetUserByQuery())->createFromRequestPayload($request);189+$requestDto = new GetUserByQuery()->createFromRequestPayload($request);190190191try {191try {192$resultsQuery = $this->scimProvisioning192$resultsQuery = $this->scimProvisioning193 ->translateQueryStringsToUserModelQuery($requestDto, $team);193 ->translateQueryStringsToUserModelQuery($requestDto, $team);194 } catch (Exception $exception) {194 } catch (Exception $exception) {195-return (new ListResponse())->createEmpty()->getResponse();195+return new ListResponse()->createEmpty()->getResponse();196 }196 }197197198$resultsQuery198$resultsQuery199 ->limit($requestDto->getCount())199 ->limit($requestDto->getCount())200 ->offset($requestDto->getStartIndex() - 1);200 ->offset($requestDto->getStartIndex() - 1);201201202-return (new ListResponse())202+return new ListResponse()203 ->setHttpCode(Constants::HTTP_OK)203 ->setHttpCode(Constants::HTTP_OK)204 ->setStartIndex($requestDto->getStartIndex())204 ->setStartIndex($requestDto->getStartIndex())205 ->createFromCollection($resultsQuery->get())205 ->createFromCollection($resultsQuery->get())@@ -210,15 +210,15 @@ public function postGroups(Request $request): JsonResponse210 {210 {211$team = $this->getTeamFromRequest($request);211$team = $this->getTeamFromRequest($request);212212213-$requestDto = (new CoreGroupRequest())->createFromRequestPayload($request);213+$requestDto = new CoreGroupRequest()->createFromRequestPayload($request);214214215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);216216217if (! $group instanceof Group) {217if (! $group instanceof Group) {218-return (new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed'))->getResponse();218+return new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed')->getResponse();219 }219 }220220221-$response = (new CoreGroup())->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();221+$response = new CoreGroup()->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();222222223return $response;223return $response;224 }224 }@@ -228,22 +228,22 @@ public function putGroups(Request $request, string $id): JsonResponse228$team = $this->getTeamFromRequest($request);228$team = $this->getTeamFromRequest($request);229229230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {231-return (new Error())->getResponse();231+return new Error()->getResponse();232 }232 }233233234-$requestDTO = (new CoreGroupRequest())->createFromRequestPayload($request);234+$requestDTO = new CoreGroupRequest()->createFromRequestPayload($request);235235236try {236try {237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);238238239-return (new CoreGroup())239+return new CoreGroup()240 ->createFromGroup($group)240 ->createFromGroup($group)241 ->setHttpCode(Constants::HTTP_OK)241 ->setHttpCode(Constants::HTTP_OK)242 ->getResponse();242 ->getResponse();243 } catch (Exception $exception) {243 } catch (Exception $exception) {244 Sentry::captureException($exception);244 Sentry::captureException($exception);245245246-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();246+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();247 }247 }248 }248 }249249@@ -252,12 +252,12 @@ public function getGroup(Request $request, string $id): JsonResponse252$team = $this->getTeamFromRequest($request);252$team = $this->getTeamFromRequest($request);253253254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {255-return (new Error())->getResponse();255+return new Error()->getResponse();256 }256 }257257258$group = $this->scimProvisioning->getGroupById($id);258$group = $this->scimProvisioning->getGroupById($id);259259260-return (new CoreGroup())260+return new CoreGroup()261 ->excludeAttributes($request)261 ->excludeAttributes($request)262 ->setHttpCode(Constants::HTTP_OK)262 ->setHttpCode(Constants::HTTP_OK)263 ->createFromGroup($group)263 ->createFromGroup($group)@@ -268,19 +268,19 @@ public function getGroupByQuery(Request $request): JsonResponse268 {268 {269$team = $this->getTeamFromRequest($request);269$team = $this->getTeamFromRequest($request);270270271-$dto = (new GetGroupByQuery())->createFromRequestPayload($request);271+$dto = new GetGroupByQuery()->createFromRequestPayload($request);272272273try {273try {274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);275 } catch (Exception $exception) {275 } catch (Exception $exception) {276-return (new ListResponse())->createEmpty()->getResponse();276+return new ListResponse()->createEmpty()->getResponse();277 }277 }278278279$groupsQuery279$groupsQuery280 ->limit($dto->getCount())280 ->limit($dto->getCount())281 ->offset($dto->getStartIndex() - 1);281 ->offset($dto->getStartIndex() - 1);282282283-return (new ListResponse())283+return new ListResponse()284 ->setHttpCode(Constants::HTTP_OK)284 ->setHttpCode(Constants::HTTP_OK)285 ->setStartIndex($dto->getStartIndex())285 ->setStartIndex($dto->getStartIndex())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())@@ -292,30 +292,30 @@ public function patchGroup(Request $request, $id): JsonResponse292$team = $this->getTeamFromRequest($request);292$team = $this->getTeamFromRequest($request);293293294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {295-return (new Error())->getResponse();295+return new Error()->getResponse();296 }296 }297297298-$dto = (new PatchGroup())->createFromRequestPayload($request);298+$dto = new PatchGroup()->createFromRequestPayload($request);299299300$group = Group::uuid($id);300$group = Group::uuid($id);301301302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);303303304-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);304+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);305 }305 }306306307public function deleteGroup(Request $request, $id): JsonResponse307public function deleteGroup(Request $request, $id): JsonResponse308 {308 {309$team = $this->getTeamFromRequest($request);309$team = $this->getTeamFromRequest($request);310310311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {312-return (new Error())->getResponse();312+return new Error()->getResponse();313 }313 }314314315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {316-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);316+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);317 } else {317 } else {318-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();318+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();319 }319 }320 }320 }321321</selection>” selected. Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
You said
I’m on page “<tabTitle>JY-18091 | Update composer to support php 8.5 by n</tabTitle>” with “<selection>@@ -40,15 +40,15 @@ public function postUsers(Request $request): JsonResponse40 {40 {41$team = $this->getTeamFromRequest($request);41$team = $this->getTeamFromRequest($request);424243-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);43+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);444445if ($requestDTO->getPrimaryPhoneNumber() !== null) {45if ($requestDTO->getPrimaryPhoneNumber() !== null) {46$user = $this->userRepository->findByPhone(46$user = $this->userRepository->findByPhone(47 phone: $requestDTO->getPrimaryPhoneNumber(),47 phone: $requestDTO->getPrimaryPhoneNumber(),48 );48 );494950if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {50if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {51-return (new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists'))51+return new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists')52 ->getResponse();52 ->getResponse();53 }53 }54 }54 }@@ -59,7 +59,7 @@ public function postUsers(Request $request): JsonResponse59 );59 );606061if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {61if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {62-return (new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists'))62+return new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists')63 ->getResponse();63 ->getResponse();64 }64 }65 }65 }@@ -74,11 +74,11 @@ public function postUsers(Request $request): JsonResponse74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);757576if (! $newUser instanceof User) {76if (! $newUser instanceof User) {77-return (new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed'))77+return new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed')78 ->getResponse();78 ->getResponse();79 }79 }808081-return (new CoreUser())81+return new CoreUser()82 ->createFromUser($newUser)82 ->createFromUser($newUser)83 ->setExternalId($requestDTO->getUserName())83 ->setExternalId($requestDTO->getUserName())84 ->setHttpCode(Constants::HTTP_CREATED)84 ->setHttpCode(Constants::HTTP_CREATED)@@ -93,22 +93,22 @@ public function putUsers(Request $request, string $id): JsonResponse93$team = $this->getTeamFromRequest($request);93$team = $this->getTeamFromRequest($request);949495if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {95if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {96-return (new Error())->getResponse();96+return new Error()->getResponse();97 }97 }989899-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);99+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);100100101try {101try {102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);103103104-return (new CoreUser())104+return new CoreUser()105 ->createFromUser($user)105 ->createFromUser($user)106 ->setHttpCode(Constants::HTTP_OK)106 ->setHttpCode(Constants::HTTP_OK)107 ->getResponse();107 ->getResponse();108 } catch (Exception $exception) {108 } catch (Exception $exception) {109 Sentry::captureException($exception);109 Sentry::captureException($exception);110110111-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();111+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();112 }112 }113 }113 }114114@@ -117,7 +117,7 @@ public function deleteUser(Request $request, string $id): JsonResponse117$team = $this->getTeamFromRequest($request);117$team = $this->getTeamFromRequest($request);118118119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {120-return (new Error())->getResponse();120+return new Error()->getResponse();121 }121 }122122123$user = $this->scimProvisioning->getUserById($id);123$user = $this->scimProvisioning->getUserById($id);@@ -131,18 +131,18 @@ public function deleteUser(Request $request, string $id): JsonResponse131 ),131 ),132 );132 );133133134-return (new JsonResponse())->setStatusCode(204);134+return new JsonResponse()->setStatusCode(204);135 }135 }136136137public function patchUser(Request $request, string $id): JsonResponse137public function patchUser(Request $request, string $id): JsonResponse138 {138 {139$team = $this->getTeamFromRequest($request);139$team = $this->getTeamFromRequest($request);140140141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {142-return (new Error())->getResponse();142+return new Error()->getResponse();143 }143 }144144145-$requestDTO = (new PatchUser())145+$requestDTO = new PatchUser()146 ->setResourceLocalId($id)146 ->setResourceLocalId($id)147 ->createFromRequestPayload($request);147 ->createFromRequestPayload($request);148148@@ -153,10 +153,10 @@ public function patchUser(Request $request, string $id): JsonResponse153 } catch (Exception $e) {153 } catch (Exception $e) {154 Sentry::captureException($e);154 Sentry::captureException($e);155155156-return (new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed'))->getResponse();156+return new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed')->getResponse();157 }157 }158158159-return (new CoreUser())159+return new CoreUser()160 ->createFromUser($user)160 ->createFromUser($user)161 ->setHttpCode(Constants::HTTP_OK)161 ->setHttpCode(Constants::HTTP_OK)162 ->getResponse();162 ->getResponse();@@ -167,16 +167,16 @@ public function getUser(Request $request, string $id): JsonResponse167$team = $this->getTeamFromRequest($request);167$team = $this->getTeamFromRequest($request);168168169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {170-return (new Error())->getResponse();170+return new Error()->getResponse();171 }171 }172172173$user = $this->scimProvisioning->getUserById($id);173$user = $this->scimProvisioning->getUserById($id);174174175if (! $team->isSame($user->getTeam())) {175if (! $team->isSame($user->getTeam())) {176-return (new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.'))->getResponse();176+return new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.')->getResponse();177 }177 }178178179-return (new CoreUser())179+return new CoreUser()180 ->setHttpCode(Constants::HTTP_OK)180 ->setHttpCode(Constants::HTTP_OK)181 ->createFromUser($user)181 ->createFromUser($user)182 ->getResponse();182 ->getResponse();@@ -186,20 +186,20 @@ public function getUsersByQuery(Request $request): JsonResponse186 {186 {187$team = $this->getTeamFromRequest($request);187$team = $this->getTeamFromRequest($request);188188189-$requestDto = (new GetUserByQuery())->createFromRequestPayload($request);189+$requestDto = new GetUserByQuery()->createFromRequestPayload($request);190190191try {191try {192$resultsQuery = $this->scimProvisioning192$resultsQuery = $this->scimProvisioning193 ->translateQueryStringsToUserModelQuery($requestDto, $team);193 ->translateQueryStringsToUserModelQuery($requestDto, $team);194 } catch (Exception $exception) {194 } catch (Exception $exception) {195-return (new ListResponse())->createEmpty()->getResponse();195+return new ListResponse()->createEmpty()->getResponse();196 }196 }197197198$resultsQuery198$resultsQuery199 ->limit($requestDto->getCount())199 ->limit($requestDto->getCount())200 ->offset($requestDto->getStartIndex() - 1);200 ->offset($requestDto->getStartIndex() - 1);201201202-return (new ListResponse())202+return new ListResponse()203 ->setHttpCode(Constants::HTTP_OK)203 ->setHttpCode(Constants::HTTP_OK)204 ->setStartIndex($requestDto->getStartIndex())204 ->setStartIndex($requestDto->getStartIndex())205 ->createFromCollection($resultsQuery->get())205 ->createFromCollection($resultsQuery->get())@@ -210,15 +210,15 @@ public function postGroups(Request $request): JsonResponse210 {210 {211$team = $this->getTeamFromRequest($request);211$team = $this->getTeamFromRequest($request);212212213-$requestDto = (new CoreGroupRequest())->createFromRequestPayload($request);213+$requestDto = new CoreGroupRequest()->createFromRequestPayload($request);214214215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);216216217if (! $group instanceof Group) {217if (! $group instanceof Group) {218-return (new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed'))->getResponse();218+return new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed')->getResponse();219 }219 }220220221-$response = (new CoreGroup())->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();221+$response = new CoreGroup()->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();222222223return $response;223return $response;224 }224 }@@ -228,22 +228,22 @@ public function putGroups(Request $request, string $id): JsonResponse228$team = $this->getTeamFromRequest($request);228$team = $this->getTeamFromRequest($request);229229230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {231-return (new Error())->getResponse();231+return new Error()->getResponse();232 }232 }233233234-$requestDTO = (new CoreGroupRequest())->createFromRequestPayload($request);234+$requestDTO = new CoreGroupRequest()->createFromRequestPayload($request);235235236try {236try {237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);238238239-return (new CoreGroup())239+return new CoreGroup()240 ->createFromGroup($group)240 ->createFromGroup($group)241 ->setHttpCode(Constants::HTTP_OK)241 ->setHttpCode(Constants::HTTP_OK)242 ->getResponse();242 ->getResponse();243 } catch (Exception $exception) {243 } catch (Exception $exception) {244 Sentry::captureException($exception);244 Sentry::captureException($exception);245245246-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();246+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();247 }247 }248 }248 }249249@@ -252,12 +252,12 @@ public function getGroup(Request $request, string $id): JsonResponse252$team = $this->getTeamFromRequest($request);252$team = $this->getTeamFromRequest($request);253253254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {255-return (new Error())->getResponse();255+return new Error()->getResponse();256 }256 }257257258$group = $this->scimProvisioning->getGroupById($id);258$group = $this->scimProvisioning->getGroupById($id);259259260-return (new CoreGroup())260+return new CoreGroup()261 ->excludeAttributes($request)261 ->excludeAttributes($request)262 ->setHttpCode(Constants::HTTP_OK)262 ->setHttpCode(Constants::HTTP_OK)263 ->createFromGroup($group)263 ->createFromGroup($group)@@ -268,19 +268,19 @@ public function getGroupByQuery(Request $request): JsonResponse268 {268 {269$team = $this->getTeamFromRequest($request);269$team = $this->getTeamFromRequest($request);270270271-$dto = (new GetGroupByQuery())->createFromRequestPayload($request);271+$dto = new GetGroupByQuery()->createFromRequestPayload($request);272272273try {273try {274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);275 } catch (Exception $exception) {275 } catch (Exception $exception) {276-return (new ListResponse())->createEmpty()->getResponse();276+return new ListResponse()->createEmpty()->getResponse();277 }277 }278278279$groupsQuery279$groupsQuery280 ->limit($dto->getCount())280 ->limit($dto->getCount())281 ->offset($dto->getStartIndex() - 1);281 ->offset($dto->getStartIndex() - 1);282282283-return (new ListResponse())283+return new ListResponse()284 ->setHttpCode(Constants::HTTP_OK)284 ->setHttpCode(Constants::HTTP_OK)285 ->setStartIndex($dto->getStartIndex())285 ->setStartIndex($dto->getStartIndex())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())@@ -292,30 +292,30 @@ public function patchGroup(Request $request, $id): JsonResponse292$team = $this->getTeamFromRequest($request);292$team = $this->getTeamFromRequest($request);293293294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {295-return (new Error())->getResponse();295+return new Error()->getResponse();296 }296 }297297298-$dto = (new PatchGroup())->createFromRequestPayload($request);298+$dto = new PatchGroup()->createFromRequestPayload($request);299299300$group = Group::uuid($id);300$group = Group::uuid($id);301301302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);303303304-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);304+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);305 }305 }306306307public function deleteGroup(Request $request, $id): JsonResponse307public function deleteGroup(Request $request, $id): JsonResponse308 {308 {309$team = $this->getTeamFromRequest($request);309$team = $this->getTeamFromRequest($request);310310311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {312-return (new Error())->getResponse();312+return new Error()->getResponse();313 }313 }314314315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {316-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);316+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);317 } else {317 } else {318-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();318+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();319 }319 }320 }320 }321321</selection>” selected.
Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
Expand
Listen
Gemini said
Gemini said
The selected code changes represent a mechanical refactoring of a PHP controller to align with modern syntax standards, likely as part of the upgrade to
PHP 8.5
.
Core Change: Member Access on Instantiation
Core Change: Member Access on Instantiation
The primary modification across the entire file is the removal of unnecessary parentheses when performing member access (method chaining) on a newly instantiated object.
Pattern:
(new ClassName())->method()
is simplified to
new ClassName()->method()
.
Reasoning:
Since PHP 8.0+, the parser handles member access on new expressions without requiring the wrapping parentheses for disambiguation.
Affected Components
Affected Components
The refactoring impacts various response and DTO (Data Transfer Object) initializations within the following SCIM (System for Cross-domain Identity Management) endpoints:
User Management:
postUsers
: Simplified instantiation of
CoreUserRequest
,
Error
, and
CoreUser
.
putUsers
/
patchUser
/
getUser
: Updated
Error
,
CoreUser
, and
PatchUser
calls.
getUsersByQuery
: Updated
GetUserByQuery
and
ListResponse
.
deleteUser
: Updated
JsonResponse
and
Error
.
Group Management:
postGroups
: Simplified
CoreGroupRequest
,
Error
, and
CoreGroup
.
putGroups
/
getGroup
: Updated
CoreGroupRequest
and
Error
.
getGroupByQuery
: Updated
GetGroupByQuery
and
ListResponse
.
patchGroup
/
deleteGroup
: Updated
PatchGroup
,
JsonResponse...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
42888
|
|
42889
|
Unnamed Group
Platform Sprint 4 Q2 - Platform Team Unnamed Group
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Usage | Windsurf
Usage | Windsurf
Unnamed Group
[SRD-6848] Sidekick SMS issue - Jira
[SRD-6848] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
Unnamed Group
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Unnamed Group
[SRD-6853] Moxso - Potential deal stages bug - Jira
[SRD-6853] Moxso - Potential deal stages bug - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
Close tab
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Useful commands - Engineering - Confluence
Useful commands - Engineering - Confluence
Dev Tools - Elastic
Dev Tools - Elastic
Jiminny
Jiminny
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
Unnamed Group
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
Pipedrive Developers Corner | Pipedrive API sandbox
Pipedrive Developers Corner | Pipedrive API sandbox
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
pipedrive/client-php: Pipedrive API client for PHP
pipedrive/client-php: Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
Code search results
Code search results
Jiminny
Jiminny
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
New Tab
Customize sidebar
Close Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AI Chat settings
Close
WORK, Google Account: [EMAIL]
Main menu
New Chat
Open menu for conversation actions.
Conversation with Gemini
Conversation with Gemini
Copy prompt
You said I’m on page “<tabTitle>JY-18091 | Update composer to support php 8.5 by n</tabTitle>” with “<selection>@@ -40,15 +40,15 @@ public function postUsers(Request $request): JsonResponse40 {40 {41$team = $this->getTeamFromRequest($request);41$team = $this->getTeamFromRequest($request);424243-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);43+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);444445if ($requestDTO->getPrimaryPhoneNumber() !== null) {45if ($requestDTO->getPrimaryPhoneNumber() !== null) {46$user = $this->userRepository->findByPhone(46$user = $this->userRepository->findByPhone(47 phone: $requestDTO->getPrimaryPhoneNumber(),47 phone: $requestDTO->getPrimaryPhoneNumber(),48 );48 );494950if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {50if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {51-return (new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists'))51+return new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists')52 ->getResponse();52 ->getResponse();53 }53 }54 }54 }@@ -59,7 +59,7 @@ public function postUsers(Request $request): JsonResponse59 );59 );606061if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {61if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {62-return (new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists'))62+return new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists')63 ->getResponse();63 ->getResponse();64 }64 }65 }65 }@@ -74,11 +74,11 @@ public function postUsers(Request $request): JsonResponse74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);757576if (! $newUser instanceof User) {76if (! $newUser instanceof User) {77-return (new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed'))77+return new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed')78 ->getResponse();78 ->getResponse();79 }79 }808081-return (new CoreUser())81+return new CoreUser()82 ->createFromUser($newUser)82 ->createFromUser($newUser)83 ->setExternalId($requestDTO->getUserName())83 ->setExternalId($requestDTO->getUserName())84 ->setHttpCode(Constants::HTTP_CREATED)84 ->setHttpCode(Constants::HTTP_CREATED)@@ -93,22 +93,22 @@ public function putUsers(Request $request, string $id): JsonResponse93$team = $this->getTeamFromRequest($request);93$team = $this->getTeamFromRequest($request);949495if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {95if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {96-return (new Error())->getResponse();96+return new Error()->getResponse();97 }97 }989899-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);99+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);100100101try {101try {102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);103103104-return (new CoreUser())104+return new CoreUser()105 ->createFromUser($user)105 ->createFromUser($user)106 ->setHttpCode(Constants::HTTP_OK)106 ->setHttpCode(Constants::HTTP_OK)107 ->getResponse();107 ->getResponse();108 } catch (Exception $exception) {108 } catch (Exception $exception) {109 Sentry::captureException($exception);109 Sentry::captureException($exception);110110111-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();111+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();112 }112 }113 }113 }114114@@ -117,7 +117,7 @@ public function deleteUser(Request $request, string $id): JsonResponse117$team = $this->getTeamFromRequest($request);117$team = $this->getTeamFromRequest($request);118118119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {120-return (new Error())->getResponse();120+return new Error()->getResponse();121 }121 }122122123$user = $this->scimProvisioning->getUserById($id);123$user = $this->scimProvisioning->getUserById($id);@@ -131,18 +131,18 @@ public function deleteUser(Request $request, string $id): JsonResponse131 ),131 ),132 );132 );133133134-return (new JsonResponse())->setStatusCode(204);134+return new JsonResponse()->setStatusCode(204);135 }135 }136136137public function patchUser(Request $request, string $id): JsonResponse137public function patchUser(Request $request, string $id): JsonResponse138 {138 {139$team = $this->getTeamFromRequest($request);139$team = $this->getTeamFromRequest($request);140140141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {142-return (new Error())->getResponse();142+return new Error()->getResponse();143 }143 }144144145-$requestDTO = (new PatchUser())145+$requestDTO = new PatchUser()146 ->setResourceLocalId($id)146 ->setResourceLocalId($id)147 ->createFromRequestPayload($request);147 ->createFromRequestPayload($request);148148@@ -153,10 +153,10 @@ public function patchUser(Request $request, string $id): JsonResponse153 } catch (Exception $e) {153 } catch (Exception $e) {154 Sentry::captureException($e);154 Sentry::captureException($e);155155156-return (new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed'))->getResponse();156+return new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed')->getResponse();157 }157 }158158159-return (new CoreUser())159+return new CoreUser()160 ->createFromUser($user)160 ->createFromUser($user)161 ->setHttpCode(Constants::HTTP_OK)161 ->setHttpCode(Constants::HTTP_OK)162 ->getResponse();162 ->getResponse();@@ -167,16 +167,16 @@ public function getUser(Request $request, string $id): JsonResponse167$team = $this->getTeamFromRequest($request);167$team = $this->getTeamFromRequest($request);168168169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {170-return (new Error())->getResponse();170+return new Error()->getResponse();171 }171 }172172173$user = $this->scimProvisioning->getUserById($id);173$user = $this->scimProvisioning->getUserById($id);174174175if (! $team->isSame($user->getTeam())) {175if (! $team->isSame($user->getTeam())) {176-return (new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.'))->getResponse();176+return new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.')->getResponse();177 }177 }178178179-return (new CoreUser())179+return new CoreUser()180 ->setHttpCode(Constants::HTTP_OK)180 ->setHttpCode(Constants::HTTP_OK)181 ->createFromUser($user)181 ->createFromUser($user)182 ->getResponse();182 ->getResponse();@@ -186,20 +186,20 @@ public function getUsersByQuery(Request $request): JsonResponse186 {186 {187$team = $this->getTeamFromRequest($request);187$team = $this->getTeamFromRequest($request);188188189-$requestDto = (new GetUserByQuery())->createFromRequestPayload($request);189+$requestDto = new GetUserByQuery()->createFromRequestPayload($request);190190191try {191try {192$resultsQuery = $this->scimProvisioning192$resultsQuery = $this->scimProvisioning193 ->translateQueryStringsToUserModelQuery($requestDto, $team);193 ->translateQueryStringsToUserModelQuery($requestDto, $team);194 } catch (Exception $exception) {194 } catch (Exception $exception) {195-return (new ListResponse())->createEmpty()->getResponse();195+return new ListResponse()->createEmpty()->getResponse();196 }196 }197197198$resultsQuery198$resultsQuery199 ->limit($requestDto->getCount())199 ->limit($requestDto->getCount())200 ->offset($requestDto->getStartIndex() - 1);200 ->offset($requestDto->getStartIndex() - 1);201201202-return (new ListResponse())202+return new ListResponse()203 ->setHttpCode(Constants::HTTP_OK)203 ->setHttpCode(Constants::HTTP_OK)204 ->setStartIndex($requestDto->getStartIndex())204 ->setStartIndex($requestDto->getStartIndex())205 ->createFromCollection($resultsQuery->get())205 ->createFromCollection($resultsQuery->get())@@ -210,15 +210,15 @@ public function postGroups(Request $request): JsonResponse210 {210 {211$team = $this->getTeamFromRequest($request);211$team = $this->getTeamFromRequest($request);212212213-$requestDto = (new CoreGroupRequest())->createFromRequestPayload($request);213+$requestDto = new CoreGroupRequest()->createFromRequestPayload($request);214214215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);216216217if (! $group instanceof Group) {217if (! $group instanceof Group) {218-return (new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed'))->getResponse();218+return new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed')->getResponse();219 }219 }220220221-$response = (new CoreGroup())->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();221+$response = new CoreGroup()->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();222222223return $response;223return $response;224 }224 }@@ -228,22 +228,22 @@ public function putGroups(Request $request, string $id): JsonResponse228$team = $this->getTeamFromRequest($request);228$team = $this->getTeamFromRequest($request);229229230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {231-return (new Error())->getResponse();231+return new Error()->getResponse();232 }232 }233233234-$requestDTO = (new CoreGroupRequest())->createFromRequestPayload($request);234+$requestDTO = new CoreGroupRequest()->createFromRequestPayload($request);235235236try {236try {237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);238238239-return (new CoreGroup())239+return new CoreGroup()240 ->createFromGroup($group)240 ->createFromGroup($group)241 ->setHttpCode(Constants::HTTP_OK)241 ->setHttpCode(Constants::HTTP_OK)242 ->getResponse();242 ->getResponse();243 } catch (Exception $exception) {243 } catch (Exception $exception) {244 Sentry::captureException($exception);244 Sentry::captureException($exception);245245246-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();246+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();247 }247 }248 }248 }249249@@ -252,12 +252,12 @@ public function getGroup(Request $request, string $id): JsonResponse252$team = $this->getTeamFromRequest($request);252$team = $this->getTeamFromRequest($request);253253254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {255-return (new Error())->getResponse();255+return new Error()->getResponse();256 }256 }257257258$group = $this->scimProvisioning->getGroupById($id);258$group = $this->scimProvisioning->getGroupById($id);259259260-return (new CoreGroup())260+return new CoreGroup()261 ->excludeAttributes($request)261 ->excludeAttributes($request)262 ->setHttpCode(Constants::HTTP_OK)262 ->setHttpCode(Constants::HTTP_OK)263 ->createFromGroup($group)263 ->createFromGroup($group)@@ -268,19 +268,19 @@ public function getGroupByQuery(Request $request): JsonResponse268 {268 {269$team = $this->getTeamFromRequest($request);269$team = $this->getTeamFromRequest($request);270270271-$dto = (new GetGroupByQuery())->createFromRequestPayload($request);271+$dto = new GetGroupByQuery()->createFromRequestPayload($request);272272273try {273try {274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);275 } catch (Exception $exception) {275 } catch (Exception $exception) {276-return (new ListResponse())->createEmpty()->getResponse();276+return new ListResponse()->createEmpty()->getResponse();277 }277 }278278279$groupsQuery279$groupsQuery280 ->limit($dto->getCount())280 ->limit($dto->getCount())281 ->offset($dto->getStartIndex() - 1);281 ->offset($dto->getStartIndex() - 1);282282283-return (new ListResponse())283+return new ListResponse()284 ->setHttpCode(Constants::HTTP_OK)284 ->setHttpCode(Constants::HTTP_OK)285 ->setStartIndex($dto->getStartIndex())285 ->setStartIndex($dto->getStartIndex())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())@@ -292,30 +292,30 @@ public function patchGroup(Request $request, $id): JsonResponse292$team = $this->getTeamFromRequest($request);292$team = $this->getTeamFromRequest($request);293293294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {295-return (new Error())->getResponse();295+return new Error()->getResponse();296 }296 }297297298-$dto = (new PatchGroup())->createFromRequestPayload($request);298+$dto = new PatchGroup()->createFromRequestPayload($request);299299300$group = Group::uuid($id);300$group = Group::uuid($id);301301302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);303303304-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);304+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);305 }305 }306306307public function deleteGroup(Request $request, $id): JsonResponse307public function deleteGroup(Request $request, $id): JsonResponse308 {308 {309$team = $this->getTeamFromRequest($request);309$team = $this->getTeamFromRequest($request);310310311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {312-return (new Error())->getResponse();312+return new Error()->getResponse();313 }313 }314314315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {316-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);316+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);317 } else {317 } else {318-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();318+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();319 }319 }320 }320 }321321</selection>” selected. Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
You said
I’m on page “<tabTitle>JY-18091 | Update composer to support php 8.5 by n</tabTitle>” with “<selection>@@ -40,15 +40,15 @@ public function postUsers(Request $request): JsonResponse40 {40 {41$team = $this->getTeamFromRequest($request);41$team = $this->getTeamFromRequest($request);424243-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);43+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);444445if ($requestDTO->getPrimaryPhoneNumber() !== null) {45if ($requestDTO->getPrimaryPhoneNumber() !== null) {46$user = $this->userRepository->findByPhone(46$user = $this->userRepository->findByPhone(47 phone: $requestDTO->getPrimaryPhoneNumber(),47 phone: $requestDTO->getPrimaryPhoneNumber(),48 );48 );494950if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {50if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {51-return (new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists'))51+return new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists')52 ->getResponse();52 ->getResponse();53 }53 }54 }54 }@@ -59,7 +59,7 @@ public function postUsers(Request $request): JsonResponse59 );59 );606061if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {61if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {62-return (new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists'))62+return new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists')63 ->getResponse();63 ->getResponse();64 }64 }65 }65 }@@ -74,11 +74,11 @@ public function postUsers(Request $request): JsonResponse74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);757576if (! $newUser instanceof User) {76if (! $newUser instanceof User) {77-return (new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed'))77+return new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed')78 ->getResponse();78 ->getResponse();79 }79 }808081-return (new CoreUser())81+return new CoreUser()82 ->createFromUser($newUser)82 ->createFromUser($newUser)83 ->setExternalId($requestDTO->getUserName())83 ->setExternalId($requestDTO->getUserName())84 ->setHttpCode(Constants::HTTP_CREATED)84 ->setHttpCode(Constants::HTTP_CREATED)@@ -93,22 +93,22 @@ public function putUsers(Request $request, string $id): JsonResponse93$team = $this->getTeamFromRequest($request);93$team = $this->getTeamFromRequest($request);949495if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {95if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {96-return (new Error())->getResponse();96+return new Error()->getResponse();97 }97 }989899-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);99+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);100100101try {101try {102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);103103104-return (new CoreUser())104+return new CoreUser()105 ->createFromUser($user)105 ->createFromUser($user)106 ->setHttpCode(Constants::HTTP_OK)106 ->setHttpCode(Constants::HTTP_OK)107 ->getResponse();107 ->getResponse();108 } catch (Exception $exception) {108 } catch (Exception $exception) {109 Sentry::captureException($exception);109 Sentry::captureException($exception);110110111-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();111+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();112 }112 }113 }113 }114114@@ -117,7 +117,7 @@ public function deleteUser(Request $request, string $id): JsonResponse117$team = $this->getTeamFromRequest($request);117$team = $this->getTeamFromRequest($request);118118119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {120-return (new Error())->getResponse();120+return new Error()->getResponse();121 }121 }122122123$user = $this->scimProvisioning->getUserById($id);123$user = $this->scimProvisioning->getUserById($id);@@ -131,18 +131,18 @@ public function deleteUser(Request $request, string $id): JsonResponse131 ),131 ),132 );132 );133133134-return (new JsonResponse())->setStatusCode(204);134+return new JsonResponse()->setStatusCode(204);135 }135 }136136137public function patchUser(Request $request, string $id): JsonResponse137public function patchUser(Request $request, string $id): JsonResponse138 {138 {139$team = $this->getTeamFromRequest($request);139$team = $this->getTeamFromRequest($request);140140141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {142-return (new Error())->getResponse();142+return new Error()->getResponse();143 }143 }144144145-$requestDTO = (new PatchUser())145+$requestDTO = new PatchUser()146 ->setResourceLocalId($id)146 ->setResourceLocalId($id)147 ->createFromRequestPayload($request);147 ->createFromRequestPayload($request);148148@@ -153,10 +153,10 @@ public function patchUser(Request $request, string $id): JsonResponse153 } catch (Exception $e) {153 } catch (Exception $e) {154 Sentry::captureException($e);154 Sentry::captureException($e);155155156-return (new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed'))->getResponse();156+return new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed')->getResponse();157 }157 }158158159-return (new CoreUser())159+return new CoreUser()160 ->createFromUser($user)160 ->createFromUser($user)161 ->setHttpCode(Constants::HTTP_OK)161 ->setHttpCode(Constants::HTTP_OK)162 ->getResponse();162 ->getResponse();@@ -167,16 +167,16 @@ public function getUser(Request $request, string $id): JsonResponse167$team = $this->getTeamFromRequest($request);167$team = $this->getTeamFromRequest($request);168168169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {170-return (new Error())->getResponse();170+return new Error()->getResponse();171 }171 }172172173$user = $this->scimProvisioning->getUserById($id);173$user = $this->scimProvisioning->getUserById($id);174174175if (! $team->isSame($user->getTeam())) {175if (! $team->isSame($user->getTeam())) {176-return (new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.'))->getResponse();176+return new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.')->getResponse();177 }177 }178178179-return (new CoreUser())179+return new CoreUser()180 ->setHttpCode(Constants::HTTP_OK)180 ->setHttpCode(Constants::HTTP_OK)181 ->createFromUser($user)181 ->createFromUser($user)182 ->getResponse();182 ->getResponse();@@ -186,20 +186,20 @@ public function getUsersByQuery(Request $request): JsonResponse186 {186 {187$team = $this->getTeamFromRequest($request);187$team = $this->getTeamFromRequest($request);188188189-$requestDto = (new GetUserByQuery())->createFromRequestPayload($request);189+$requestDto = new GetUserByQuery()->createFromRequestPayload($request);190190191try {191try {192$resultsQuery = $this->scimProvisioning192$resultsQuery = $this->scimProvisioning193 ->translateQueryStringsToUserModelQuery($requestDto, $team);193 ->translateQueryStringsToUserModelQuery($requestDto, $team);194 } catch (Exception $exception) {194 } catch (Exception $exception) {195-return (new ListResponse())->createEmpty()->getResponse();195+return new ListResponse()->createEmpty()->getResponse();196 }196 }197197198$resultsQuery198$resultsQuery199 ->limit($requestDto->getCount())199 ->limit($requestDto->getCount())200 ->offset($requestDto->getStartIndex() - 1);200 ->offset($requestDto->getStartIndex() - 1);201201202-return (new ListResponse())202+return new ListResponse()203 ->setHttpCode(Constants::HTTP_OK)203 ->setHttpCode(Constants::HTTP_OK)204 ->setStartIndex($requestDto->getStartIndex())204 ->setStartIndex($requestDto->getStartIndex())205 ->createFromCollection($resultsQuery->get())205 ->createFromCollection($resultsQuery->get())@@ -210,15 +210,15 @@ public function postGroups(Request $request): JsonResponse210 {210 {211$team = $this->getTeamFromRequest($request);211$team = $this->getTeamFromRequest($request);212212213-$requestDto = (new CoreGroupRequest())->createFromRequestPayload($request);213+$requestDto = new CoreGroupRequest()->createFromRequestPayload($request);214214215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);216216217if (! $group instanceof Group) {217if (! $group instanceof Group) {218-return (new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed'))->getResponse();218+return new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed')->getResponse();219 }219 }220220221-$response = (new CoreGroup())->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();221+$response = new CoreGroup()->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();222222223return $response;223return $response;224 }224 }@@ -228,22 +228,22 @@ public function putGroups(Request $request, string $id): JsonResponse228$team = $this->getTeamFromRequest($request);228$team = $this->getTeamFromRequest($request);229229230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {231-return (new Error())->getResponse();231+return new Error()->getResponse();232 }232 }233233234-$requestDTO = (new CoreGroupRequest())->createFromRequestPayload($request);234+$requestDTO = new CoreGroupRequest()->createFromRequestPayload($request);235235236try {236try {237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);238238239-return (new CoreGroup())239+return new CoreGroup()240 ->createFromGroup($group)240 ->createFromGroup($group)241 ->setHttpCode(Constants::HTTP_OK)241 ->setHttpCode(Constants::HTTP_OK)242 ->getResponse();242 ->getResponse();243 } catch (Exception $exception) {243 } catch (Exception $exception) {244 Sentry::captureException($exception);244 Sentry::captureException($exception);245245246-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();246+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();247 }247 }248 }248 }249249@@ -252,12 +252,12 @@ public function getGroup(Request $request, string $id): JsonResponse252$team = $this->getTeamFromRequest($request);252$team = $this->getTeamFromRequest($request);253253254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {255-return (new Error())->getResponse();255+return new Error()->getResponse();256 }256 }257257258$group = $this->scimProvisioning->getGroupById($id);258$group = $this->scimProvisioning->getGroupById($id);259259260-return (new CoreGroup())260+return new CoreGroup()261 ->excludeAttributes($request)261 ->excludeAttributes($request)262 ->setHttpCode(Constants::HTTP_OK)262 ->setHttpCode(Constants::HTTP_OK)263 ->createFromGroup($group)263 ->createFromGroup($group)@@ -268,19 +268,19 @@ public function getGroupByQuery(Request $request): JsonResponse268 {268 {269$team = $this->getTeamFromRequest($request);269$team = $this->getTeamFromRequest($request);270270271-$dto = (new GetGroupByQuery())->createFromRequestPayload($request);271+$dto = new GetGroupByQuery()->createFromRequestPayload($request);272272273try {273try {274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);275 } catch (Exception $exception) {275 } catch (Exception $exception) {276-return (new ListResponse())->createEmpty()->getResponse();276+return new ListResponse()->createEmpty()->getResponse();277 }277 }278278279$groupsQuery279$groupsQuery280 ->limit($dto->getCount())280 ->limit($dto->getCount())281 ->offset($dto->getStartIndex() - 1);281 ->offset($dto->getStartIndex() - 1);282282283-return (new ListResponse())283+return new ListResponse()284 ->setHttpCode(Constants::HTTP_OK)284 ->setHttpCode(Constants::HTTP_OK)285 ->setStartIndex($dto->getStartIndex())285 ->setStartIndex($dto->getStartIndex())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())@@ -292,30 +292,30 @@ public function patchGroup(Request $request, $id): JsonResponse292$team = $this->getTeamFromRequest($request);292$team = $this->getTeamFromRequest($request);293293294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {295-return (new Error())->getResponse();295+return new Error()->getResponse();296 }296 }297297298-$dto = (new PatchGroup())->createFromRequestPayload($request);298+$dto = new PatchGroup()->createFromRequestPayload($request);299299300$group = Group::uuid($id);300$group = Group::uuid($id);301301302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);303303304-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);304+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);305 }305 }306306307public function deleteGroup(Request $request, $id): JsonResponse307public function deleteGroup(Request $request, $id): JsonResponse308 {308 {309$team = $this->getTeamFromRequest($request);309$team = $this->getTeamFromRequest($request);310310311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {312-return (new Error())->getResponse();312+return new Error()->getResponse();313 }313 }314314315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {316-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);316+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);317 } else {317 } else {318-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();318+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();319 }319 }320 }320 }321321</selection>” selected.
Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
Expand
Listen
Gemini said
Gemini said
The selected code changes represent a mechanical refactoring of a PHP controller to align with modern syntax standards, likely as part of the upgrade to
PHP 8.5
.
Core Change: Member Access on Instantiation
Core Change: Member Access on Instantiation
The primary modification across the entire file is the removal of unnecessary parentheses when performing member access (method chaining) on a newly instantiated object.
Pattern:
(new ClassName())->method()
is simplified to
new ClassName()->method()
.
Reasoning:
Since PHP 8.0+, the parser handles member access on new expressions without requiring the wrapping parentheses for disambiguation.
Affected Components
Affected Components
The refactoring impacts various response and DTO (Data Transfer Object) initializations within the following SCIM (System for Cross-domain Identity Management) endpoints:
User Management:
postUsers
: Simplified instantiation of
CoreUserRequest
,
Error
, and
CoreUser
.
putUsers
/
patchUser
/
getUser
: Updated
Error
,
CoreUser
, and
PatchUser
calls.
getUsersByQuery
: Updated
GetUserByQuery
and
ListResponse
.
deleteUser
: Updated
JsonResponse
and
Error
.
Group Management:
postGroups
: Simplified
CoreGroupRequest
,
Error
, and
CoreGroup
.
putGroups
/
getGroup
: Updated
CoreGroupRequest
and
Error
.
getGroupByQuery
: Updated
GetGroupByQuery
and
ListResponse
.
patchGroup
/
deleteGroup
: Updated
PatchGroup
,
JsonResponse
, and
Error
.
Technical Impact
Technical Impact
No Functional Change:
The logic for user provisioning, group updates, and error handling remains identical.
Code Cleanliness:
Reduces visual noise and adopts the more concise syntax permitted in recent PHP versions.
Good response
Bad response
Share & export
Copy
Show more options
Copy prompt
Edit
You said are there soem potential issues?
You said
are there soem potential issues?
Listen
Gemini said
Gemini said
While this refactoring is syntactically correct for modern PHP, there are a few practical and technical "gotchas" to consider when moving from
(new Class())->method()
to
new Class()->method()
.
1. Language Compatibility (Backward Compatibility)
1. Language Compatibility (Backward Compatibility)
The biggest risk is the PHP version itself.
PHP < 8.0:
This change will cause a
Parse Error
. Prior to PHP 8.0, the parser could not handle member access on a
new
expression without parentheses.
The "Trap":
If your production environment is updated to PHP 8.5 but a developer's local environment or a specific CI runner is still on PHP 7.4, the code will break immediately.
2. Operator Precedence and Readability
2. Operator Precedence and Readability
While the engine now understands this syntax, human developers might find it slightly more ambiguous at a glance.
Visual Grouping:
The parentheses
(new Class())
act as a visual "container," making it clear that the instantiation happens first. Without them, in very complex one-liners, it can take a fraction of a second longer for a human to parse the execution order.
Consistency:
If only half the codebase is updated, the inconsistency can lead to "style drift," where different developers follow different patterns, making the code feel disorganized.
3. Tooling and IDE Support
3. Tooling and IDE Support
Static Analysis:
Older versions of static analysis tools (like PHPStan or Psalm) or older IDE versions might flag the new syntax as an error or "low-quality code" if they aren't configured for PHP 8.0+.
Automated Refactoring:
If this change was done via an automated tool (like Rector), it is usually safe. However, if done via "Find and Replace," there is a risk of accidentally stripping parentheses from complex expressions where they might still be required for logic.
4. Error Reporting Sensitivity
4. Error Reporting Sensitivity
In some edge cases, if the constructor of the class throws an exception:
The stack trace remains the same, but when debugging "on the fly" in some older debugger clients, the lack of grouping can occasionally make it slightly harder to evaluate the object state
before
the method call in a watch window.
Summary of Risk Levels
Summary of Risk Levels
Risk Factor
Level
Mitigation
Production Crash
High
Ensure
platform
in
composer.json
is set to
8.0
or higher.
Developer Confusion
Low
Update team style guides to reflect PHP 8.x standards.
Linting Errors
Medium
Update CI/CD linting rules to support modern PHP syntax.
Risk Factor
Production Crash
Developer Confusion
Linting Errors
Level
High
Low
Medium
Mitigation
Ensure
platform
in
composer.json
is set to
8.0
or higher.
Update team style guides to reflect PHP 8.x standards.
Update CI/CD linting rules to support modern PHP syntax.
Copy table
Are you planning to deploy this to an environment where you are certain the PHP version is strictly 8.0 or higher?
Good response
Bad response
Redo
Share & export
Copy
Show more options
Enter a prompt for Gemini
encrypted
Enter a prompt for Gemini
encrypted
Open upload file menu
Tools
Open mode picker
Fast
Microphone
Send message
Your Jiminny chats aren’t used to improve our models. Gemini is AI. It can make mistakes, so double check it.
Your privacy & Gemini Opens in a new window
Your privacy & Gemini
Opens in a new window
Summarize page
Summarize page
Skip to content
Skip to content...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
42889
|
|
42924
|
Unnamed Group
Platform Sprint 4 Q2 - Platform Team Unnamed Group
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Usage | Windsurf
Usage | Windsurf
Unnamed Group
[SRD-6848] Sidekick SMS issue - Jira
[SRD-6848] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
Unnamed Group
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Unnamed Group
[SRD-6853] Moxso - Potential deal stages bug - Jira
[SRD-6853] Moxso - Potential deal stages bug - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
Close tab
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Useful commands - Engineering - Confluence
Useful commands - Engineering - Confluence
Dev Tools - Elastic
Dev Tools - Elastic
Jiminny
Jiminny
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
Unnamed Group
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
Pipedrive Developers Corner | Pipedrive API sandbox
Pipedrive Developers Corner | Pipedrive API sandbox
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
pipedrive/client-php: Pipedrive API client for PHP
pipedrive/client-php: Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
Code search results
Code search results
Jiminny
Jiminny
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
New Tab
Customize sidebar
Close Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AI Chat settings
Close
WORK, Google Account: [EMAIL]
Main menu
New Chat
Open menu for conversation actions.
Conversation with Gemini
Conversation with Gemini
Copy prompt
You said I’m on page “<tabTitle>JY-18091 | Update composer to support php 8.5 by n</tabTitle>” with “<selection>@@ -40,15 +40,15 @@ public function postUsers(Request $request): JsonResponse40 {40 {41$team = $this->getTeamFromRequest($request);41$team = $this->getTeamFromRequest($request);424243-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);43+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);444445if ($requestDTO->getPrimaryPhoneNumber() !== null) {45if ($requestDTO->getPrimaryPhoneNumber() !== null) {46$user = $this->userRepository->findByPhone(46$user = $this->userRepository->findByPhone(47 phone: $requestDTO->getPrimaryPhoneNumber(),47 phone: $requestDTO->getPrimaryPhoneNumber(),48 );48 );494950if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {50if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {51-return (new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists'))51+return new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists')52 ->getResponse();52 ->getResponse();53 }53 }54 }54 }@@ -59,7 +59,7 @@ public function postUsers(Request $request): JsonResponse59 );59 );606061if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {61if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {62-return (new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists'))62+return new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists')63 ->getResponse();63 ->getResponse();64 }64 }65 }65 }@@ -74,11 +74,11 @@ public function postUsers(Request $request): JsonResponse74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);757576if (! $newUser instanceof User) {76if (! $newUser instanceof User) {77-return (new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed'))77+return new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed')78 ->getResponse();78 ->getResponse();79 }79 }808081-return (new CoreUser())81+return new CoreUser()82 ->createFromUser($newUser)82 ->createFromUser($newUser)83 ->setExternalId($requestDTO->getUserName())83 ->setExternalId($requestDTO->getUserName())84 ->setHttpCode(Constants::HTTP_CREATED)84 ->setHttpCode(Constants::HTTP_CREATED)@@ -93,22 +93,22 @@ public function putUsers(Request $request, string $id): JsonResponse93$team = $this->getTeamFromRequest($request);93$team = $this->getTeamFromRequest($request);949495if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {95if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {96-return (new Error())->getResponse();96+return new Error()->getResponse();97 }97 }989899-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);99+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);100100101try {101try {102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);103103104-return (new CoreUser())104+return new CoreUser()105 ->createFromUser($user)105 ->createFromUser($user)106 ->setHttpCode(Constants::HTTP_OK)106 ->setHttpCode(Constants::HTTP_OK)107 ->getResponse();107 ->getResponse();108 } catch (Exception $exception) {108 } catch (Exception $exception) {109 Sentry::captureException($exception);109 Sentry::captureException($exception);110110111-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();111+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();112 }112 }113 }113 }114114@@ -117,7 +117,7 @@ public function deleteUser(Request $request, string $id): JsonResponse117$team = $this->getTeamFromRequest($request);117$team = $this->getTeamFromRequest($request);118118119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {120-return (new Error())->getResponse();120+return new Error()->getResponse();121 }121 }122122123$user = $this->scimProvisioning->getUserById($id);123$user = $this->scimProvisioning->getUserById($id);@@ -131,18 +131,18 @@ public function deleteUser(Request $request, string $id): JsonResponse131 ),131 ),132 );132 );133133134-return (new JsonResponse())->setStatusCode(204);134+return new JsonResponse()->setStatusCode(204);135 }135 }136136137public function patchUser(Request $request, string $id): JsonResponse137public function patchUser(Request $request, string $id): JsonResponse138 {138 {139$team = $this->getTeamFromRequest($request);139$team = $this->getTeamFromRequest($request);140140141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {142-return (new Error())->getResponse();142+return new Error()->getResponse();143 }143 }144144145-$requestDTO = (new PatchUser())145+$requestDTO = new PatchUser()146 ->setResourceLocalId($id)146 ->setResourceLocalId($id)147 ->createFromRequestPayload($request);147 ->createFromRequestPayload($request);148148@@ -153,10 +153,10 @@ public function patchUser(Request $request, string $id): JsonResponse153 } catch (Exception $e) {153 } catch (Exception $e) {154 Sentry::captureException($e);154 Sentry::captureException($e);155155156-return (new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed'))->getResponse();156+return new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed')->getResponse();157 }157 }158158159-return (new CoreUser())159+return new CoreUser()160 ->createFromUser($user)160 ->createFromUser($user)161 ->setHttpCode(Constants::HTTP_OK)161 ->setHttpCode(Constants::HTTP_OK)162 ->getResponse();162 ->getResponse();@@ -167,16 +167,16 @@ public function getUser(Request $request, string $id): JsonResponse167$team = $this->getTeamFromRequest($request);167$team = $this->getTeamFromRequest($request);168168169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {170-return (new Error())->getResponse();170+return new Error()->getResponse();171 }171 }172172173$user = $this->scimProvisioning->getUserById($id);173$user = $this->scimProvisioning->getUserById($id);174174175if (! $team->isSame($user->getTeam())) {175if (! $team->isSame($user->getTeam())) {176-return (new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.'))->getResponse();176+return new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.')->getResponse();177 }177 }178178179-return (new CoreUser())179+return new CoreUser()180 ->setHttpCode(Constants::HTTP_OK)180 ->setHttpCode(Constants::HTTP_OK)181 ->createFromUser($user)181 ->createFromUser($user)182 ->getResponse();182 ->getResponse();@@ -186,20 +186,20 @@ public function getUsersByQuery(Request $request): JsonResponse186 {186 {187$team = $this->getTeamFromRequest($request);187$team = $this->getTeamFromRequest($request);188188189-$requestDto = (new GetUserByQuery())->createFromRequestPayload($request);189+$requestDto = new GetUserByQuery()->createFromRequestPayload($request);190190191try {191try {192$resultsQuery = $this->scimProvisioning192$resultsQuery = $this->scimProvisioning193 ->translateQueryStringsToUserModelQuery($requestDto, $team);193 ->translateQueryStringsToUserModelQuery($requestDto, $team);194 } catch (Exception $exception) {194 } catch (Exception $exception) {195-return (new ListResponse())->createEmpty()->getResponse();195+return new ListResponse()->createEmpty()->getResponse();196 }196 }197197198$resultsQuery198$resultsQuery199 ->limit($requestDto->getCount())199 ->limit($requestDto->getCount())200 ->offset($requestDto->getStartIndex() - 1);200 ->offset($requestDto->getStartIndex() - 1);201201202-return (new ListResponse())202+return new ListResponse()203 ->setHttpCode(Constants::HTTP_OK)203 ->setHttpCode(Constants::HTTP_OK)204 ->setStartIndex($requestDto->getStartIndex())204 ->setStartIndex($requestDto->getStartIndex())205 ->createFromCollection($resultsQuery->get())205 ->createFromCollection($resultsQuery->get())@@ -210,15 +210,15 @@ public function postGroups(Request $request): JsonResponse210 {210 {211$team = $this->getTeamFromRequest($request);211$team = $this->getTeamFromRequest($request);212212213-$requestDto = (new CoreGroupRequest())->createFromRequestPayload($request);213+$requestDto = new CoreGroupRequest()->createFromRequestPayload($request);214214215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);216216217if (! $group instanceof Group) {217if (! $group instanceof Group) {218-return (new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed'))->getResponse();218+return new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed')->getResponse();219 }219 }220220221-$response = (new CoreGroup())->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();221+$response = new CoreGroup()->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();222222223return $response;223return $response;224 }224 }@@ -228,22 +228,22 @@ public function putGroups(Request $request, string $id): JsonResponse228$team = $this->getTeamFromRequest($request);228$team = $this->getTeamFromRequest($request);229229230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {231-return (new Error())->getResponse();231+return new Error()->getResponse();232 }232 }233233234-$requestDTO = (new CoreGroupRequest())->createFromRequestPayload($request);234+$requestDTO = new CoreGroupRequest()->createFromRequestPayload($request);235235236try {236try {237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);238238239-return (new CoreGroup())239+return new CoreGroup()240 ->createFromGroup($group)240 ->createFromGroup($group)241 ->setHttpCode(Constants::HTTP_OK)241 ->setHttpCode(Constants::HTTP_OK)242 ->getResponse();242 ->getResponse();243 } catch (Exception $exception) {243 } catch (Exception $exception) {244 Sentry::captureException($exception);244 Sentry::captureException($exception);245245246-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();246+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();247 }247 }248 }248 }249249@@ -252,12 +252,12 @@ public function getGroup(Request $request, string $id): JsonResponse252$team = $this->getTeamFromRequest($request);252$team = $this->getTeamFromRequest($request);253253254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {255-return (new Error())->getResponse();255+return new Error()->getResponse();256 }256 }257257258$group = $this->scimProvisioning->getGroupById($id);258$group = $this->scimProvisioning->getGroupById($id);259259260-return (new CoreGroup())260+return new CoreGroup()261 ->excludeAttributes($request)261 ->excludeAttributes($request)262 ->setHttpCode(Constants::HTTP_OK)262 ->setHttpCode(Constants::HTTP_OK)263 ->createFromGroup($group)263 ->createFromGroup($group)@@ -268,19 +268,19 @@ public function getGroupByQuery(Request $request): JsonResponse268 {268 {269$team = $this->getTeamFromRequest($request);269$team = $this->getTeamFromRequest($request);270270271-$dto = (new GetGroupByQuery())->createFromRequestPayload($request);271+$dto = new GetGroupByQuery()->createFromRequestPayload($request);272272273try {273try {274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);275 } catch (Exception $exception) {275 } catch (Exception $exception) {276-return (new ListResponse())->createEmpty()->getResponse();276+return new ListResponse()->createEmpty()->getResponse();277 }277 }278278279$groupsQuery279$groupsQuery280 ->limit($dto->getCount())280 ->limit($dto->getCount())281 ->offset($dto->getStartIndex() - 1);281 ->offset($dto->getStartIndex() - 1);282282283-return (new ListResponse())283+return new ListResponse()284 ->setHttpCode(Constants::HTTP_OK)284 ->setHttpCode(Constants::HTTP_OK)285 ->setStartIndex($dto->getStartIndex())285 ->setStartIndex($dto->getStartIndex())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())@@ -292,30 +292,30 @@ public function patchGroup(Request $request, $id): JsonResponse292$team = $this->getTeamFromRequest($request);292$team = $this->getTeamFromRequest($request);293293294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {295-return (new Error())->getResponse();295+return new Error()->getResponse();296 }296 }297297298-$dto = (new PatchGroup())->createFromRequestPayload($request);298+$dto = new PatchGroup()->createFromRequestPayload($request);299299300$group = Group::uuid($id);300$group = Group::uuid($id);301301302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);303303304-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);304+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);305 }305 }306306307public function deleteGroup(Request $request, $id): JsonResponse307public function deleteGroup(Request $request, $id): JsonResponse308 {308 {309$team = $this->getTeamFromRequest($request);309$team = $this->getTeamFromRequest($request);310310311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {312-return (new Error())->getResponse();312+return new Error()->getResponse();313 }313 }314314315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {316-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);316+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);317 } else {317 } else {318-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();318+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();319 }319 }320 }320 }321321</selection>” selected. Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
You said
I’m on page “<tabTitle>JY-18091 | Update composer to support php 8.5 by n</tabTitle>” with “<selection>@@ -40,15 +40,15 @@ public function postUsers(Request $request): JsonResponse40 {40 {41$team = $this->getTeamFromRequest($request);41$team = $this->getTeamFromRequest($request);424243-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);43+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);444445if ($requestDTO->getPrimaryPhoneNumber() !== null) {45if ($requestDTO->getPrimaryPhoneNumber() !== null) {46$user = $this->userRepository->findByPhone(46$user = $this->userRepository->findByPhone(47 phone: $requestDTO->getPrimaryPhoneNumber(),47 phone: $requestDTO->getPrimaryPhoneNumber(),48 );48 );494950if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {50if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {51-return (new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists'))51+return new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists')52 ->getResponse();52 ->getResponse();53 }53 }54 }54 }@@ -59,7 +59,7 @@ public function postUsers(Request $request): JsonResponse59 );59 );606061if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {61if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {62-return (new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists'))62+return new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists')63 ->getResponse();63 ->getResponse();64 }64 }65 }65 }@@ -74,11 +74,11 @@ public function postUsers(Request $request): JsonResponse74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);757576if (! $newUser instanceof User) {76if (! $newUser instanceof User) {77-return (new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed'))77+return new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed')78 ->getResponse();78 ->getResponse();79 }79 }808081-return (new CoreUser())81+return new CoreUser()82 ->createFromUser($newUser)82 ->createFromUser($newUser)83 ->setExternalId($requestDTO->getUserName())83 ->setExternalId($requestDTO->getUserName())84 ->setHttpCode(Constants::HTTP_CREATED)84 ->setHttpCode(Constants::HTTP_CREATED)@@ -93,22 +93,22 @@ public function putUsers(Request $request, string $id): JsonResponse93$team = $this->getTeamFromRequest($request);93$team = $this->getTeamFromRequest($request);949495if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {95if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {96-return (new Error())->getResponse();96+return new Error()->getResponse();97 }97 }989899-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);99+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);100100101try {101try {102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);103103104-return (new CoreUser())104+return new CoreUser()105 ->createFromUser($user)105 ->createFromUser($user)106 ->setHttpCode(Constants::HTTP_OK)106 ->setHttpCode(Constants::HTTP_OK)107 ->getResponse();107 ->getResponse();108 } catch (Exception $exception) {108 } catch (Exception $exception) {109 Sentry::captureException($exception);109 Sentry::captureException($exception);110110111-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();111+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();112 }112 }113 }113 }114114@@ -117,7 +117,7 @@ public function deleteUser(Request $request, string $id): JsonResponse117$team = $this->getTeamFromRequest($request);117$team = $this->getTeamFromRequest($request);118118119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {120-return (new Error())->getResponse();120+return new Error()->getResponse();121 }121 }122122123$user = $this->scimProvisioning->getUserById($id);123$user = $this->scimProvisioning->getUserById($id);@@ -131,18 +131,18 @@ public function deleteUser(Request $request, string $id): JsonResponse131 ),131 ),132 );132 );133133134-return (new JsonResponse())->setStatusCode(204);134+return new JsonResponse()->setStatusCode(204);135 }135 }136136137public function patchUser(Request $request, string $id): JsonResponse137public function patchUser(Request $request, string $id): JsonResponse138 {138 {139$team = $this->getTeamFromRequest($request);139$team = $this->getTeamFromRequest($request);140140141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {142-return (new Error())->getResponse();142+return new Error()->getResponse();143 }143 }144144145-$requestDTO = (new PatchUser())145+$requestDTO = new PatchUser()146 ->setResourceLocalId($id)146 ->setResourceLocalId($id)147 ->createFromRequestPayload($request);147 ->createFromRequestPayload($request);148148@@ -153,10 +153,10 @@ public function patchUser(Request $request, string $id): JsonResponse153 } catch (Exception $e) {153 } catch (Exception $e) {154 Sentry::captureException($e);154 Sentry::captureException($e);155155156-return (new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed'))->getResponse();156+return new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed')->getResponse();157 }157 }158158159-return (new CoreUser())159+return new CoreUser()160 ->createFromUser($user)160 ->createFromUser($user)161 ->setHttpCode(Constants::HTTP_OK)161 ->setHttpCode(Constants::HTTP_OK)162 ->getResponse();162 ->getResponse();@@ -167,16 +167,16 @@ public function getUser(Request $request, string $id): JsonResponse167$team = $this->getTeamFromRequest($request);167$team = $this->getTeamFromRequest($request);168168169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {170-return (new Error())->getResponse();170+return new Error()->getResponse();171 }171 }172172173$user = $this->scimProvisioning->getUserById($id);173$user = $this->scimProvisioning->getUserById($id);174174175if (! $team->isSame($user->getTeam())) {175if (! $team->isSame($user->getTeam())) {176-return (new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.'))->getResponse();176+return new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.')->getResponse();177 }177 }178178179-return (new CoreUser())179+return new CoreUser()180 ->setHttpCode(Constants::HTTP_OK)180 ->setHttpCode(Constants::HTTP_OK)181 ->createFromUser($user)181 ->createFromUser($user)182 ->getResponse();182 ->getResponse();@@ -186,20 +186,20 @@ public function getUsersByQuery(Request $request): JsonResponse186 {186 {187$team = $this->getTeamFromRequest($request);187$team = $this->getTeamFromRequest($request);188188189-$requestDto = (new GetUserByQuery())->createFromRequestPayload($request);189+$requestDto = new GetUserByQuery()->createFromRequestPayload($request);190190191try {191try {192$resultsQuery = $this->scimProvisioning192$resultsQuery = $this->scimProvisioning193 ->translateQueryStringsToUserModelQuery($requestDto, $team);193 ->translateQueryStringsToUserModelQuery($requestDto, $team);194 } catch (Exception $exception) {194 } catch (Exception $exception) {195-return (new ListResponse())->createEmpty()->getResponse();195+return new ListResponse()->createEmpty()->getResponse();196 }196 }197197198$resultsQuery198$resultsQuery199 ->limit($requestDto->getCount())199 ->limit($requestDto->getCount())200 ->offset($requestDto->getStartIndex() - 1);200 ->offset($requestDto->getStartIndex() - 1);201201202-return (new ListResponse())202+return new ListResponse()203 ->setHttpCode(Constants::HTTP_OK)203 ->setHttpCode(Constants::HTTP_OK)204 ->setStartIndex($requestDto->getStartIndex())204 ->setStartIndex($requestDto->getStartIndex())205 ->createFromCollection($resultsQuery->get())205 ->createFromCollection($resultsQuery->get())@@ -210,15 +210,15 @@ public function postGroups(Request $request): JsonResponse210 {210 {211$team = $this->getTeamFromRequest($request);211$team = $this->getTeamFromRequest($request);212212213-$requestDto = (new CoreGroupRequest())->createFromRequestPayload($request);213+$requestDto = new CoreGroupRequest()->createFromRequestPayload($request);214214215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);216216217if (! $group instanceof Group) {217if (! $group instanceof Group) {218-return (new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed'))->getResponse();218+return new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed')->getResponse();219 }219 }220220221-$response = (new CoreGroup())->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();221+$response = new CoreGroup()->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();222222223return $response;223return $response;224 }224 }@@ -228,22 +228,22 @@ public function putGroups(Request $request, string $id): JsonResponse228$team = $this->getTeamFromRequest($request);228$team = $this->getTeamFromRequest($request);229229230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {231-return (new Error())->getResponse();231+return new Error()->getResponse();232 }232 }233233234-$requestDTO = (new CoreGroupRequest())->createFromRequestPayload($request);234+$requestDTO = new CoreGroupRequest()->createFromRequestPayload($request);235235236try {236try {237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);238238239-return (new CoreGroup())239+return new CoreGroup()240 ->createFromGroup($group)240 ->createFromGroup($group)241 ->setHttpCode(Constants::HTTP_OK)241 ->setHttpCode(Constants::HTTP_OK)242 ->getResponse();242 ->getResponse();243 } catch (Exception $exception) {243 } catch (Exception $exception) {244 Sentry::captureException($exception);244 Sentry::captureException($exception);245245246-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();246+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();247 }247 }248 }248 }249249@@ -252,12 +252,12 @@ public function getGroup(Request $request, string $id): JsonResponse252$team = $this->getTeamFromRequest($request);252$team = $this->getTeamFromRequest($request);253253254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {255-return (new Error())->getResponse();255+return new Error()->getResponse();256 }256 }257257258$group = $this->scimProvisioning->getGroupById($id);258$group = $this->scimProvisioning->getGroupById($id);259259260-return (new CoreGroup())260+return new CoreGroup()261 ->excludeAttributes($request)261 ->excludeAttributes($request)262 ->setHttpCode(Constants::HTTP_OK)262 ->setHttpCode(Constants::HTTP_OK)263 ->createFromGroup($group)263 ->createFromGroup($group)@@ -268,19 +268,19 @@ public function getGroupByQuery(Request $request): JsonResponse268 {268 {269$team = $this->getTeamFromRequest($request);269$team = $this->getTeamFromRequest($request);270270271-$dto = (new GetGroupByQuery())->createFromRequestPayload($request);271+$dto = new GetGroupByQuery()->createFromRequestPayload($request);272272273try {273try {274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);275 } catch (Exception $exception) {275 } catch (Exception $exception) {276-return (new ListResponse())->createEmpty()->getResponse();276+return new ListResponse()->createEmpty()->getResponse();277 }277 }278278279$groupsQuery279$groupsQuery280 ->limit($dto->getCount())280 ->limit($dto->getCount())281 ->offset($dto->getStartIndex() - 1);281 ->offset($dto->getStartIndex() - 1);282282283-return (new ListResponse())283+return new ListResponse()284 ->setHttpCode(Constants::HTTP_OK)284 ->setHttpCode(Constants::HTTP_OK)285 ->setStartIndex($dto->getStartIndex())285 ->setStartIndex($dto->getStartIndex())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())@@ -292,30 +292,30 @@ public function patchGroup(Request $request, $id): JsonResponse292$team = $this->getTeamFromRequest($request);292$team = $this->getTeamFromRequest($request);293293294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {295-return (new Error())->getResponse();295+return new Error()->getResponse();296 }296 }297297298-$dto = (new PatchGroup())->createFromRequestPayload($request);298+$dto = new PatchGroup()->createFromRequestPayload($request);299299300$group = Group::uuid($id);300$group = Group::uuid($id);301301302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);303303304-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);304+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);305 }305 }306306307public function deleteGroup(Request $request, $id): JsonResponse307public function deleteGroup(Request $request, $id): JsonResponse308 {308 {309$team = $this->getTeamFromRequest($request);309$team = $this->getTeamFromRequest($request);310310311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {312-return (new Error())->getResponse();312+return new Error()->getResponse();313 }313 }314314315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {316-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);316+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);317 } else {317 } else {318-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();318+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();319 }319 }320 }320 }321321</selection>” selected.
Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
Expand
Listen
Gemini said
Gemini said
The selected code changes represent a mechanical refactoring of a PHP controller to align with modern syntax standards, likely as part of the upgrade to
PHP 8.5
.
Core Change: Member Access on Instantiation
Core Change: Member Access on Instantiation
The primary modification across the entire file is the removal of unnecessary parentheses when performing member access (method chaining) on a newly instantiated object.
Pattern:
(new ClassName())->method()
is simplified to
new ClassName()->method()
.
Reasoning:
Since PHP 8.0+, the parser handles member access on new expressions without requiring the wrapping parentheses for disambiguation.
Affected Components
Affected Components
The refactoring impacts various response and DTO (Data Transfer Object) initializations within the following SCIM (System for Cross-domain Identity Management) endpoints:
User Management:
postUsers
: Simplified instantiation of
CoreUserRequest
,
Error
, and
CoreUser
.
putUsers
/
patchUser
/
getUser
: Updated
Error
,
CoreUser
, and
PatchUser
calls.
getUsersByQuery
: Updated
GetUserByQuery
and
ListResponse
.
deleteUser
: Updated
JsonResponse
and
Error
.
Group Management:
postGroups
: Simplified
CoreGroupRequest
,
Error
, and
CoreGroup
.
putGroups
/
getGroup
: Updated
CoreGroupRequest
and
Error
.
getGroupByQuery
: Updated
GetGroupByQuery
and
ListResponse
.
patchGroup
/
deleteGroup
: Updated
PatchGroup
,
JsonResponse
, and
Error
.
Technical Impact
Technical Impact
No Functional Change:
The logic for user provisioning, group updates, and error handling remains identical.
Code Cleanliness:
Reduces visual noise and adopts the more concise syntax permitted in recent PHP versions.
Good response
Bad response
Share & export
Copy
Show more options
Copy prompt
Edit
You said are there soem potential issues?
You said
are there soem potential issues?
Listen
Gemini said...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
42924
|
|
42925
|
Unnamed Group
Platform Sprint 4 Q2 - Platform Team Unnamed Group
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Usage | Windsurf
Usage | Windsurf
Unnamed Group
[SRD-6848] Sidekick SMS issue - Jira
[SRD-6848] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
Unnamed Group
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Unnamed Group
[SRD-6853] Moxso - Potential deal stages bug - Jira
[SRD-6853] Moxso - Potential deal stages bug - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
Close tab
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Useful commands - Engineering - Confluence
Useful commands - Engineering - Confluence
Dev Tools - Elastic
Dev Tools - Elastic
Jiminny
Jiminny
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
Unnamed Group
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
Pipedrive Developers Corner | Pipedrive API sandbox
Pipedrive Developers Corner | Pipedrive API sandbox
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
pipedrive/client-php: Pipedrive API client for PHP
pipedrive/client-php: Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
Code search results
Code search results
Jiminny
Jiminny
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
New Tab
Customize sidebar
Close Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AI Chat settings
Close
WORK, Google Account: [EMAIL]
Main menu
New Chat
Open menu for conversation actions.
Conversation with Gemini
Conversation with Gemini
Copy prompt
You said I’m on page “<tabTitle>JY-18091 | Update composer to support php 8.5 by n</tabTitle>” with “<selection>@@ -40,15 +40,15 @@ public function postUsers(Request $request): JsonResponse40 {40 {41$team = $this->getTeamFromRequest($request);41$team = $this->getTeamFromRequest($request);424243-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);43+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);444445if ($requestDTO->getPrimaryPhoneNumber() !== null) {45if ($requestDTO->getPrimaryPhoneNumber() !== null) {46$user = $this->userRepository->findByPhone(46$user = $this->userRepository->findByPhone(47 phone: $requestDTO->getPrimaryPhoneNumber(),47 phone: $requestDTO->getPrimaryPhoneNumber(),48 );48 );494950if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {50if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {51-return (new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists'))51+return new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists')52 ->getResponse();52 ->getResponse();53 }53 }54 }54 }@@ -59,7 +59,7 @@ public function postUsers(Request $request): JsonResponse59 );59 );606061if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {61if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {62-return (new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists'))62+return new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists')63 ->getResponse();63 ->getResponse();64 }64 }65 }65 }@@ -74,11 +74,11 @@ public function postUsers(Request $request): JsonResponse74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);757576if (! $newUser instanceof User) {76if (! $newUser instanceof User) {77-return (new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed'))77+return new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed')78 ->getResponse();78 ->getResponse();79 }79 }808081-return (new CoreUser())81+return new CoreUser()82 ->createFromUser($newUser)82 ->createFromUser($newUser)83 ->setExternalId($requestDTO->getUserName())83 ->setExternalId($requestDTO->getUserName())84 ->setHttpCode(Constants::HTTP_CREATED)84 ->setHttpCode(Constants::HTTP_CREATED)@@ -93,22 +93,22 @@ public function putUsers(Request $request, string $id): JsonResponse93$team = $this->getTeamFromRequest($request);93$team = $this->getTeamFromRequest($request);949495if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {95if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {96-return (new Error())->getResponse();96+return new Error()->getResponse();97 }97 }989899-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);99+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);100100101try {101try {102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);103103104-return (new CoreUser())104+return new CoreUser()105 ->createFromUser($user)105 ->createFromUser($user)106 ->setHttpCode(Constants::HTTP_OK)106 ->setHttpCode(Constants::HTTP_OK)107 ->getResponse();107 ->getResponse();108 } catch (Exception $exception) {108 } catch (Exception $exception) {109 Sentry::captureException($exception);109 Sentry::captureException($exception);110110111-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();111+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();112 }112 }113 }113 }114114@@ -117,7 +117,7 @@ public function deleteUser(Request $request, string $id): JsonResponse117$team = $this->getTeamFromRequest($request);117$team = $this->getTeamFromRequest($request);118118119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {120-return (new Error())->getResponse();120+return new Error()->getResponse();121 }121 }122122123$user = $this->scimProvisioning->getUserById($id);123$user = $this->scimProvisioning->getUserById($id);@@ -131,18 +131,18 @@ public function deleteUser(Request $request, string $id): JsonResponse131 ),131 ),132 );132 );133133134-return (new JsonResponse())->setStatusCode(204);134+return new JsonResponse()->setStatusCode(204);135 }135 }136136137public function patchUser(Request $request, string $id): JsonResponse137public function patchUser(Request $request, string $id): JsonResponse138 {138 {139$team = $this->getTeamFromRequest($request);139$team = $this->getTeamFromRequest($request);140140141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {142-return (new Error())->getResponse();142+return new Error()->getResponse();143 }143 }144144145-$requestDTO = (new PatchUser())145+$requestDTO = new PatchUser()146 ->setResourceLocalId($id)146 ->setResourceLocalId($id)147 ->createFromRequestPayload($request);147 ->createFromRequestPayload($request);148148@@ -153,10 +153,10 @@ public function patchUser(Request $request, string $id): JsonResponse153 } catch (Exception $e) {153 } catch (Exception $e) {154 Sentry::captureException($e);154 Sentry::captureException($e);155155156-return (new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed'))->getResponse();156+return new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed')->getResponse();157 }157 }158158159-return (new CoreUser())159+return new CoreUser()160 ->createFromUser($user)160 ->createFromUser($user)161 ->setHttpCode(Constants::HTTP_OK)161 ->setHttpCode(Constants::HTTP_OK)162 ->getResponse();162 ->getResponse();@@ -167,16 +167,16 @@ public function getUser(Request $request, string $id): JsonResponse167$team = $this->getTeamFromRequest($request);167$team = $this->getTeamFromRequest($request);168168169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {170-return (new Error())->getResponse();170+return new Error()->getResponse();171 }171 }172172173$user = $this->scimProvisioning->getUserById($id);173$user = $this->scimProvisioning->getUserById($id);174174175if (! $team->isSame($user->getTeam())) {175if (! $team->isSame($user->getTeam())) {176-return (new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.'))->getResponse();176+return new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.')->getResponse();177 }177 }178178179-return (new CoreUser())179+return new CoreUser()180 ->setHttpCode(Constants::HTTP_OK)180 ->setHttpCode(Constants::HTTP_OK)181 ->createFromUser($user)181 ->createFromUser($user)182 ->getResponse();182 ->getResponse();@@ -186,20 +186,20 @@ public function getUsersByQuery(Request $request): JsonResponse186 {186 {187$team = $this->getTeamFromRequest($request);187$team = $this->getTeamFromRequest($request);188188189-$requestDto = (new GetUserByQuery())->createFromRequestPayload($request);189+$requestDto = new GetUserByQuery()->createFromRequestPayload($request);190190191try {191try {192$resultsQuery = $this->scimProvisioning192$resultsQuery = $this->scimProvisioning193 ->translateQueryStringsToUserModelQuery($requestDto, $team);193 ->translateQueryStringsToUserModelQuery($requestDto, $team);194 } catch (Exception $exception) {194 } catch (Exception $exception) {195-return (new ListResponse())->createEmpty()->getResponse();195+return new ListResponse()->createEmpty()->getResponse();196 }196 }197197198$resultsQuery198$resultsQuery199 ->limit($requestDto->getCount())199 ->limit($requestDto->getCount())200 ->offset($requestDto->getStartIndex() - 1);200 ->offset($requestDto->getStartIndex() - 1);201201202-return (new ListResponse())202+return new ListResponse()203 ->setHttpCode(Constants::HTTP_OK)203 ->setHttpCode(Constants::HTTP_OK)204 ->setStartIndex($requestDto->getStartIndex())204 ->setStartIndex($requestDto->getStartIndex())205 ->createFromCollection($resultsQuery->get())205 ->createFromCollection($resultsQuery->get())@@ -210,15 +210,15 @@ public function postGroups(Request $request): JsonResponse210 {210 {211$team = $this->getTeamFromRequest($request);211$team = $this->getTeamFromRequest($request);212212213-$requestDto = (new CoreGroupRequest())->createFromRequestPayload($request);213+$requestDto = new CoreGroupRequest()->createFromRequestPayload($request);214214215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);216216217if (! $group instanceof Group) {217if (! $group instanceof Group) {218-return (new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed'))->getResponse();218+return new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed')->getResponse();219 }219 }220220221-$response = (new CoreGroup())->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();221+$response = new CoreGroup()->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();222222223return $response;223return $response;224 }224 }@@ -228,22 +228,22 @@ public function putGroups(Request $request, string $id): JsonResponse228$team = $this->getTeamFromRequest($request);228$team = $this->getTeamFromRequest($request);229229230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {231-return (new Error())->getResponse();231+return new Error()->getResponse();232 }232 }233233234-$requestDTO = (new CoreGroupRequest())->createFromRequestPayload($request);234+$requestDTO = new CoreGroupRequest()->createFromRequestPayload($request);235235236try {236try {237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);238238239-return (new CoreGroup())239+return new CoreGroup()240 ->createFromGroup($group)240 ->createFromGroup($group)241 ->setHttpCode(Constants::HTTP_OK)241 ->setHttpCode(Constants::HTTP_OK)242 ->getResponse();242 ->getResponse();243 } catch (Exception $exception) {243 } catch (Exception $exception) {244 Sentry::captureException($exception);244 Sentry::captureException($exception);245245246-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();246+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();247 }247 }248 }248 }249249@@ -252,12 +252,12 @@ public function getGroup(Request $request, string $id): JsonResponse252$team = $this->getTeamFromRequest($request);252$team = $this->getTeamFromRequest($request);253253254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {255-return (new Error())->getResponse();255+return new Error()->getResponse();256 }256 }257257258$group = $this->scimProvisioning->getGroupById($id);258$group = $this->scimProvisioning->getGroupById($id);259259260-return (new CoreGroup())260+return new CoreGroup()261 ->excludeAttributes($request)261 ->excludeAttributes($request)262 ->setHttpCode(Constants::HTTP_OK)262 ->setHttpCode(Constants::HTTP_OK)263 ->createFromGroup($group)263 ->createFromGroup($group)@@ -268,19 +268,19 @@ public function getGroupByQuery(Request $request): JsonResponse268 {268 {269$team = $this->getTeamFromRequest($request);269$team = $this->getTeamFromRequest($request);270270271-$dto = (new GetGroupByQuery())->createFromRequestPayload($request);271+$dto = new GetGroupByQuery()->createFromRequestPayload($request);272272273try {273try {274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);275 } catch (Exception $exception) {275 } catch (Exception $exception) {276-return (new ListResponse())->createEmpty()->getResponse();276+return new ListResponse()->createEmpty()->getResponse();277 }277 }278278279$groupsQuery279$groupsQuery280 ->limit($dto->getCount())280 ->limit($dto->getCount())281 ->offset($dto->getStartIndex() - 1);281 ->offset($dto->getStartIndex() - 1);282282283-return (new ListResponse())283+return new ListResponse()284 ->setHttpCode(Constants::HTTP_OK)284 ->setHttpCode(Constants::HTTP_OK)285 ->setStartIndex($dto->getStartIndex())285 ->setStartIndex($dto->getStartIndex())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())@@ -292,30 +292,30 @@ public function patchGroup(Request $request, $id): JsonResponse292$team = $this->getTeamFromRequest($request);292$team = $this->getTeamFromRequest($request);293293294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {295-return (new Error())->getResponse();295+return new Error()->getResponse();296 }296 }297297298-$dto = (new PatchGroup())->createFromRequestPayload($request);298+$dto = new PatchGroup()->createFromRequestPayload($request);299299300$group = Group::uuid($id);300$group = Group::uuid($id);301301302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);303303304-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);304+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);305 }305 }306306307public function deleteGroup(Request $request, $id): JsonResponse307public function deleteGroup(Request $request, $id): JsonResponse308 {308 {309$team = $this->getTeamFromRequest($request);309$team = $this->getTeamFromRequest($request);310310311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {312-return (new Error())->getResponse();312+return new Error()->getResponse();313 }313 }314314315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {316-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);316+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);317 } else {317 } else {318-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();318+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();319 }319 }320 }320 }321321</selection>” selected. Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
You said
I’m on page “<tabTitle>JY-18091 | Update composer to support php 8.5 by n</tabTitle>” with “<selection>@@ -40,15 +40,15 @@ public function postUsers(Request $request): JsonResponse40 {40 {41$team = $this->getTeamFromRequest($request);41$team = $this->getTeamFromRequest($request);424243-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);43+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);444445if ($requestDTO->getPrimaryPhoneNumber() !== null) {45if ($requestDTO->getPrimaryPhoneNumber() !== null) {46$user = $this->userRepository->findByPhone(46$user = $this->userRepository->findByPhone(47 phone: $requestDTO->getPrimaryPhoneNumber(),47 phone: $requestDTO->getPrimaryPhoneNumber(),48 );48 );494950if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {50if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {51-return (new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists'))51+return new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists')52 ->getResponse();52 ->getResponse();53 }53 }54 }54 }@@ -59,7 +59,7 @@ public function postUsers(Request $request): JsonResponse59 );59 );606061if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {61if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {62-return (new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists'))62+return new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists')63 ->getResponse();63 ->getResponse();64 }64 }65 }65 }@@ -74,11 +74,11 @@ public function postUsers(Request $request): JsonResponse74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);757576if (! $newUser instanceof User) {76if (! $newUser instanceof User) {77-return (new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed'))77+return new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed')78 ->getResponse();78 ->getResponse();79 }79 }808081-return (new CoreUser())81+return new CoreUser()82 ->createFromUser($newUser)82 ->createFromUser($newUser)83 ->setExternalId($requestDTO->getUserName())83 ->setExternalId($requestDTO->getUserName())84 ->setHttpCode(Constants::HTTP_CREATED)84 ->setHttpCode(Constants::HTTP_CREATED)@@ -93,22 +93,22 @@ public function putUsers(Request $request, string $id): JsonResponse93$team = $this->getTeamFromRequest($request);93$team = $this->getTeamFromRequest($request);949495if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {95if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {96-return (new Error())->getResponse();96+return new Error()->getResponse();97 }97 }989899-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);99+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);100100101try {101try {102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);103103104-return (new CoreUser())104+return new CoreUser()105 ->createFromUser($user)105 ->createFromUser($user)106 ->setHttpCode(Constants::HTTP_OK)106 ->setHttpCode(Constants::HTTP_OK)107 ->getResponse();107 ->getResponse();108 } catch (Exception $exception) {108 } catch (Exception $exception) {109 Sentry::captureException($exception);109 Sentry::captureException($exception);110110111-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();111+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();112 }112 }113 }113 }114114@@ -117,7 +117,7 @@ public function deleteUser(Request $request, string $id): JsonResponse117$team = $this->getTeamFromRequest($request);117$team = $this->getTeamFromRequest($request);118118119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {120-return (new Error())->getResponse();120+return new Error()->getResponse();121 }121 }122122123$user = $this->scimProvisioning->getUserById($id);123$user = $this->scimProvisioning->getUserById($id);@@ -131,18 +131,18 @@ public function deleteUser(Request $request, string $id): JsonResponse131 ),131 ),132 );132 );133133134-return (new JsonResponse())->setStatusCode(204);134+return new JsonResponse()->setStatusCode(204);135 }135 }136136137public function patchUser(Request $request, string $id): JsonResponse137public function patchUser(Request $request, string $id): JsonResponse138 {138 {139$team = $this->getTeamFromRequest($request);139$team = $this->getTeamFromRequest($request);140140141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {142-return (new Error())->getResponse();142+return new Error()->getResponse();143 }143 }144144145-$requestDTO = (new PatchUser())145+$requestDTO = new PatchUser()146 ->setResourceLocalId($id)146 ->setResourceLocalId($id)147 ->createFromRequestPayload($request);147 ->createFromRequestPayload($request);148148@@ -153,10 +153,10 @@ public function patchUser(Request $request, string $id): JsonResponse153 } catch (Exception $e) {153 } catch (Exception $e) {154 Sentry::captureException($e);154 Sentry::captureException($e);155155156-return (new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed'))->getResponse();156+return new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed')->getResponse();157 }157 }158158159-return (new CoreUser())159+return new CoreUser()160 ->createFromUser($user)160 ->createFromUser($user)161 ->setHttpCode(Constants::HTTP_OK)161 ->setHttpCode(Constants::HTTP_OK)162 ->getResponse();162 ->getResponse();@@ -167,16 +167,16 @@ public function getUser(Request $request, string $id): JsonResponse167$team = $this->getTeamFromRequest($request);167$team = $this->getTeamFromRequest($request);168168169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {170-return (new Error())->getResponse();170+return new Error()->getResponse();171 }171 }172172173$user = $this->scimProvisioning->getUserById($id);173$user = $this->scimProvisioning->getUserById($id);174174175if (! $team->isSame($user->getTeam())) {175if (! $team->isSame($user->getTeam())) {176-return (new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.'))->getResponse();176+return new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.')->getResponse();177 }177 }178178179-return (new CoreUser())179+return new CoreUser()180 ->setHttpCode(Constants::HTTP_OK)180 ->setHttpCode(Constants::HTTP_OK)181 ->createFromUser($user)181 ->createFromUser($user)182 ->getResponse();182 ->getResponse();@@ -186,20 +186,20 @@ public function getUsersByQuery(Request $request): JsonResponse186 {186 {187$team = $this->getTeamFromRequest($request);187$team = $this->getTeamFromRequest($request);188188189-$requestDto = (new GetUserByQuery())->createFromRequestPayload($request);189+$requestDto = new GetUserByQuery()->createFromRequestPayload($request);190190191try {191try {192$resultsQuery = $this->scimProvisioning192$resultsQuery = $this->scimProvisioning193 ->translateQueryStringsToUserModelQuery($requestDto, $team);193 ->translateQueryStringsToUserModelQuery($requestDto, $team);194 } catch (Exception $exception) {194 } catch (Exception $exception) {195-return (new ListResponse())->createEmpty()->getResponse();195+return new ListResponse()->createEmpty()->getResponse();196 }196 }197197198$resultsQuery198$resultsQuery199 ->limit($requestDto->getCount())199 ->limit($requestDto->getCount())200 ->offset($requestDto->getStartIndex() - 1);200 ->offset($requestDto->getStartIndex() - 1);201201202-return (new ListResponse())202+return new ListResponse()203 ->setHttpCode(Constants::HTTP_OK)203 ->setHttpCode(Constants::HTTP_OK)204 ->setStartIndex($requestDto->getStartIndex())204 ->setStartIndex($requestDto->getStartIndex())205 ->createFromCollection($resultsQuery->get())205 ->createFromCollection($resultsQuery->get())@@ -210,15 +210,15 @@ public function postGroups(Request $request): JsonResponse210 {210 {211$team = $this->getTeamFromRequest($request);211$team = $this->getTeamFromRequest($request);212212213-$requestDto = (new CoreGroupRequest())->createFromRequestPayload($request);213+$requestDto = new CoreGroupRequest()->createFromRequestPayload($request);214214215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);216216217if (! $group instanceof Group) {217if (! $group instanceof Group) {218-return (new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed'))->getResponse();218+return new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed')->getResponse();219 }219 }220220221-$response = (new CoreGroup())->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();221+$response = new CoreGroup()->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();222222223return $response;223return $response;224 }224 }@@ -228,22 +228,22 @@ public function putGroups(Request $request, string $id): JsonResponse228$team = $this->getTeamFromRequest($request);228$team = $this->getTeamFromRequest($request);229229230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {231-return (new Error())->getResponse();231+return new Error()->getResponse();232 }232 }233233234-$requestDTO = (new CoreGroupRequest())->createFromRequestPayload($request);234+$requestDTO = new CoreGroupRequest()->createFromRequestPayload($request);235235236try {236try {237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);238238239-return (new CoreGroup())239+return new CoreGroup()240 ->createFromGroup($group)240 ->createFromGroup($group)241 ->setHttpCode(Constants::HTTP_OK)241 ->setHttpCode(Constants::HTTP_OK)242 ->getResponse();242 ->getResponse();243 } catch (Exception $exception) {243 } catch (Exception $exception) {244 Sentry::captureException($exception);244 Sentry::captureException($exception);245245246-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();246+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();247 }247 }248 }248 }249249@@ -252,12 +252,12 @@ public function getGroup(Request $request, string $id): JsonResponse252$team = $this->getTeamFromRequest($request);252$team = $this->getTeamFromRequest($request);253253254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {255-return (new Error())->getResponse();255+return new Error()->getResponse();256 }256 }257257258$group = $this->scimProvisioning->getGroupById($id);258$group = $this->scimProvisioning->getGroupById($id);259259260-return (new CoreGroup())260+return new CoreGroup()261 ->excludeAttributes($request)261 ->excludeAttributes($request)262 ->setHttpCode(Constants::HTTP_OK)262 ->setHttpCode(Constants::HTTP_OK)263 ->createFromGroup($group)263 ->createFromGroup($group)@@ -268,19 +268,19 @@ public function getGroupByQuery(Request $request): JsonResponse268 {268 {269$team = $this->getTeamFromRequest($request);269$team = $this->getTeamFromRequest($request);270270271-$dto = (new GetGroupByQuery())->createFromRequestPayload($request);271+$dto = new GetGroupByQuery()->createFromRequestPayload($request);272272273try {273try {274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);275 } catch (Exception $exception) {275 } catch (Exception $exception) {276-return (new ListResponse())->createEmpty()->getResponse();276+return new ListResponse()->createEmpty()->getResponse();277 }277 }278278279$groupsQuery279$groupsQuery280 ->limit($dto->getCount())280 ->limit($dto->getCount())281 ->offset($dto->getStartIndex() - 1);281 ->offset($dto->getStartIndex() - 1);282282283-return (new ListResponse())283+return new ListResponse()284 ->setHttpCode(Constants::HTTP_OK)284 ->setHttpCode(Constants::HTTP_OK)285 ->setStartIndex($dto->getStartIndex())285 ->setStartIndex($dto->getStartIndex())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())@@ -292,30 +292,30 @@ public function patchGroup(Request $request, $id): JsonResponse292$team = $this->getTeamFromRequest($request);292$team = $this->getTeamFromRequest($request);293293294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {295-return (new Error())->getResponse();295+return new Error()->getResponse();296 }296 }297297298-$dto = (new PatchGroup())->createFromRequestPayload($request);298+$dto = new PatchGroup()->createFromRequestPayload($request);299299300$group = Group::uuid($id);300$group = Group::uuid($id);301301302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);303303304-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);304+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);305 }305 }306306307public function deleteGroup(Request $request, $id): JsonResponse307public function deleteGroup(Request $request, $id): JsonResponse308 {308 {309$team = $this->getTeamFromRequest($request);309$team = $this->getTeamFromRequest($request);310310311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {312-return (new Error())->getResponse();312+return new Error()->getResponse();313 }313 }314314315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {316-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);316+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);317 } else {317 } else {318-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();318+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();319 }319 }320 }320 }321321</selection>” selected.
Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
Expand
Listen
Gemini said
Gemini said
The selected code changes represent a mechanical refactoring of a PHP controller to align with modern syntax standards, likely as part of the upgrade to
PHP 8.5
.
Core Change: Member Access on Instantiation
Core Change: Member Access on Instantiation
The primary modification across the entire file is the removal of unnecessary parentheses when performing member access (method chaining) on a newly instantiated object.
Pattern:
(new ClassName())->method()
is simplified to
new ClassName()->method()
.
Reasoning:
Since PHP 8.0+, the parser handles member access on new expressions without requiring the wrapping parentheses for disambiguation.
Affected Components
Affected Components
The refactoring impacts various response and DTO (Data Transfer Object) initializations within the following SCIM (System for Cross-domain Identity Management) endpoints:
User Management:
postUsers
: Simplified instantiation of
CoreUserRequest
,
Error
, and
CoreUser
.
putUsers
/
patchUser
/
getUser
: Updated
Error
,
CoreUser
, and
PatchUser
calls.
getUsersByQuery
: Updated
GetUserByQuery
and
ListResponse
.
deleteUser
: Updated
JsonResponse
and
Error
.
Group Management:
postGroups
: Simplified
CoreGroupRequest
,
Error
, and
CoreGroup
.
putGroups
/
getGroup
: Updated
CoreGroupRequest
and
Error
.
getGroupByQuery
: Updated
GetGroupByQuery
and
ListResponse
.
patchGroup
/
deleteGroup
: Updated
PatchGroup
,
JsonResponse
, and
Error
.
Technical Impact
Technical Impact
No Functional Change:
The logic for user provisioning, group updates, and error handling remains identical....
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
42925
|
|
42926
|
Unnamed Group
Platform Sprint 4 Q2 - Platform Team Unnamed Group
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Usage | Windsurf
Usage | Windsurf
Unnamed Group
[SRD-6848] Sidekick SMS issue - Jira
[SRD-6848] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
Unnamed Group
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Unnamed Group
[SRD-6853] Moxso - Potential deal stages bug - Jira
[SRD-6853] Moxso - Potential deal stages bug - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
Close tab
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Useful commands - Engineering - Confluence
Useful commands - Engineering - Confluence
Dev Tools - Elastic
Dev Tools - Elastic
Jiminny
Jiminny
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
Unnamed Group
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
Pipedrive Developers Corner | Pipedrive API sandbox
Pipedrive Developers Corner | Pipedrive API sandbox
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
pipedrive/client-php: Pipedrive API client for PHP
pipedrive/client-php: Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
Code search results
Code search results
Jiminny
Jiminny
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
New Tab
Customize sidebar
Close Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AI Chat settings
Close
WORK, Google Account: [EMAIL]
Main menu
New Chat
Open menu for conversation actions.
Conversation with Gemini
Conversation with Gemini
Copy prompt
You said I’m on page “<tabTitle>JY-18091 | Update composer to support php 8.5 by n</tabTitle>” with “<selection>@@ -40,15 +40,15 @@ public function postUsers(Request $request): JsonResponse40 {40 {41$team = $this->getTeamFromRequest($request);41$team = $this->getTeamFromRequest($request);424243-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);43+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);444445if ($requestDTO->getPrimaryPhoneNumber() !== null) {45if ($requestDTO->getPrimaryPhoneNumber() !== null) {46$user = $this->userRepository->findByPhone(46$user = $this->userRepository->findByPhone(47 phone: $requestDTO->getPrimaryPhoneNumber(),47 phone: $requestDTO->getPrimaryPhoneNumber(),48 );48 );494950if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {50if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {51-return (new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists'))51+return new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists')52 ->getResponse();52 ->getResponse();53 }53 }54 }54 }@@ -59,7 +59,7 @@ public function postUsers(Request $request): JsonResponse59 );59 );606061if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {61if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {62-return (new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists'))62+return new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists')63 ->getResponse();63 ->getResponse();64 }64 }65 }65 }@@ -74,11 +74,11 @@ public function postUsers(Request $request): JsonResponse74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);757576if (! $newUser instanceof User) {76if (! $newUser instanceof User) {77-return (new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed'))77+return new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed')78 ->getResponse();78 ->getResponse();79 }79 }808081-return (new CoreUser())81+return new CoreUser()82 ->createFromUser($newUser)82 ->createFromUser($newUser)83 ->setExternalId($requestDTO->getUserName())83 ->setExternalId($requestDTO->getUserName())84 ->setHttpCode(Constants::HTTP_CREATED)84 ->setHttpCode(Constants::HTTP_CREATED)@@ -93,22 +93,22 @@ public function putUsers(Request $request, string $id): JsonResponse93$team = $this->getTeamFromRequest($request);93$team = $this->getTeamFromRequest($request);949495if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {95if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {96-return (new Error())->getResponse();96+return new Error()->getResponse();97 }97 }989899-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);99+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);100100101try {101try {102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);103103104-return (new CoreUser())104+return new CoreUser()105 ->createFromUser($user)105 ->createFromUser($user)106 ->setHttpCode(Constants::HTTP_OK)106 ->setHttpCode(Constants::HTTP_OK)107 ->getResponse();107 ->getResponse();108 } catch (Exception $exception) {108 } catch (Exception $exception) {109 Sentry::captureException($exception);109 Sentry::captureException($exception);110110111-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();111+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();112 }112 }113 }113 }114114@@ -117,7 +117,7 @@ public function deleteUser(Request $request, string $id): JsonResponse117$team = $this->getTeamFromRequest($request);117$team = $this->getTeamFromRequest($request);118118119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {120-return (new Error())->getResponse();120+return new Error()->getResponse();121 }121 }122122123$user = $this->scimProvisioning->getUserById($id);123$user = $this->scimProvisioning->getUserById($id);@@ -131,18 +131,18 @@ public function deleteUser(Request $request, string $id): JsonResponse131 ),131 ),132 );132 );133133134-return (new JsonResponse())->setStatusCode(204);134+return new JsonResponse()->setStatusCode(204);135 }135 }136136137public function patchUser(Request $request, string $id): JsonResponse137public function patchUser(Request $request, string $id): JsonResponse138 {138 {139$team = $this->getTeamFromRequest($request);139$team = $this->getTeamFromRequest($request);140140141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {142-return (new Error())->getResponse();142+return new Error()->getResponse();143 }143 }144144145-$requestDTO = (new PatchUser())145+$requestDTO = new PatchUser()146 ->setResourceLocalId($id)146 ->setResourceLocalId($id)147 ->createFromRequestPayload($request);147 ->createFromRequestPayload($request);148148@@ -153,10 +153,10 @@ public function patchUser(Request $request, string $id): JsonResponse153 } catch (Exception $e) {153 } catch (Exception $e) {154 Sentry::captureException($e);154 Sentry::captureException($e);155155156-return (new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed'))->getResponse();156+return new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed')->getResponse();157 }157 }158158159-return (new CoreUser())159+return new CoreUser()160 ->createFromUser($user)160 ->createFromUser($user)161 ->setHttpCode(Constants::HTTP_OK)161 ->setHttpCode(Constants::HTTP_OK)162 ->getResponse();162 ->getResponse();@@ -167,16 +167,16 @@ public function getUser(Request $request, string $id): JsonResponse167$team = $this->getTeamFromRequest($request);167$team = $this->getTeamFromRequest($request);168168169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {170-return (new Error())->getResponse();170+return new Error()->getResponse();171 }171 }172172173$user = $this->scimProvisioning->getUserById($id);173$user = $this->scimProvisioning->getUserById($id);174174175if (! $team->isSame($user->getTeam())) {175if (! $team->isSame($user->getTeam())) {176-return (new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.'))->getResponse();176+return new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.')->getResponse();177 }177 }178178179-return (new CoreUser())179+return new CoreUser()180 ->setHttpCode(Constants::HTTP_OK)180 ->setHttpCode(Constants::HTTP_OK)181 ->createFromUser($user)181 ->createFromUser($user)182 ->getResponse();182 ->getResponse();@@ -186,20 +186,20 @@ public function getUsersByQuery(Request $request): JsonResponse186 {186 {187$team = $this->getTeamFromRequest($request);187$team = $this->getTeamFromRequest($request);188188189-$requestDto = (new GetUserByQuery())->createFromRequestPayload($request);189+$requestDto = new GetUserByQuery()->createFromRequestPayload($request);190190191try {191try {192$resultsQuery = $this->scimProvisioning192$resultsQuery = $this->scimProvisioning193 ->translateQueryStringsToUserModelQuery($requestDto, $team);193 ->translateQueryStringsToUserModelQuery($requestDto, $team);194 } catch (Exception $exception) {194 } catch (Exception $exception) {195-return (new ListResponse())->createEmpty()->getResponse();195+return new ListResponse()->createEmpty()->getResponse();196 }196 }197197198$resultsQuery198$resultsQuery199 ->limit($requestDto->getCount())199 ->limit($requestDto->getCount())200 ->offset($requestDto->getStartIndex() - 1);200 ->offset($requestDto->getStartIndex() - 1);201201202-return (new ListResponse())202+return new ListResponse()203 ->setHttpCode(Constants::HTTP_OK)203 ->setHttpCode(Constants::HTTP_OK)204 ->setStartIndex($requestDto->getStartIndex())204 ->setStartIndex($requestDto->getStartIndex())205 ->createFromCollection($resultsQuery->get())205 ->createFromCollection($resultsQuery->get())@@ -210,15 +210,15 @@ public function postGroups(Request $request): JsonResponse210 {210 {211$team = $this->getTeamFromRequest($request);211$team = $this->getTeamFromRequest($request);212212213-$requestDto = (new CoreGroupRequest())->createFromRequestPayload($request);213+$requestDto = new CoreGroupRequest()->createFromRequestPayload($request);214214215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);216216217if (! $group instanceof Group) {217if (! $group instanceof Group) {218-return (new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed'))->getResponse();218+return new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed')->getResponse();219 }219 }220220221-$response = (new CoreGroup())->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();221+$response = new CoreGroup()->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();222222223return $response;223return $response;224 }224 }@@ -228,22 +228,22 @@ public function putGroups(Request $request, string $id): JsonResponse228$team = $this->getTeamFromRequest($request);228$team = $this->getTeamFromRequest($request);229229230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {231-return (new Error())->getResponse();231+return new Error()->getResponse();232 }232 }233233234-$requestDTO = (new CoreGroupRequest())->createFromRequestPayload($request);234+$requestDTO = new CoreGroupRequest()->createFromRequestPayload($request);235235236try {236try {237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);238238239-return (new CoreGroup())239+return new CoreGroup()240 ->createFromGroup($group)240 ->createFromGroup($group)241 ->setHttpCode(Constants::HTTP_OK)241 ->setHttpCode(Constants::HTTP_OK)242 ->getResponse();242 ->getResponse();243 } catch (Exception $exception) {243 } catch (Exception $exception) {244 Sentry::captureException($exception);244 Sentry::captureException($exception);245245246-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();246+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();247 }247 }248 }248 }249249@@ -252,12 +252,12 @@ public function getGroup(Request $request, string $id): JsonResponse252$team = $this->getTeamFromRequest($request);252$team = $this->getTeamFromRequest($request);253253254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {255-return (new Error())->getResponse();255+return new Error()->getResponse();256 }256 }257257258$group = $this->scimProvisioning->getGroupById($id);258$group = $this->scimProvisioning->getGroupById($id);259259260-return (new CoreGroup())260+return new CoreGroup()261 ->excludeAttributes($request)261 ->excludeAttributes($request)262 ->setHttpCode(Constants::HTTP_OK)262 ->setHttpCode(Constants::HTTP_OK)263 ->createFromGroup($group)263 ->createFromGroup($group)@@ -268,19 +268,19 @@ public function getGroupByQuery(Request $request): JsonResponse268 {268 {269$team = $this->getTeamFromRequest($request);269$team = $this->getTeamFromRequest($request);270270271-$dto = (new GetGroupByQuery())->createFromRequestPayload($request);271+$dto = new GetGroupByQuery()->createFromRequestPayload($request);272272273try {273try {274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);275 } catch (Exception $exception) {275 } catch (Exception $exception) {276-return (new ListResponse())->createEmpty()->getResponse();276+return new ListResponse()->createEmpty()->getResponse();277 }277 }278278279$groupsQuery279$groupsQuery280 ->limit($dto->getCount())280 ->limit($dto->getCount())281 ->offset($dto->getStartIndex() - 1);281 ->offset($dto->getStartIndex() - 1);282282283-return (new ListResponse())283+return new ListResponse()284 ->setHttpCode(Constants::HTTP_OK)284 ->setHttpCode(Constants::HTTP_OK)285 ->setStartIndex($dto->getStartIndex())285 ->setStartIndex($dto->getStartIndex())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())@@ -292,30 +292,30 @@ public function patchGroup(Request $request, $id): JsonResponse292$team = $this->getTeamFromRequest($request);292$team = $this->getTeamFromRequest($request);293293294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {295-return (new Error())->getResponse();295+return new Error()->getResponse();296 }296 }297297298-$dto = (new PatchGroup())->createFromRequestPayload($request);298+$dto = new PatchGroup()->createFromRequestPayload($request);299299300$group = Group::uuid($id);300$group = Group::uuid($id);301301302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);303303304-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);304+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);305 }305 }306306307public function deleteGroup(Request $request, $id): JsonResponse307public function deleteGroup(Request $request, $id): JsonResponse308 {308 {309$team = $this->getTeamFromRequest($request);309$team = $this->getTeamFromRequest($request);310310311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {312-return (new Error())->getResponse();312+return new Error()->getResponse();313 }313 }314314315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {316-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);316+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);317 } else {317 } else {318-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();318+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();319 }319 }320 }320 }321321</selection>” selected. Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
You said
I’m on page “<tabTitle>JY-18091 | Update composer to support php 8.5 by n</tabTitle>” with “<selection>@@ -40,15 +40,15 @@ public function postUsers(Request $request): JsonResponse40 {40 {41$team = $this->getTeamFromRequest($request);41$team = $this->getTeamFromRequest($request);424243-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);43+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);444445if ($requestDTO->getPrimaryPhoneNumber() !== null) {45if ($requestDTO->getPrimaryPhoneNumber() !== null) {46$user = $this->userRepository->findByPhone(46$user = $this->userRepository->findByPhone(47 phone: $requestDTO->getPrimaryPhoneNumber(),47 phone: $requestDTO->getPrimaryPhoneNumber(),48 );48 );494950if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {50if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {51-return (new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists'))51+return new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists')52 ->getResponse();52 ->getResponse();53 }53 }54 }54 }@@ -59,7 +59,7 @@ public function postUsers(Request $request): JsonResponse59 );59 );606061if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {61if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {62-return (new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists'))62+return new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists')63 ->getResponse();63 ->getResponse();64 }64 }65 }65 }@@ -74,11 +74,11 @@ public function postUsers(Request $request): JsonResponse74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);757576if (! $newUser instanceof User) {76if (! $newUser instanceof User) {77-return (new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed'))77+return new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed')78 ->getResponse();78 ->getResponse();79 }79 }808081-return (new CoreUser())81+return new CoreUser()82 ->createFromUser($newUser)82 ->createFromUser($newUser)83 ->setExternalId($requestDTO->getUserName())83 ->setExternalId($requestDTO->getUserName())84 ->setHttpCode(Constants::HTTP_CREATED)84 ->setHttpCode(Constants::HTTP_CREATED)@@ -93,22 +93,22 @@ public function putUsers(Request $request, string $id): JsonResponse93$team = $this->getTeamFromRequest($request);93$team = $this->getTeamFromRequest($request);949495if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {95if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {96-return (new Error())->getResponse();96+return new Error()->getResponse();97 }97 }989899-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);99+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);100100101try {101try {102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);103103104-return (new CoreUser())104+return new CoreUser()105 ->createFromUser($user)105 ->createFromUser($user)106 ->setHttpCode(Constants::HTTP_OK)106 ->setHttpCode(Constants::HTTP_OK)107 ->getResponse();107 ->getResponse();108 } catch (Exception $exception) {108 } catch (Exception $exception) {109 Sentry::captureException($exception);109 Sentry::captureException($exception);110110111-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();111+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();112 }112 }113 }113 }114114@@ -117,7 +117,7 @@ public function deleteUser(Request $request, string $id): JsonResponse117$team = $this->getTeamFromRequest($request);117$team = $this->getTeamFromRequest($request);118118119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {120-return (new Error())->getResponse();120+return new Error()->getResponse();121 }121 }122122123$user = $this->scimProvisioning->getUserById($id);123$user = $this->scimProvisioning->getUserById($id);@@ -131,18 +131,18 @@ public function deleteUser(Request $request, string $id): JsonResponse131 ),131 ),132 );132 );133133134-return (new JsonResponse())->setStatusCode(204);134+return new JsonResponse()->setStatusCode(204);135 }135 }136136137public function patchUser(Request $request, string $id): JsonResponse137public function patchUser(Request $request, string $id): JsonResponse138 {138 {139$team = $this->getTeamFromRequest($request);139$team = $this->getTeamFromRequest($request);140140141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {142-return (new Error())->getResponse();142+return new Error()->getResponse();143 }143 }144144145-$requestDTO = (new PatchUser())145+$requestDTO = new PatchUser()146 ->setResourceLocalId($id)146 ->setResourceLocalId($id)147 ->createFromRequestPayload($request);147 ->createFromRequestPayload($request);148148@@ -153,10 +153,10 @@ public function patchUser(Request $request, string $id): JsonResponse153 } catch (Exception $e) {153 } catch (Exception $e) {154 Sentry::captureException($e);154 Sentry::captureException($e);155155156-return (new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed'))->getResponse();156+return new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed')->getResponse();157 }157 }158158159-return (new CoreUser())159+return new CoreUser()160 ->createFromUser($user)160 ->createFromUser($user)161 ->setHttpCode(Constants::HTTP_OK)161 ->setHttpCode(Constants::HTTP_OK)162 ->getResponse();162 ->getResponse();@@ -167,16 +167,16 @@ public function getUser(Request $request, string $id): JsonResponse167$team = $this->getTeamFromRequest($request);167$team = $this->getTeamFromRequest($request);168168169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {170-return (new Error())->getResponse();170+return new Error()->getResponse();171 }171 }172172173$user = $this->scimProvisioning->getUserById($id);173$user = $this->scimProvisioning->getUserById($id);174174175if (! $team->isSame($user->getTeam())) {175if (! $team->isSame($user->getTeam())) {176-return (new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.'))->getResponse();176+return new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.')->getResponse();177 }177 }178178179-return (new CoreUser())179+return new CoreUser()180 ->setHttpCode(Constants::HTTP_OK)180 ->setHttpCode(Constants::HTTP_OK)181 ->createFromUser($user)181 ->createFromUser($user)182 ->getResponse();182 ->getResponse();@@ -186,20 +186,20 @@ public function getUsersByQuery(Request $request): JsonResponse186 {186 {187$team = $this->getTeamFromRequest($request);187$team = $this->getTeamFromRequest($request);188188189-$requestDto = (new GetUserByQuery())->createFromRequestPayload($request);189+$requestDto = new GetUserByQuery()->createFromRequestPayload($request);190190191try {191try {192$resultsQuery = $this->scimProvisioning192$resultsQuery = $this->scimProvisioning193 ->translateQueryStringsToUserModelQuery($requestDto, $team);193 ->translateQueryStringsToUserModelQuery($requestDto, $team);194 } catch (Exception $exception) {194 } catch (Exception $exception) {195-return (new ListResponse())->createEmpty()->getResponse();195+return new ListResponse()->createEmpty()->getResponse();196 }196 }197197198$resultsQuery198$resultsQuery199 ->limit($requestDto->getCount())199 ->limit($requestDto->getCount())200 ->offset($requestDto->getStartIndex() - 1);200 ->offset($requestDto->getStartIndex() - 1);201201202-return (new ListResponse())202+return new ListResponse()203 ->setHttpCode(Constants::HTTP_OK)203 ->setHttpCode(Constants::HTTP_OK)204 ->setStartIndex($requestDto->getStartIndex())204 ->setStartIndex($requestDto->getStartIndex())205 ->createFromCollection($resultsQuery->get())205 ->createFromCollection($resultsQuery->get())@@ -210,15 +210,15 @@ public function postGroups(Request $request): JsonResponse210 {210 {211$team = $this->getTeamFromRequest($request);211$team = $this->getTeamFromRequest($request);212212213-$requestDto = (new CoreGroupRequest())->createFromRequestPayload($request);213+$requestDto = new CoreGroupRequest()->createFromRequestPayload($request);214214215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);216216217if (! $group instanceof Group) {217if (! $group instanceof Group) {218-return (new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed'))->getResponse();218+return new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed')->getResponse();219 }219 }220220221-$response = (new CoreGroup())->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();221+$response = new CoreGroup()->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();222222223return $response;223return $response;224 }224 }@@ -228,22 +228,22 @@ public function putGroups(Request $request, string $id): JsonResponse228$team = $this->getTeamFromRequest($request);228$team = $this->getTeamFromRequest($request);229229230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {231-return (new Error())->getResponse();231+return new Error()->getResponse();232 }232 }233233234-$requestDTO = (new CoreGroupRequest())->createFromRequestPayload($request);234+$requestDTO = new CoreGroupRequest()->createFromRequestPayload($request);235235236try {236try {237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);238238239-return (new CoreGroup())239+return new CoreGroup()240 ->createFromGroup($group)240 ->createFromGroup($group)241 ->setHttpCode(Constants::HTTP_OK)241 ->setHttpCode(Constants::HTTP_OK)242 ->getResponse();242 ->getResponse();243 } catch (Exception $exception) {243 } catch (Exception $exception) {244 Sentry::captureException($exception);244 Sentry::captureException($exception);245245246-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();246+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();247 }247 }248 }248 }249249@@ -252,12 +252,12 @@ public function getGroup(Request $request, string $id): JsonResponse252$team = $this->getTeamFromRequest($request);252$team = $this->getTeamFromRequest($request);253253254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {255-return (new Error())->getResponse();255+return new Error()->getResponse();256 }256 }257257258$group = $this->scimProvisioning->getGroupById($id);258$group = $this->scimProvisioning->getGroupById($id);259259260-return (new CoreGroup())260+return new CoreGroup()261 ->excludeAttributes($request)261 ->excludeAttributes($request)262 ->setHttpCode(Constants::HTTP_OK)262 ->setHttpCode(Constants::HTTP_OK)263 ->createFromGroup($group)263 ->createFromGroup($group)@@ -268,19 +268,19 @@ public function getGroupByQuery(Request $request): JsonResponse268 {268 {269$team = $this->getTeamFromRequest($request);269$team = $this->getTeamFromRequest($request);270270271-$dto = (new GetGroupByQuery())->createFromRequestPayload($request);271+$dto = new GetGroupByQuery()->createFromRequestPayload($request);272272273try {273try {274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);275 } catch (Exception $exception) {275 } catch (Exception $exception) {276-return (new ListResponse())->createEmpty()->getResponse();276+return new ListResponse()->createEmpty()->getResponse();277 }277 }278278279$groupsQuery279$groupsQuery280 ->limit($dto->getCount())280 ->limit($dto->getCount())281 ->offset($dto->getStartIndex() - 1);281 ->offset($dto->getStartIndex() - 1);282282283-return (new ListResponse())283+return new ListResponse()284 ->setHttpCode(Constants::HTTP_OK)284 ->setHttpCode(Constants::HTTP_OK)285 ->setStartIndex($dto->getStartIndex())285 ->setStartIndex($dto->getStartIndex())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())@@ -292,30 +292,30 @@ public function patchGroup(Request $request, $id): JsonResponse292$team = $this->getTeamFromRequest($request);292$team = $this->getTeamFromRequest($request);293293294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {295-return (new Error())->getResponse();295+return new Error()->getResponse();296 }296 }297297298-$dto = (new PatchGroup())->createFromRequestPayload($request);298+$dto = new PatchGroup()->createFromRequestPayload($request);299299300$group = Group::uuid($id);300$group = Group::uuid($id);301301302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);303303304-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);304+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);305 }305 }306306307public function deleteGroup(Request $request, $id): JsonResponse307public function deleteGroup(Request $request, $id): JsonResponse308 {308 {309$team = $this->getTeamFromRequest($request);309$team = $this->getTeamFromRequest($request);310310311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {312-return (new Error())->getResponse();312+return new Error()->getResponse();313 }313 }314314315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {316-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);316+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);317 } else {317 } else {318-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();318+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();319 }319 }320 }320 }321321</selection>” selected.
Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
Expand
Listen
Gemini said
Gemini said
The selected code changes represent a mechanical refactoring of a PHP controller to align with modern syntax standards, likely as part of the upgrade to
PHP 8.5
.
Core Change: Member Access on Instantiation
Core Change: Member Access on Instantiation
The primary modification across the entire file is the removal of unnecessary parentheses when performing member access (method chaining) on a newly instantiated object.
Pattern:
(new ClassName())->method()
is simplified to
new ClassName()->method()
.
Reasoning:
Since PHP 8.0+, the parser handles member access on new expressions without requiring the wrapping parentheses for disambiguation.
Affected Components
Affected Components
The refactoring impacts various response and DTO (Data Transfer Object) initializations within the following SCIM (System for Cross-domain Identity Management) endpoints:
User Management:
postUsers
: Simplified instantiation of
CoreUserRequest
,
Error
, and
CoreUser
.
putUsers
/
patchUser
/
getUser
: Updated
Error
,
CoreUser
, and
PatchUser
calls.
getUsersByQuery
: Updated
GetUserByQuery
and
ListResponse
.
deleteUser
: Updated
JsonResponse
and
Error
.
Group Management:
postGroups
: Simplified
CoreGroupRequest
,
Error
, and
CoreGroup
.
putGroups
/
getGroup
: Updated
CoreGroupRequest
and
Error
.
getGroupByQuery
: Updated
GetGroupByQuery
and
ListResponse
.
patchGroup
/
deleteGroup
: Updated
PatchGroup
,
JsonResponse
, and
Error
.
Technical Impact
Technical Impact
No Functional Change:
The logic for user provisioning, group updates, and error handling remains identical.
Code Cleanliness:
Reduces visual noise and adopts the more concise syntax permitted in recent PHP versions.
Good response
Bad response
Share & export
Copy
Show more options
Copy prompt
Edit
You said are there soem potential issues?
You said
are there soem potential issues?
Listen
Gemini said
Gemini said
While this refactoring is syntactically correct for modern PHP, there are a few practical and technical "gotchas" to consider when moving from
(new Class())->method()
to
new Class()->method()
.
1. Language Compatibility (Backward Compatibility)
1. Language Compatibility (Backward Compatibility)
The biggest risk is the PHP version itself.
PHP < 8.0:
This change will cause a
Parse Error
. Prior to PHP 8.0, the parser could not handle member access on a
new
expression without parentheses.
The "Trap":
If your production environment is updated to PHP 8.5 but a developer's local environment or a specific CI runner is still on PHP 7.4, the code will break immediately.
2. Operator Precedence and Readability
2. Operator Precedence and Readability
While the engine now understands this syntax, human developers might find it slightly more ambiguous at a glance.
Visual Grouping:
The parentheses
(new Class())
act as a visual "container," making it clear that the instantiation happens first. Without them, in very complex one-liners, it can take a fraction of a second longer for a human to parse the execution order.
Consistency:
If only half the codebase is updated, the inconsistency can lead to "style drift," where different developers follow different patterns, making the code feel disorganized.
3. Tooling and IDE Support
3. Tooling and IDE Support
Static Analysis:
Older versions of static analysis tools (like PHPStan or Psalm) or older IDE versions might flag the new syntax as an error or "low-quality code" if they aren't configured for PHP 8.0+.
Automated Refactoring:
If this change was done via an automated tool (like Rector), it is usually safe. However, if done via "Find and Replace," there is a risk of accidentally stripping parentheses from complex expressions where they might still be required for logic.
4. Error Reporting Sensitivity
4. Error Reporting Sensitivity
In some edge cases, if the constructor of the class throws an exception:
The stack trace remains the same, but when debugging "on the fly" in some older debugger clients, the lack of grouping can occasionally make it slightly harder to evaluate the object state
before
the method call in a watch window.
Summary of Risk Levels
Summary of Risk Levels
Risk Factor
Level
Mitigation
Production Crash
High
Ensure
platform
in
composer.json
is set to
8.0
or higher.
Developer Confusion
Low
Update team style guides to reflect PHP 8.x standards.
Linting Errors
Medium
Update CI/CD linting rules to support modern PHP syntax.
Risk Factor
Production Crash
Developer Confusion
Linting Errors
Level
High
Low
Medium
Mitigation
Ensure
platform
in
composer.json
is set to
8.0
or higher.
Update team style guides to reflect PHP 8.x standards.
Update CI/CD linting rules to support modern PHP syntax.
Copy table
Are you planning to deploy this to an environment where you are certain the PHP version is strictly 8.0 or higher?
Good response
Bad response
Redo
Share & export
Copy
Show more options
Enter a prompt for Gemini
encrypted
Enter a prompt for Gemini
encrypted
Open upload file menu
Tools
Open mode picker
Fast
Microphone
Send message
Your Jiminny chats aren’t used to improve our models. Gemini is AI. It can make mistakes, so double check it.
Your privacy & Gemini Opens in a new window
Your privacy & Gemini
Opens in a new window
Summarize page
Summarize page
Skip to content
Skip to content
Open menu
Homepage (g then d)
jiminny
jiminny
app
app
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
All issues(g then i)
All pull requests
All repositories
You have unread notifications(g then n)
Open user navigation menu
Repository navigation
Repository navigation
Code
Code
Pull requests (29)
Pull requests
(
29
)
Agents
Agents
Actions
Actions
Wiki
Wiki
Security and quality
Security and quality
Insights
Insights
Settings
Settings
Important update
Important update
On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.
Review this update
Review this update
and manage your preferences in your
GitHub account settings
GitHub account settings
.
Dismiss banner
JY-20903 Update activity stage when opportunity is changed #12077 Edit title
JY-20903 Update activity stage when opportunity is changed
#
12077
Edit title
Awaiting approval
Awaiting approval
Code
Code
Open
LakyLak
LakyLak
wants to merge 1 commit into
master
master
from...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
42926
|
|
42931
|
Unnamed Group
Platform Sprint 4 Q2 - Platform Team Unnamed Group
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Usage | Windsurf
Usage | Windsurf
Unnamed Group
[SRD-6848] Sidekick SMS issue - Jira
[SRD-6848] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
Unnamed Group
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Unnamed Group
[SRD-6853] Moxso - Potential deal stages bug - Jira
[SRD-6853] Moxso - Potential deal stages bug - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
Close tab
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Useful commands - Engineering - Confluence
Useful commands - Engineering - Confluence
Dev Tools - Elastic
Dev Tools - Elastic
Jiminny
Jiminny
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
Unnamed Group
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
Pipedrive Developers Corner | Pipedrive API sandbox
Pipedrive Developers Corner | Pipedrive API sandbox
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
pipedrive/client-php: Pipedrive API client for PHP
pipedrive/client-php: Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
Code search results
Code search results
Jiminny
Jiminny
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
New Tab
Customize sidebar
Close Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AI Chat settings
Close
WORK, Google Account: [EMAIL]
Main menu
New Chat
Open menu for conversation actions.
Conversation with Gemini
Conversation with Gemini
Copy prompt
You said I’m on page “<tabTitle>JY-18091 | Update composer to support php 8.5 by n</tabTitle>” with “<selection>@@ -40,15 +40,15 @@ public function postUsers(Request $request): JsonResponse40 {40 {41$team = $this->getTeamFromRequest($request);41$team = $this->getTeamFromRequest($request);424243-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);43+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);444445if ($requestDTO->getPrimaryPhoneNumber() !== null) {45if ($requestDTO->getPrimaryPhoneNumber() !== null) {46$user = $this->userRepository->findByPhone(46$user = $this->userRepository->findByPhone(47 phone: $requestDTO->getPrimaryPhoneNumber(),47 phone: $requestDTO->getPrimaryPhoneNumber(),48 );48 );494950if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {50if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {51-return (new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists'))51+return new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists')52 ->getResponse();52 ->getResponse();53 }53 }54 }54 }@@ -59,7 +59,7 @@ public function postUsers(Request $request): JsonResponse59 );59 );606061if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {61if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {62-return (new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists'))62+return new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists')63 ->getResponse();63 ->getResponse();64 }64 }65 }65 }@@ -74,11 +74,11 @@ public function postUsers(Request $request): JsonResponse74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);757576if (! $newUser instanceof User) {76if (! $newUser instanceof User) {77-return (new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed'))77+return new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed')78 ->getResponse();78 ->getResponse();79 }79 }808081-return (new CoreUser())81+return new CoreUser()82 ->createFromUser($newUser)82 ->createFromUser($newUser)83 ->setExternalId($requestDTO->getUserName())83 ->setExternalId($requestDTO->getUserName())84 ->setHttpCode(Constants::HTTP_CREATED)84 ->setHttpCode(Constants::HTTP_CREATED)@@ -93,22 +93,22 @@ public function putUsers(Request $request, string $id): JsonResponse93$team = $this->getTeamFromRequest($request);93$team = $this->getTeamFromRequest($request);949495if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {95if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {96-return (new Error())->getResponse();96+return new Error()->getResponse();97 }97 }989899-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);99+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);100100101try {101try {102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);103103104-return (new CoreUser())104+return new CoreUser()105 ->createFromUser($user)105 ->createFromUser($user)106 ->setHttpCode(Constants::HTTP_OK)106 ->setHttpCode(Constants::HTTP_OK)107 ->getResponse();107 ->getResponse();108 } catch (Exception $exception) {108 } catch (Exception $exception) {109 Sentry::captureException($exception);109 Sentry::captureException($exception);110110111-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();111+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();112 }112 }113 }113 }114114@@ -117,7 +117,7 @@ public function deleteUser(Request $request, string $id): JsonResponse117$team = $this->getTeamFromRequest($request);117$team = $this->getTeamFromRequest($request);118118119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {120-return (new Error())->getResponse();120+return new Error()->getResponse();121 }121 }122122123$user = $this->scimProvisioning->getUserById($id);123$user = $this->scimProvisioning->getUserById($id);@@ -131,18 +131,18 @@ public function deleteUser(Request $request, string $id): JsonResponse131 ),131 ),132 );132 );133133134-return (new JsonResponse())->setStatusCode(204);134+return new JsonResponse()->setStatusCode(204);135 }135 }136136137public function patchUser(Request $request, string $id): JsonResponse137public function patchUser(Request $request, string $id): JsonResponse138 {138 {139$team = $this->getTeamFromRequest($request);139$team = $this->getTeamFromRequest($request);140140141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {142-return (new Error())->getResponse();142+return new Error()->getResponse();143 }143 }144144145-$requestDTO = (new PatchUser())145+$requestDTO = new PatchUser()146 ->setResourceLocalId($id)146 ->setResourceLocalId($id)147 ->createFromRequestPayload($request);147 ->createFromRequestPayload($request);148148@@ -153,10 +153,10 @@ public function patchUser(Request $request, string $id): JsonResponse153 } catch (Exception $e) {153 } catch (Exception $e) {154 Sentry::captureException($e);154 Sentry::captureException($e);155155156-return (new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed'))->getResponse();156+return new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed')->getResponse();157 }157 }158158159-return (new CoreUser())159+return new CoreUser()160 ->createFromUser($user)160 ->createFromUser($user)161 ->setHttpCode(Constants::HTTP_OK)161 ->setHttpCode(Constants::HTTP_OK)162 ->getResponse();162 ->getResponse();@@ -167,16 +167,16 @@ public function getUser(Request $request, string $id): JsonResponse167$team = $this->getTeamFromRequest($request);167$team = $this->getTeamFromRequest($request);168168169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {170-return (new Error())->getResponse();170+return new Error()->getResponse();171 }171 }172172173$user = $this->scimProvisioning->getUserById($id);173$user = $this->scimProvisioning->getUserById($id);174174175if (! $team->isSame($user->getTeam())) {175if (! $team->isSame($user->getTeam())) {176-return (new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.'))->getResponse();176+return new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.')->getResponse();177 }177 }178178179-return (new CoreUser())179+return new CoreUser()180 ->setHttpCode(Constants::HTTP_OK)180 ->setHttpCode(Constants::HTTP_OK)181 ->createFromUser($user)181 ->createFromUser($user)182 ->getResponse();182 ->getResponse();@@ -186,20 +186,20 @@ public function getUsersByQuery(Request $request): JsonResponse186 {186 {187$team = $this->getTeamFromRequest($request);187$team = $this->getTeamFromRequest($request);188188189-$requestDto = (new GetUserByQuery())->createFromRequestPayload($request);189+$requestDto = new GetUserByQuery()->createFromRequestPayload($request);190190191try {191try {192$resultsQuery = $this->scimProvisioning192$resultsQuery = $this->scimProvisioning193 ->translateQueryStringsToUserModelQuery($requestDto, $team);193 ->translateQueryStringsToUserModelQuery($requestDto, $team);194 } catch (Exception $exception) {194 } catch (Exception $exception) {195-return (new ListResponse())->createEmpty()->getResponse();195+return new ListResponse()->createEmpty()->getResponse();196 }196 }197197198$resultsQuery198$resultsQuery199 ->limit($requestDto->getCount())199 ->limit($requestDto->getCount())200 ->offset($requestDto->getStartIndex() - 1);200 ->offset($requestDto->getStartIndex() - 1);201201202-return (new ListResponse())202+return new ListResponse()203 ->setHttpCode(Constants::HTTP_OK)203 ->setHttpCode(Constants::HTTP_OK)204 ->setStartIndex($requestDto->getStartIndex())204 ->setStartIndex($requestDto->getStartIndex())205 ->createFromCollection($resultsQuery->get())205 ->createFromCollection($resultsQuery->get())@@ -210,15 +210,15 @@ public function postGroups(Request $request): JsonResponse210 {210 {211$team = $this->getTeamFromRequest($request);211$team = $this->getTeamFromRequest($request);212212213-$requestDto = (new CoreGroupRequest())->createFromRequestPayload($request);213+$requestDto = new CoreGroupRequest()->createFromRequestPayload($request);214214215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);216216217if (! $group instanceof Group) {217if (! $group instanceof Group) {218-return (new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed'))->getResponse();218+return new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed')->getResponse();219 }219 }220220221-$response = (new CoreGroup())->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();221+$response = new CoreGroup()->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();222222223return $response;223return $response;224 }224 }@@ -228,22 +228,22 @@ public function putGroups(Request $request, string $id): JsonResponse228$team = $this->getTeamFromRequest($request);228$team = $this->getTeamFromRequest($request);229229230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {231-return (new Error())->getResponse();231+return new Error()->getResponse();232 }232 }233233234-$requestDTO = (new CoreGroupRequest())->createFromRequestPayload($request);234+$requestDTO = new CoreGroupRequest()->createFromRequestPayload($request);235235236try {236try {237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);238238239-return (new CoreGroup())239+return new CoreGroup()240 ->createFromGroup($group)240 ->createFromGroup($group)241 ->setHttpCode(Constants::HTTP_OK)241 ->setHttpCode(Constants::HTTP_OK)242 ->getResponse();242 ->getResponse();243 } catch (Exception $exception) {243 } catch (Exception $exception) {244 Sentry::captureException($exception);244 Sentry::captureException($exception);245245246-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();246+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();247 }247 }248 }248 }249249@@ -252,12 +252,12 @@ public function getGroup(Request $request, string $id): JsonResponse252$team = $this->getTeamFromRequest($request);252$team = $this->getTeamFromRequest($request);253253254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {255-return (new Error())->getResponse();255+return new Error()->getResponse();256 }256 }257257258$group = $this->scimProvisioning->getGroupById($id);258$group = $this->scimProvisioning->getGroupById($id);259259260-return (new CoreGroup())260+return new CoreGroup()261 ->excludeAttributes($request)261 ->excludeAttributes($request)262 ->setHttpCode(Constants::HTTP_OK)262 ->setHttpCode(Constants::HTTP_OK)263 ->createFromGroup($group)263 ->createFromGroup($group)@@ -268,19 +268,19 @@ public function getGroupByQuery(Request $request): JsonResponse268 {268 {269$team = $this->getTeamFromRequest($request);269$team = $this->getTeamFromRequest($request);270270271-$dto = (new GetGroupByQuery())->createFromRequestPayload($request);271+$dto = new GetGroupByQuery()->createFromRequestPayload($request);272272273try {273try {274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);275 } catch (Exception $exception) {275 } catch (Exception $exception) {276-return (new ListResponse())->createEmpty()->getResponse();276+return new ListResponse()->createEmpty()->getResponse();277 }277 }278278279$groupsQuery279$groupsQuery280 ->limit($dto->getCount())280 ->limit($dto->getCount())281 ->offset($dto->getStartIndex() - 1);281 ->offset($dto->getStartIndex() - 1);282282283-return (new ListResponse())283+return new ListResponse()284 ->setHttpCode(Constants::HTTP_OK)284 ->setHttpCode(Constants::HTTP_OK)285 ->setStartIndex($dto->getStartIndex())285 ->setStartIndex($dto->getStartIndex())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())@@ -292,30 +292,30 @@ public function patchGroup(Request $request, $id): JsonResponse292$team = $this->getTeamFromRequest($request);292$team = $this->getTeamFromRequest($request);293293294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {295-return (new Error())->getResponse();295+return new Error()->getResponse();296 }296 }297297298-$dto = (new PatchGroup())->createFromRequestPayload($request);298+$dto = new PatchGroup()->createFromRequestPayload($request);299299300$group = Group::uuid($id);300$group = Group::uuid($id);301301302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);303303304-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);304+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);305 }305 }306306307public function deleteGroup(Request $request, $id): JsonResponse307public function deleteGroup(Request $request, $id): JsonResponse308 {308 {309$team = $this->getTeamFromRequest($request);309$team = $this->getTeamFromRequest($request);310310311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {312-return (new Error())->getResponse();312+return new Error()->getResponse();313 }313 }314314315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {316-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);316+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);317 } else {317 } else {318-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();318+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();319 }319 }320 }320 }321321</selection>” selected. Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
You said
I’m on page “<tabTitle>JY-18091 | Update composer to support php 8.5 by n</tabTitle>” with “<selection>@@ -40,15 +40,15 @@ public function postUsers(Request $request): JsonResponse40 {40 {41$team = $this->getTeamFromRequest($request);41$team = $this->getTeamFromRequest($request);424243-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);43+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);444445if ($requestDTO->getPrimaryPhoneNumber() !== null) {45if ($requestDTO->getPrimaryPhoneNumber() !== null) {46$user = $this->userRepository->findByPhone(46$user = $this->userRepository->findByPhone(47 phone: $requestDTO->getPrimaryPhoneNumber(),47 phone: $requestDTO->getPrimaryPhoneNumber(),48 );48 );494950if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {50if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {51-return (new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists'))51+return new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists')52 ->getResponse();52 ->getResponse();53 }53 }54 }54 }@@ -59,7 +59,7 @@ public function postUsers(Request $request): JsonResponse59 );59 );606061if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {61if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {62-return (new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists'))62+return new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists')63 ->getResponse();63 ->getResponse();64 }64 }65 }65 }@@ -74,11 +74,11 @@ public function postUsers(Request $request): JsonResponse74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);757576if (! $newUser instanceof User) {76if (! $newUser instanceof User) {77-return (new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed'))77+return new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed')78 ->getResponse();78 ->getResponse();79 }79 }808081-return (new CoreUser())81+return new CoreUser()82 ->createFromUser($newUser)82 ->createFromUser($newUser)83 ->setExternalId($requestDTO->getUserName())83 ->setExternalId($requestDTO->getUserName())84 ->setHttpCode(Constants::HTTP_CREATED)84 ->setHttpCode(Constants::HTTP_CREATED)@@ -93,22 +93,22 @@ public function putUsers(Request $request, string $id): JsonResponse93$team = $this->getTeamFromRequest($request);93$team = $this->getTeamFromRequest($request);949495if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {95if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {96-return (new Error())->getResponse();96+return new Error()->getResponse();97 }97 }989899-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);99+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);100100101try {101try {102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);103103104-return (new CoreUser())104+return new CoreUser()105 ->createFromUser($user)105 ->createFromUser($user)106 ->setHttpCode(Constants::HTTP_OK)106 ->setHttpCode(Constants::HTTP_OK)107 ->getResponse();107 ->getResponse();108 } catch (Exception $exception) {108 } catch (Exception $exception) {109 Sentry::captureException($exception);109 Sentry::captureException($exception);110110111-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();111+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();112 }112 }113 }113 }114114@@ -117,7 +117,7 @@ public function deleteUser(Request $request, string $id): JsonResponse117$team = $this->getTeamFromRequest($request);117$team = $this->getTeamFromRequest($request);118118119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {120-return (new Error())->getResponse();120+return new Error()->getResponse();121 }121 }122122123$user = $this->scimProvisioning->getUserById($id);123$user = $this->scimProvisioning->getUserById($id);@@ -131,18 +131,18 @@ public function deleteUser(Request $request, string $id): JsonResponse131 ),131 ),132 );132 );133133134-return (new JsonResponse())->setStatusCode(204);134+return new JsonResponse()->setStatusCode(204);135 }135 }136136137public function patchUser(Request $request, string $id): JsonResponse137public function patchUser(Request $request, string $id): JsonResponse138 {138 {139$team = $this->getTeamFromRequest($request);139$team = $this->getTeamFromRequest($request);140140141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {142-return (new Error())->getResponse();142+return new Error()->getResponse();143 }143 }144144145-$requestDTO = (new PatchUser())145+$requestDTO = new PatchUser()146 ->setResourceLocalId($id)146 ->setResourceLocalId($id)147 ->createFromRequestPayload($request);147 ->createFromRequestPayload($request);148148@@ -153,10 +153,10 @@ public function patchUser(Request $request, string $id): JsonResponse153 } catch (Exception $e) {153 } catch (Exception $e) {154 Sentry::captureException($e);154 Sentry::captureException($e);155155156-return (new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed'))->getResponse();156+return new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed')->getResponse();157 }157 }158158159-return (new CoreUser())159+return new CoreUser()160 ->createFromUser($user)160 ->createFromUser($user)161 ->setHttpCode(Constants::HTTP_OK)161 ->setHttpCode(Constants::HTTP_OK)162 ->getResponse();162 ->getResponse();@@ -167,16 +167,16 @@ public function getUser(Request $request, string $id): JsonResponse167$team = $this->getTeamFromRequest($request);167$team = $this->getTeamFromRequest($request);168168169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {170-return (new Error())->getResponse();170+return new Error()->getResponse();171 }171 }172172173$user = $this->scimProvisioning->getUserById($id);173$user = $this->scimProvisioning->getUserById($id);174174175if (! $team->isSame($user->getTeam())) {175if (! $team->isSame($user->getTeam())) {176-return (new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.'))->getResponse();176+return new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.')->getResponse();177 }177 }178178179-return (new CoreUser())179+return new CoreUser()180 ->setHttpCode(Constants::HTTP_OK)180 ->setHttpCode(Constants::HTTP_OK)181 ->createFromUser($user)181 ->createFromUser($user)182 ->getResponse();182 ->getResponse();@@ -186,20 +186,20 @@ public function getUsersByQuery(Request $request): JsonResponse186 {186 {187$team = $this->getTeamFromRequest($request);187$team = $this->getTeamFromRequest($request);188188189-$requestDto = (new GetUserByQuery())->createFromRequestPayload($request);189+$requestDto = new GetUserByQuery()->createFromRequestPayload($request);190190191try {191try {192$resultsQuery = $this->scimProvisioning192$resultsQuery = $this->scimProvisioning193 ->translateQueryStringsToUserModelQuery($requestDto, $team);193 ->translateQueryStringsToUserModelQuery($requestDto, $team);194 } catch (Exception $exception) {194 } catch (Exception $exception) {195-return (new ListResponse())->createEmpty()->getResponse();195+return new ListResponse()->createEmpty()->getResponse();196 }196 }197197198$resultsQuery198$resultsQuery199 ->limit($requestDto->getCount())199 ->limit($requestDto->getCount())200 ->offset($requestDto->getStartIndex() - 1);200 ->offset($requestDto->getStartIndex() - 1);201201202-return (new ListResponse())202+return new ListResponse()203 ->setHttpCode(Constants::HTTP_OK)203 ->setHttpCode(Constants::HTTP_OK)204 ->setStartIndex($requestDto->getStartIndex())204 ->setStartIndex($requestDto->getStartIndex())205 ->createFromCollection($resultsQuery->get())205 ->createFromCollection($resultsQuery->get())@@ -210,15 +210,15 @@ public function postGroups(Request $request): JsonResponse210 {210 {211$team = $this->getTeamFromRequest($request);211$team = $this->getTeamFromRequest($request);212212213-$requestDto = (new CoreGroupRequest())->createFromRequestPayload($request);213+$requestDto = new CoreGroupRequest()->createFromRequestPayload($request);214214215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);216216217if (! $group instanceof Group) {217if (! $group instanceof Group) {218-return (new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed'))->getResponse();218+return new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed')->getResponse();219 }219 }220220221-$response = (new CoreGroup())->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();221+$response = new CoreGroup()->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();222222223return $response;223return $response;224 }224 }@@ -228,22 +228,22 @@ public function putGroups(Request $request, string $id): JsonResponse228$team = $this->getTeamFromRequest($request);228$team = $this->getTeamFromRequest($request);229229230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {231-return (new Error())->getResponse();231+return new Error()->getResponse();232 }232 }233233234-$requestDTO = (new CoreGroupRequest())->createFromRequestPayload($request);234+$requestDTO = new CoreGroupRequest()->createFromRequestPayload($request);235235236try {236try {237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);238238239-return (new CoreGroup())239+return new CoreGroup()240 ->createFromGroup($group)240 ->createFromGroup($group)241 ->setHttpCode(Constants::HTTP_OK)241 ->setHttpCode(Constants::HTTP_OK)242 ->getResponse();242 ->getResponse();243 } catch (Exception $exception) {243 } catch (Exception $exception) {244 Sentry::captureException($exception);244 Sentry::captureException($exception);245245246-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();246+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();247 }247 }248 }248 }249249@@ -252,12 +252,12 @@ public function getGroup(Request $request, string $id): JsonResponse252$team = $this->getTeamFromRequest($request);252$team = $this->getTeamFromRequest($request);253253254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {255-return (new Error())->getResponse();255+return new Error()->getResponse();256 }256 }257257258$group = $this->scimProvisioning->getGroupById($id);258$group = $this->scimProvisioning->getGroupById($id);259259260-return (new CoreGroup())260+return new CoreGroup()261 ->excludeAttributes($request)261 ->excludeAttributes($request)262 ->setHttpCode(Constants::HTTP_OK)262 ->setHttpCode(Constants::HTTP_OK)263 ->createFromGroup($group)263 ->createFromGroup($group)@@ -268,19 +268,19 @@ public function getGroupByQuery(Request $request): JsonResponse268 {268 {269$team = $this->getTeamFromRequest($request);269$team = $this->getTeamFromRequest($request);270270271-$dto = (new GetGroupByQuery())->createFromRequestPayload($request);271+$dto = new GetGroupByQuery()->createFromRequestPayload($request);272272273try {273try {274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);275 } catch (Exception $exception) {275 } catch (Exception $exception) {276-return (new ListResponse())->createEmpty()->getResponse();276+return new ListResponse()->createEmpty()->getResponse();277 }277 }278278279$groupsQuery279$groupsQuery280 ->limit($dto->getCount())280 ->limit($dto->getCount())281 ->offset($dto->getStartIndex() - 1);281 ->offset($dto->getStartIndex() - 1);282282283-return (new ListResponse())283+return new ListResponse()284 ->setHttpCode(Constants::HTTP_OK)284 ->setHttpCode(Constants::HTTP_OK)285 ->setStartIndex($dto->getStartIndex())285 ->setStartIndex($dto->getStartIndex())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())@@ -292,30 +292,30 @@ public function patchGroup(Request $request, $id): JsonResponse292$team = $this->getTeamFromRequest($request);292$team = $this->getTeamFromRequest($request);293293294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {295-return (new Error())->getResponse();295+return new Error()->getResponse();296 }296 }297297298-$dto = (new PatchGroup())->createFromRequestPayload($request);298+$dto = new PatchGroup()->createFromRequestPayload($request);299299300$group = Group::uuid($id);300$group = Group::uuid($id);301301302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);303303304-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);304+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);305 }305 }306306307public function deleteGroup(Request $request, $id): JsonResponse307public function deleteGroup(Request $request, $id): JsonResponse308 {308 {309$team = $this->getTeamFromRequest($request);309$team = $this->getTeamFromRequest($request);310310311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {312-return (new Error())->getResponse();312+return new Error()->getResponse();313 }313 }314314315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {316-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);316+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);317 } else {317 } else {318-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();318+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();319 }319 }320 }320 }321321</selection>” selected.
Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
Expand
Listen
Gemini said
Gemini said
The selected code changes represent a mechanical refactoring of a PHP controller to align with modern syntax standards, likely as part of the upgrade to
PHP 8.5
.
Core Change: Member Access on Instantiation
Core Change: Member Access on Instantiation
The primary modification across the entire file is the removal of unnecessary parentheses when performing member access (method chaining) on a newly instantiated object....
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
42931
|
|
42932
|
Unnamed Group
HomeDMsActivityFilesLater..•MoreSlac Unnamed Group
HomeDMsActivityFilesLater..•MoreSlackFileEditViewGoHistoryEDJiminny ...# general# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi...Direct messages®. Galya Dimitrova€. Vasil Vasileve. Aneliya AngelovaStefka Stoyanova: Todor StamatovMario Georgiev. Nikolay Ivanovdo James Graham8 Stoyan TanevSteliyan Georgiev&. Petko KashinskiLukas Kovalik y...AppsToastJira CloudGoogle Cale... &WindowHelpDescribe what you are looking forGalya Dimitrova• MessagesC Files@ Untitledđ Bug JY-20903 in Jira Cloud+Today ~StatusCode ReviewPriority= MediumAssigneeLukas Kovalik (you)As of today at 3:05 PMOpen in Jirai+ Summariseтук ПРа е към другия тикет наличе по този нямаше да правим променистори ми се странно и викам да проверя за всеки случайLukas Kovalik 3:07 PMда не съм ги обрькал, сега ще видяда правилен есамо да проверявам сега дали да си остане и кога може да се смени stage, за това те и питахGalya Dimitrova 3:09 PMама то беше за другия за стейджаа този беше за failed рекординг който го пратихме на процесинг?Lukas Kovalik 3:10 PMдаобрьках гиGalya Dimitrova3:11 PMа окне е толкова важнопросто сме сега на една среща сьс съпорта и гледаме какво правим в спринтаMessage Galya Dimitrova iIn a meeting • Google Calendar+Aa‹ →0 klSupport Daily - 3 m left100% С8•Thu 14 May 15:12:28...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
42932
|
|
42933
|
Unnamed Group
Platform Sprint 4 Q2 - Platform Team Unnamed Group
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Usage | Windsurf
Usage | Windsurf
Unnamed Group
[SRD-6848] Sidekick SMS issue - Jira
[SRD-6848] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
Unnamed Group
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Unnamed Group
[SRD-6853] Moxso - Potential deal stages bug - Jira
[SRD-6853] Moxso - Potential deal stages bug - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
Close tab
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Useful commands - Engineering - Confluence
Useful commands - Engineering - Confluence
Dev Tools - Elastic
Dev Tools - Elastic
Jiminny
Jiminny
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
Unnamed Group
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
Pipedrive Developers Corner | Pipedrive API sandbox
Pipedrive Developers Corner | Pipedrive API sandbox
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
pipedrive/client-php: Pipedrive API client for PHP
pipedrive/client-php: Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
Code search results
Code search results
Jiminny
Jiminny
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
New Tab
Customize sidebar
Close Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AI Chat settings
Close
WORK, Google Account: [EMAIL]
Main menu
New Chat
Open menu for conversation actions.
Conversation with Gemini
Conversation with Gemini
Copy prompt
You said I’m on page “<tabTitle>JY-18091 | Update composer to support php 8.5 by n</tabTitle>” with “<selection>@@ -40,15 +40,15 @@ public function postUsers(Request $request): JsonResponse40 {40 {41$team = $this->getTeamFromRequest($request);41$team = $this->getTeamFromRequest($request);424243-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);43+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);444445if ($requestDTO->getPrimaryPhoneNumber() !== null) {45if ($requestDTO->getPrimaryPhoneNumber() !== null) {46$user = $this->userRepository->findByPhone(46$user = $this->userRepository->findByPhone(47 phone: $requestDTO->getPrimaryPhoneNumber(),47 phone: $requestDTO->getPrimaryPhoneNumber(),48 );48 );494950if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {50if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {51-return (new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists'))51+return new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists')52 ->getResponse();52 ->getResponse();53 }53 }54 }54 }@@ -59,7 +59,7 @@ public function postUsers(Request $request): JsonResponse59 );59 );606061if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {61if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {62-return (new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists'))62+return new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists')63 ->getResponse();63 ->getResponse();64 }64 }65 }65 }@@ -74,11 +74,11 @@ public function postUsers(Request $request): JsonResponse74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);757576if (! $newUser instanceof User) {76if (! $newUser instanceof User) {77-return (new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed'))77+return new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed')78 ->getResponse();78 ->getResponse();79 }79 }808081-return (new CoreUser())81+return new CoreUser()82 ->createFromUser($newUser)82 ->createFromUser($newUser)83 ->setExternalId($requestDTO->getUserName())83 ->setExternalId($requestDTO->getUserName())84 ->setHttpCode(Constants::HTTP_CREATED)84 ->setHttpCode(Constants::HTTP_CREATED)@@ -93,22 +93,22 @@ public function putUsers(Request $request, string $id): JsonResponse93$team = $this->getTeamFromRequest($request);93$team = $this->getTeamFromRequest($request);949495if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {95if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {96-return (new Error())->getResponse();96+return new Error()->getResponse();97 }97 }989899-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);99+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);100100101try {101try {102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);103103104-return (new CoreUser())104+return new CoreUser()105 ->createFromUser($user)105 ->createFromUser($user)106 ->setHttpCode(Constants::HTTP_OK)106 ->setHttpCode(Constants::HTTP_OK)107 ->getResponse();107 ->getResponse();108 } catch (Exception $exception) {108 } catch (Exception $exception) {109 Sentry::captureException($exception);109 Sentry::captureException($exception);110110111-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();111+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();112 }112 }113 }113 }114114@@ -117,7 +117,7 @@ public function deleteUser(Request $request, string $id): JsonResponse117$team = $this->getTeamFromRequest($request);117$team = $this->getTeamFromRequest($request);118118119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {120-return (new Error())->getResponse();120+return new Error()->getResponse();121 }121 }122122123$user = $this->scimProvisioning->getUserById($id);123$user = $this->scimProvisioning->getUserById($id);@@ -131,18 +131,18 @@ public function deleteUser(Request $request, string $id): JsonResponse131 ),131 ),132 );132 );133133134-return (new JsonResponse())->setStatusCode(204);134+return new JsonResponse()->setStatusCode(204);135 }135 }136136137public function patchUser(Request $request, string $id): JsonResponse137public function patchUser(Request $request, string $id): JsonResponse138 {138 {139$team = $this->getTeamFromRequest($request);139$team = $this->getTeamFromRequest($request);140140141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {142-return (new Error())->getResponse();142+return new Error()->getResponse();143 }143 }144144145-$requestDTO = (new PatchUser())145+$requestDTO = new PatchUser()146 ->setResourceLocalId($id)146 ->setResourceLocalId($id)147 ->createFromRequestPayload($request);147 ->createFromRequestPayload($request);148148@@ -153,10 +153,10 @@ public function patchUser(Request $request, string $id): JsonResponse153 } catch (Exception $e) {153 } catch (Exception $e) {154 Sentry::captureException($e);154 Sentry::captureException($e);155155156-return (new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed'))->getResponse();156+return new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed')->getResponse();157 }157 }158158159-return (new CoreUser())159+return new CoreUser()160 ->createFromUser($user)160 ->createFromUser($user)161 ->setHttpCode(Constants::HTTP_OK)161 ->setHttpCode(Constants::HTTP_OK)162 ->getResponse();162 ->getResponse();@@ -167,16 +167,16 @@ public function getUser(Request $request, string $id): JsonResponse167$team = $this->getTeamFromRequest($request);167$team = $this->getTeamFromRequest($request);168168169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {170-return (new Error())->getResponse();170+return new Error()->getResponse();171 }171 }172172173$user = $this->scimProvisioning->getUserById($id);173$user = $this->scimProvisioning->getUserById($id);174174175if (! $team->isSame($user->getTeam())) {175if (! $team->isSame($user->getTeam())) {176-return (new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.'))->getResponse();176+return new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.')->getResponse();177 }177 }178178179-return (new CoreUser())179+return new CoreUser()180 ->setHttpCode(Constants::HTTP_OK)180 ->setHttpCode(Constants::HTTP_OK)181 ->createFromUser($user)181 ->createFromUser($user)182 ->getResponse();182 ->getResponse();@@ -186,20 +186,20 @@ public function getUsersByQuery(Request $request): JsonResponse186 {186 {187$team = $this->getTeamFromRequest($request);187$team = $this->getTeamFromRequest($request);188188189-$requestDto = (new GetUserByQuery())->createFromRequestPayload($request);189+$requestDto = new GetUserByQuery()->createFromRequestPayload($request);190190191try {191try {192$resultsQuery = $this->scimProvisioning192$resultsQuery = $this->scimProvisioning193 ->translateQueryStringsToUserModelQuery($requestDto, $team);193 ->translateQueryStringsToUserModelQuery($requestDto, $team);194 } catch (Exception $exception) {194 } catch (Exception $exception) {195-return (new ListResponse())->createEmpty()->getResponse();195+return new ListResponse()->createEmpty()->getResponse();196 }196 }197197198$resultsQuery198$resultsQuery199 ->limit($requestDto->getCount())199 ->limit($requestDto->getCount())200 ->offset($requestDto->getStartIndex() - 1);200 ->offset($requestDto->getStartIndex() - 1);201201202-return (new ListResponse())202+return new ListResponse()203 ->setHttpCode(Constants::HTTP_OK)203 ->setHttpCode(Constants::HTTP_OK)204 ->setStartIndex($requestDto->getStartIndex())204 ->setStartIndex($requestDto->getStartIndex())205 ->createFromCollection($resultsQuery->get())205 ->createFromCollection($resultsQuery->get())@@ -210,15 +210,15 @@ public function postGroups(Request $request): JsonResponse210 {210 {211$team = $this->getTeamFromRequest($request);211$team = $this->getTeamFromRequest($request);212212213-$requestDto = (new CoreGroupRequest())->createFromRequestPayload($request);213+$requestDto = new CoreGroupRequest()->createFromRequestPayload($request);214214215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);216216217if (! $group instanceof Group) {217if (! $group instanceof Group) {218-return (new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed'))->getResponse();218+return new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed')->getResponse();219 }219 }220220221-$response = (new CoreGroup())->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();221+$response = new CoreGroup()->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();222222223return $response;223return $response;224 }224 }@@ -228,22 +228,22 @@ public function putGroups(Request $request, string $id): JsonResponse228$team = $this->getTeamFromRequest($request);228$team = $this->getTeamFromRequest($request);229229230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {231-return (new Error())->getResponse();231+return new Error()->getResponse();232 }232 }233233234-$requestDTO = (new CoreGroupRequest())->createFromRequestPayload($request);234+$requestDTO = new CoreGroupRequest()->createFromRequestPayload($request);235235236try {236try {237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);238238239-return (new CoreGroup())239+return new CoreGroup()240 ->createFromGroup($group)240 ->createFromGroup($group)241 ->setHttpCode(Constants::HTTP_OK)241 ->setHttpCode(Constants::HTTP_OK)242 ->getResponse();242 ->getResponse();243 } catch (Exception $exception) {243 } catch (Exception $exception) {244 Sentry::captureException($exception);244 Sentry::captureException($exception);245245246-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();246+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();247 }247 }248 }248 }249249@@ -252,12 +252,12 @@ public function getGroup(Request $request, string $id): JsonResponse252$team = $this->getTeamFromRequest($request);252$team = $this->getTeamFromRequest($request);253253254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {255-return (new Error())->getResponse();255+return new Error()->getResponse();256 }256 }257257258$group = $this->scimProvisioning->getGroupById($id);258$group = $this->scimProvisioning->getGroupById($id);259259260-return (new CoreGroup())260+return new CoreGroup()261 ->excludeAttributes($request)261 ->excludeAttributes($request)262 ->setHttpCode(Constants::HTTP_OK)262 ->setHttpCode(Constants::HTTP_OK)263 ->createFromGroup($group)263 ->createFromGroup($group)@@ -268,19 +268,19 @@ public function getGroupByQuery(Request $request): JsonResponse268 {268 {269$team = $this->getTeamFromRequest($request);269$team = $this->getTeamFromRequest($request);270270271-$dto = (new GetGroupByQuery())->createFromRequestPayload($request);271+$dto = new GetGroupByQuery()->createFromRequestPayload($request);272272273try {273try {274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);275 } catch (Exception $exception) {275 } catch (Exception $exception) {276-return (new ListResponse())->createEmpty()->getResponse();276+return new ListResponse()->createEmpty()->getResponse();277 }277 }278278279$groupsQuery279$groupsQuery280 ->limit($dto->getCount())280 ->limit($dto->getCount())281 ->offset($dto->getStartIndex() - 1);281 ->offset($dto->getStartIndex() - 1);282282283-return (new ListResponse())283+return new ListResponse()284 ->setHttpCode(Constants::HTTP_OK)284 ->setHttpCode(Constants::HTTP_OK)285 ->setStartIndex($dto->getStartIndex())285 ->setStartIndex($dto->getStartIndex())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())@@ -292,30 +292,30 @@ public function patchGroup(Request $request, $id): JsonResponse292$team = $this->getTeamFromRequest($request);292$team = $this->getTeamFromRequest($request);293293294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {295-return (new Error())->getResponse();295+return new Error()->getResponse();296 }296 }297297298-$dto = (new PatchGroup())->createFromRequestPayload($request);298+$dto = new PatchGroup()->createFromRequestPayload($request);299299300$group = Group::uuid($id);300$group = Group::uuid($id);301301302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);303303304-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);304+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);305 }305 }306306307public function deleteGroup(Request $request, $id): JsonResponse307public function deleteGroup(Request $request, $id): JsonResponse308 {308 {309$team = $this->getTeamFromRequest($request);309$team = $this->getTeamFromRequest($request);310310311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {312-return (new Error())->getResponse();312+return new Error()->getResponse();313 }313 }314314315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {316-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);316+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);317 } else {317 } else {318-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();318+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();319 }319 }320 }320 }321321</selection>” selected. Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
You said
I’m on page “<tabTitle>JY-18091 | Update composer to support php 8.5 by n</tabTitle>” with “<selection>@@ -40,15 +40,15 @@ public function postUsers(Request $request): JsonResponse40 {40 {41$team = $this->getTeamFromRequest($request);41$team = $this->getTeamFromRequest($request);424243-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);43+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);444445if ($requestDTO->getPrimaryPhoneNumber() !== null) {45if ($requestDTO->getPrimaryPhoneNumber() !== null) {46$user = $this->userRepository->findByPhone(46$user = $this->userRepository->findByPhone(47 phone: $requestDTO->getPrimaryPhoneNumber(),47 phone: $requestDTO->getPrimaryPhoneNumber(),48 );48 );494950if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {50if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {51-return (new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists'))51+return new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists')52 ->getResponse();52 ->getResponse();53 }53 }54 }54 }@@ -59,7 +59,7 @@ public function postUsers(Request $request): JsonResponse59 );59 );606061if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {61if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {62-return (new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists'))62+return new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists')63 ->getResponse();63 ->getResponse();64 }64 }65 }65 }@@ -74,11 +74,11 @@ public function postUsers(Request $request): JsonResponse74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);757576if (! $newUser instanceof User) {76if (! $newUser instanceof User) {77-return (new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed'))77+return new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed')78 ->getResponse();78 ->getResponse();79 }79 }808081-return (new CoreUser())81+return new CoreUser()82 ->createFromUser($newUser)82 ->createFromUser($newUser)83 ->setExternalId($requestDTO->getUserName())83 ->setExternalId($requestDTO->getUserName())84 ->setHttpCode(Constants::HTTP_CREATED)84 ->setHttpCode(Constants::HTTP_CREATED)@@ -93,22 +93,22 @@ public function putUsers(Request $request, string $id): JsonResponse93$team = $this->getTeamFromRequest($request);93$team = $this->getTeamFromRequest($request);949495if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {95if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {96-return (new Error())->getResponse();96+return new Error()->getResponse();97 }97 }989899-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);99+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);100100101try {101try {102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);103103104-return (new CoreUser())104+return new CoreUser()105 ->createFromUser($user)105 ->createFromUser($user)106 ->setHttpCode(Constants::HTTP_OK)106 ->setHttpCode(Constants::HTTP_OK)107 ->getResponse();107 ->getResponse();108 } catch (Exception $exception) {108 } catch (Exception $exception) {109 Sentry::captureException($exception);109 Sentry::captureException($exception);110110111-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();111+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();112 }112 }113 }113 }114114@@ -117,7 +117,7 @@ public function deleteUser(Request $request, string $id): JsonResponse117$team = $this->getTeamFromRequest($request);117$team = $this->getTeamFromRequest($request);118118119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {120-return (new Error())->getResponse();120+return new Error()->getResponse();121 }121 }122122123$user = $this->scimProvisioning->getUserById($id);123$user = $this->scimProvisioning->getUserById($id);@@ -131,18 +131,18 @@ public function deleteUser(Request $request, string $id): JsonResponse131 ),131 ),132 );132 );133133134-return (new JsonResponse())->setStatusCode(204);134+return new JsonResponse()->setStatusCode(204);135 }135 }136136137public function patchUser(Request $request, string $id): JsonResponse137public function patchUser(Request $request, string $id): JsonResponse138 {138 {139$team = $this->getTeamFromRequest($request);139$team = $this->getTeamFromRequest($request);140140141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {142-return (new Error())->getResponse();142+return new Error()->getResponse();143 }143 }144144145-$requestDTO = (new PatchUser())145+$requestDTO = new PatchUser()146 ->setResourceLocalId($id)146 ->setResourceLocalId($id)147 ->createFromRequestPayload($request);147 ->createFromRequestPayload($request);148148@@ -153,10 +153,10 @@ public function patchUser(Request $request, string $id): JsonResponse153 } catch (Exception $e) {153 } catch (Exception $e) {154 Sentry::captureException($e);154 Sentry::captureException($e);155155156-return (new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed'))->getResponse();156+return new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed')->getResponse();157 }157 }158158159-return (new CoreUser())159+return new CoreUser()160 ->createFromUser($user)160 ->createFromUser($user)161 ->setHttpCode(Constants::HTTP_OK)161 ->setHttpCode(Constants::HTTP_OK)162 ->getResponse();162 ->getResponse();@@ -167,16 +167,16 @@ public function getUser(Request $request, string $id): JsonResponse167$team = $this->getTeamFromRequest($request);167$team = $this->getTeamFromRequest($request);168168169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {170-return (new Error())->getResponse();170+return new Error()->getResponse();171 }171 }172172173$user = $this->scimProvisioning->getUserById($id);173$user = $this->scimProvisioning->getUserById($id);174174175if (! $team->isSame($user->getTeam())) {175if (! $team->isSame($user->getTeam())) {176-return (new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.'))->getResponse();176+return new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.')->getResponse();177 }177 }178178179-return (new CoreUser())179+return new CoreUser()180 ->setHttpCode(Constants::HTTP_OK)180 ->setHttpCode(Constants::HTTP_OK)181 ->createFromUser($user)181 ->createFromUser($user)182 ->getResponse();182 ->getResponse();@@ -186,20 +186,20 @@ public function getUsersByQuery(Request $request): JsonResponse186 {186 {187$team = $this->getTeamFromRequest($request);187$team = $this->getTeamFromRequest($request);188188189-$requestDto = (new GetUserByQuery())->createFromRequestPayload($request);189+$requestDto = new GetUserByQuery()->createFromRequestPayload($request);190190191try {191try {192$resultsQuery = $this->scimProvisioning192$resultsQuery = $this->scimProvisioning193 ->translateQueryStringsToUserModelQuery($requestDto, $team);193 ->translateQueryStringsToUserModelQuery($requestDto, $team);194 } catch (Exception $exception) {194 } catch (Exception $exception) {195-return (new ListResponse())->createEmpty()->getResponse();195+return new ListResponse()->createEmpty()->getResponse();196 }196 }197197198$resultsQuery198$resultsQuery199 ->limit($requestDto->getCount())199 ->limit($requestDto->getCount())200 ->offset($requestDto->getStartIndex() - 1);200 ->offset($requestDto->getStartIndex() - 1);201201202-return (new ListResponse())202+return new ListResponse()203 ->setHttpCode(Constants::HTTP_OK)203 ->setHttpCode(Constants::HTTP_OK)204 ->setStartIndex($requestDto->getStartIndex())204 ->setStartIndex($requestDto->getStartIndex())205 ->createFromCollection($resultsQuery->get())205 ->createFromCollection($resultsQuery->get())@@ -210,15 +210,15 @@ public function postGroups(Request $request): JsonResponse210 {210 {211$team = $this->getTeamFromRequest($request);211$team = $this->getTeamFromRequest($request);212212213-$requestDto = (new CoreGroupRequest())->createFromRequestPayload($request);213+$requestDto = new CoreGroupRequest()->createFromRequestPayload($request);214214215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);216216217if (! $group instanceof Group) {217if (! $group instanceof Group) {218-return (new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed'))->getResponse();218+return new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed')->getResponse();219 }219 }220220221-$response = (new CoreGroup())->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();221+$response = new CoreGroup()->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();222222223return $response;223return $response;224 }224 }@@ -228,22 +228,22 @@ public function putGroups(Request $request, string $id): JsonResponse228$team = $this->getTeamFromRequest($request);228$team = $this->getTeamFromRequest($request);229229230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {231-return (new Error())->getResponse();231+return new Error()->getResponse();232 }232 }233233234-$requestDTO = (new CoreGroupRequest())->createFromRequestPayload($request);234+$requestDTO = new CoreGroupRequest()->createFromRequestPayload($request);235235236try {236try {237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);238238239-return (new CoreGroup())239+return new CoreGroup()240 ->createFromGroup($group)240 ->createFromGroup($group)241 ->setHttpCode(Constants::HTTP_OK)241 ->setHttpCode(Constants::HTTP_OK)242 ->getResponse();242 ->getResponse();243 } catch (Exception $exception) {243 } catch (Exception $exception) {244 Sentry::captureException($exception);244 Sentry::captureException($exception);245245246-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();246+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();247 }247 }248 }248 }249249@@ -252,12 +252,12 @@ public function getGroup(Request $request, string $id): JsonResponse252$team = $this->getTeamFromRequest($request);252$team = $this->getTeamFromRequest($request);253253254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {255-return (new Error())->getResponse();255+return new Error()->getResponse();256 }256 }257257258$group = $this->scimProvisioning->getGroupById($id);258$group = $this->scimProvisioning->getGroupById($id);259259260-return (new CoreGroup())260+return new CoreGroup()261 ->excludeAttributes($request)261 ->excludeAttributes($request)262 ->setHttpCode(Constants::HTTP_OK)262 ->setHttpCode(Constants::HTTP_OK)263 ->createFromGroup($group)263 ->createFromGroup($group)@@ -268,19 +268,19 @@ public function getGroupByQuery(Request $request): JsonResponse268 {268 {269$team = $this->getTeamFromRequest($request);269$team = $this->getTeamFromRequest($request);270270271-$dto = (new GetGroupByQuery())->createFromRequestPayload($request);271+$dto = new GetGroupByQuery()->createFromRequestPayload($request);272272273try {273try {274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);275 } catch (Exception $exception) {275 } catch (Exception $exception) {276-return (new ListResponse())->createEmpty()->getResponse();276+return new ListResponse()->createEmpty()->getResponse();277 }277 }278278279$groupsQuery279$groupsQuery280 ->limit($dto->getCount())280 ->limit($dto->getCount())281 ->offset($dto->getStartIndex() - 1);281 ->offset($dto->getStartIndex() - 1);282282283-return (new ListResponse())283+return new ListResponse()284 ->setHttpCode(Constants::HTTP_OK)284 ->setHttpCode(Constants::HTTP_OK)285 ->setStartIndex($dto->getStartIndex())285 ->setStartIndex($dto->getStartIndex())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())@@ -292,30 +292,30 @@ public function patchGroup(Request $request, $id): JsonResponse292$team = $this->getTeamFromRequest($request);292$team = $this->getTeamFromRequest($request);293293294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {295-return (new Error())->getResponse();295+return new Error()->getResponse();296 }296 }297297298-$dto = (new PatchGroup())->createFromRequestPayload($request);298+$dto = new PatchGroup()->createFromRequestPayload($request);299299300$group = Group::uuid($id);300$group = Group::uuid($id);301301302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);303303304-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);304+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);305 }305 }306306307public function deleteGroup(Request $request, $id): JsonResponse307public function deleteGroup(Request $request, $id): JsonResponse308 {308 {309$team = $this->getTeamFromRequest($request);309$team = $this->getTeamFromRequest($request);310310311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {312-return (new Error())->getResponse();312+return new Error()->getResponse();313 }313 }314314315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {316-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);316+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);317 } else {317 } else {318-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();318+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();319 }319 }320 }320 }321321</selection>” selected.
Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
Expand
Listen
Gemini said
Gemini said
The selected code changes represent a mechanical refactoring of a PHP controller to align with modern syntax standards, likely as part of the upgrade to
PHP 8.5
.
Core Change: Member Access on Instantiation
Core Change: Member Access on Instantiation
The primary modification across the entire file is the removal of unnecessary parentheses when performing member access (method chaining) on a newly instantiated object.
Pattern:
(new ClassName())->method()
is simplified to
new ClassName()->method()
.
Reasoning:
Since PHP 8.0+, the parser handles member access on new expressions without requiring the wrapping parentheses for disambiguation.
Affected Components
Affected Components
The refactoring impacts various response and DTO (Data Transfer Object) initializations within the following SCIM (System for Cross-domain Identity Management) endpoints:
User Management:
postUsers
: Simplified instantiation of
CoreUserRequest
,
Error
, and
CoreUser
.
putUsers
/
patchUser
/
getUser
: Updated
Error
,
CoreUser
, and
PatchUser
calls.
getUsersByQuery
: Updated
GetUserByQuery
and
ListResponse
.
deleteUser
: Updated
JsonResponse
and
Error
.
Group Management:
postGroups
: Simplified
CoreGroupRequest
,
Error
, and
CoreGroup
.
putGroups
/
getGroup
: Updated
CoreGroupRequest
and
Error
.
getGroupByQuery
: Updated
GetGroupByQuery
and
ListResponse
.
patchGroup
/
deleteGroup
: Updated
PatchGroup
,
JsonResponse
, and
Error
.
Technical Impact
Technical Impact
No Functional Change:
The logic for user provisioning, group updates, and error handling remains identical.
Code Cleanliness:
Reduces visual noise and adopts the more concise syntax permitted in recent PHP versions.
Good response
Bad response
Share & export
Copy
Show more options
Copy prompt
Edit
You said are there soem potential issues?
You said
are there soem potential issues?
Listen
Gemini said
Gemini said
While this refactoring is syntactically correct for modern PHP, there are a few practical and technical "gotchas" to consider when moving from
(new Class())->method()
to
new Class()->method()
.
1. Language Compatibility (Backward Compatibility)
1. Language Compatibility (Backward Compatibility)
The biggest risk is the PHP version itself.
PHP < 8.0:
This change will cause a
Parse Error
. Prior to PHP 8.0, the parser could not handle member access on a
new
expression without parentheses.
The "Trap":
If your production environment is updated to PHP 8.5 but a developer's local environment or a specific CI runner is still on PHP 7.4, the code will break immediately.
2. Operator Precedence and Readability
2. Operator Precedence and Readability
While the engine now understands this syntax, human developers might find it slightly more ambiguous at a glance.
Visual Grouping:
The parentheses
(new Class())
act as a visual "container," making it clear that the instantiation happens first. Without them, in very complex one-liners, it can take a fraction of a second longer for a human to parse the execution order.
Consistency:
If only half the codebase is updated, the inconsistency can lead to "style drift," where different developers follow different patterns, making the code feel disorganized.
3. Tooling and IDE Support
3. Tooling and IDE Support
Static Analysis:
Older versions of static analysis tools (like PHPStan or Psalm) or older IDE versions might flag the new syntax as an error or "low-quality code" if they aren't configured for PHP 8.0+.
Automated Refactoring:
If this change was done via an automated tool (like Rector), it is usually safe. However, if done via "Find and Replace," there is a risk of accidentally stripping parentheses from complex expressions where they might still be required for logic.
4. Error Reporting Sensitivity
4. Error Reporting Sensitivity
In some edge cases, if the constructor of the class throws an exception:
The stack trace remains the same, but when debugging "on the fly" in some older debugger clients, the lack of grouping can occasionally make it slightly harder to evaluate the object state
before
the method call in a watch window.
Summary of Risk Levels
Summary of Risk Levels
Risk Factor
Level
Mitigation
Production Crash
High
Ensure
platform
in
composer.json
is set to
8.0
or higher.
Developer Confusion
Low
Update team style guides to reflect PHP 8.x standards.
Linting Errors
Medium
Update CI/CD linting rules to support modern PHP syntax.
Risk Factor
Production Crash
Developer Confusion
Linting Errors
Level
High
Low
Medium
Mitigation
Ensure
platform
in
composer.json
is set to
8.0
or higher.
Update team style guides to reflect PHP 8.x standards.
Update CI/CD linting rules to support modern PHP syntax.
Copy table
Are you planning to deploy this to an environment where you are certain the PHP version is strictly 8.0 or higher?
Good response
Bad response
Redo
Share & export
Copy
Show more options
Enter a prompt for Gemini
encrypted
Enter a prompt for Gemini
encrypted
Open upload file menu
Tools
Open mode picker
Fast
Microphone
Send message
Your Jiminny chats aren’t used to improve our models. Gemini is AI. It can make mistakes, so double check it.
Your privacy & Gemini Opens in a new window
Your privacy & Gemini
Opens in a new window
Summarize page
Summarize page
Skip to content
Skip to content
Open menu
Homepage (g then d)
jiminny
jiminny
app
app
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
All issues(g then i)
All pull requests
All repositories
You have unread notifications(g then n)
Open user navigation menu
Repository navigation
Repository navigation
Code
Code
Pull requests (29)
Pull requests
(
29
)
Agents
Agents
Actions
Actions
Wiki
Wiki
Security and quality
Security and quality
Insights
Insights
Settings
Settings
Important update
Important update
On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.
Review this update
Review this update
and manage your preferences in your
GitHub account settings
GitHub account settings
.
Dismiss banner
JY-20903 Update activity stage when opportunity is changed #12077 Edit title
JY-20903 Update activity stage when opportunity is changed
#
12077
Edit title
Awaiting approval
Awaiting approval
Code
Code
Open
LakyLak
LakyLak
wants to merge 1 commit into
master
master
from
JY-20903-update_activity-stage-on-opportunity-change
JY-20903-update_activity-stage-on-opportunity-change
Copy head branch name to clipboard
Lines changed: 10 additions & 5 deletions
Conversation (2)
Conversation
(
2
)
Commits (1)
Commits
(
1
)
Checks (4)
Checks
(
4
)
Files changed (2)
Files changed
(
2
)
Conversation
Conversation
@LakyLak
Show options
LakyLak commented 2 hours ago
LakyLak
LakyLak
commented
2 hours ago
2 hours ago
JIRA: JY-20903
JIRA:
JY-20903
JY-20903
Changes:
Changes:
Reset stage on activity if opportunity is changed
Add or remove reactions
@LakyLak
JY-20903
JY-20903
Update activity stage when opportunity is changed
Update activity stage when opportunity is changed
12 / 13 checks OK
8dac0df
8dac0df
@sonarqubecloud
Show options
sonarqubecloud Bot commented 2 hours ago
sonarqubecloud
sonarqubecloud
Bot
commented
2 hours ago
2 hours ago
Quality Gate Passed Quality Gate passed
Quality Gate Passed
Quality Gate passed
Issues
0 New issues
0 New issues
0 Accepted issues
0 Accepted issues
Measures
0 Security Hotspots
0 Security Hotspots
0.0% Coverage on New Code
0.0% Coverage on New Code
0.0% Duplication on New Code
0.0% Duplication on New Code
See analysis details on SonarQube Cloud
See analysis details on SonarQube Cloud
Add or remove reactions
@LakyLak
LakyLak
LakyLak
requested review from
Vasil-Jiminny
Vasil-Jiminny
,
nikolaybiaivanov
nikolaybiaivanov
and
yalokin-jiminny
yalokin-jiminny
1 hour ago
1 hour ago
Vasil-Jiminny
Vasil-Jiminny
Vasil-Jiminny
reviewed
1 hour ago
1 hour ago
View reviewed changes
View reviewed changes
Comment thread
app/Console/Commands/Activities/FixActivitiesOpportunity.php
app/Console/Commands/Activities/FixActivitiesOpportunity.php
123
-
$activity->update(['opportunity_id' => $opportunity->getId()]);
123
+
$activity->update([
124
+
'opportunity_id' => $opportunity->getId(),
125
+
'stage_id' => $opportunity->getStageId(),
123
123
124...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
42933
|
|
42934
|
Unnamed Group
Platform Sprint 4 Q2 - Platform Team Unnamed Group
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Usage | Windsurf
Usage | Windsurf
Unnamed Group
[SRD-6848] Sidekick SMS issue - Jira
[SRD-6848] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
Unnamed Group
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Unnamed Group
[SRD-6853] Moxso - Potential deal stages bug - Jira
[SRD-6853] Moxso - Potential deal stages bug - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
Close tab
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Useful commands - Engineering - Confluence
Useful commands - Engineering - Confluence
Dev Tools - Elastic
Dev Tools - Elastic
Jiminny
Jiminny
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
CloudWatch | eu-west-1
Unnamed Group
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
JY-20904 Fix UpdateActivityElasticSearchDocumentCommand find activity… by LakyLak · Pull Request #12078 · jiminny/app
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
[JY-20904] Fix UpdateActivityElasticSearchDocumentCommand - Jira
Pipedrive Developers Corner | Pipedrive API sandbox
Pipedrive Developers Corner | Pipedrive API sandbox
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
daniti/pipedrive-laravel: A Pipedrive App boilerplate with Laravel
pipedrive/client-php: Pipedrive API client for PHP
pipedrive/client-php: Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
IsraelOrtuno/pipedrive: Complete Pipedrive API client for PHP
Code search results
Code search results
Jiminny
Jiminny
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
New Tab
Customize sidebar
Close Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AI Chat settings
Close
WORK, Google Account: [EMAIL]
Main menu
New Chat
Open menu for conversation actions.
Conversation with Gemini
Conversation with Gemini
Copy prompt
You said I’m on page “<tabTitle>JY-18091 | Update composer to support php 8.5 by n</tabTitle>” with “<selection>@@ -40,15 +40,15 @@ public function postUsers(Request $request): JsonResponse40 {40 {41$team = $this->getTeamFromRequest($request);41$team = $this->getTeamFromRequest($request);424243-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);43+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);444445if ($requestDTO->getPrimaryPhoneNumber() !== null) {45if ($requestDTO->getPrimaryPhoneNumber() !== null) {46$user = $this->userRepository->findByPhone(46$user = $this->userRepository->findByPhone(47 phone: $requestDTO->getPrimaryPhoneNumber(),47 phone: $requestDTO->getPrimaryPhoneNumber(),48 );48 );494950if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {50if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {51-return (new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists'))51+return new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists')52 ->getResponse();52 ->getResponse();53 }53 }54 }54 }@@ -59,7 +59,7 @@ public function postUsers(Request $request): JsonResponse59 );59 );606061if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {61if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {62-return (new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists'))62+return new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists')63 ->getResponse();63 ->getResponse();64 }64 }65 }65 }@@ -74,11 +74,11 @@ public function postUsers(Request $request): JsonResponse74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);757576if (! $newUser instanceof User) {76if (! $newUser instanceof User) {77-return (new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed'))77+return new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed')78 ->getResponse();78 ->getResponse();79 }79 }808081-return (new CoreUser())81+return new CoreUser()82 ->createFromUser($newUser)82 ->createFromUser($newUser)83 ->setExternalId($requestDTO->getUserName())83 ->setExternalId($requestDTO->getUserName())84 ->setHttpCode(Constants::HTTP_CREATED)84 ->setHttpCode(Constants::HTTP_CREATED)@@ -93,22 +93,22 @@ public function putUsers(Request $request, string $id): JsonResponse93$team = $this->getTeamFromRequest($request);93$team = $this->getTeamFromRequest($request);949495if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {95if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {96-return (new Error())->getResponse();96+return new Error()->getResponse();97 }97 }989899-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);99+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);100100101try {101try {102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);103103104-return (new CoreUser())104+return new CoreUser()105 ->createFromUser($user)105 ->createFromUser($user)106 ->setHttpCode(Constants::HTTP_OK)106 ->setHttpCode(Constants::HTTP_OK)107 ->getResponse();107 ->getResponse();108 } catch (Exception $exception) {108 } catch (Exception $exception) {109 Sentry::captureException($exception);109 Sentry::captureException($exception);110110111-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();111+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();112 }112 }113 }113 }114114@@ -117,7 +117,7 @@ public function deleteUser(Request $request, string $id): JsonResponse117$team = $this->getTeamFromRequest($request);117$team = $this->getTeamFromRequest($request);118118119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {120-return (new Error())->getResponse();120+return new Error()->getResponse();121 }121 }122122123$user = $this->scimProvisioning->getUserById($id);123$user = $this->scimProvisioning->getUserById($id);@@ -131,18 +131,18 @@ public function deleteUser(Request $request, string $id): JsonResponse131 ),131 ),132 );132 );133133134-return (new JsonResponse())->setStatusCode(204);134+return new JsonResponse()->setStatusCode(204);135 }135 }136136137public function patchUser(Request $request, string $id): JsonResponse137public function patchUser(Request $request, string $id): JsonResponse138 {138 {139$team = $this->getTeamFromRequest($request);139$team = $this->getTeamFromRequest($request);140140141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {142-return (new Error())->getResponse();142+return new Error()->getResponse();143 }143 }144144145-$requestDTO = (new PatchUser())145+$requestDTO = new PatchUser()146 ->setResourceLocalId($id)146 ->setResourceLocalId($id)147 ->createFromRequestPayload($request);147 ->createFromRequestPayload($request);148148@@ -153,10 +153,10 @@ public function patchUser(Request $request, string $id): JsonResponse153 } catch (Exception $e) {153 } catch (Exception $e) {154 Sentry::captureException($e);154 Sentry::captureException($e);155155156-return (new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed'))->getResponse();156+return new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed')->getResponse();157 }157 }158158159-return (new CoreUser())159+return new CoreUser()160 ->createFromUser($user)160 ->createFromUser($user)161 ->setHttpCode(Constants::HTTP_OK)161 ->setHttpCode(Constants::HTTP_OK)162 ->getResponse();162 ->getResponse();@@ -167,16 +167,16 @@ public function getUser(Request $request, string $id): JsonResponse167$team = $this->getTeamFromRequest($request);167$team = $this->getTeamFromRequest($request);168168169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {170-return (new Error())->getResponse();170+return new Error()->getResponse();171 }171 }172172173$user = $this->scimProvisioning->getUserById($id);173$user = $this->scimProvisioning->getUserById($id);174174175if (! $team->isSame($user->getTeam())) {175if (! $team->isSame($user->getTeam())) {176-return (new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.'))->getResponse();176+return new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.')->getResponse();177 }177 }178178179-return (new CoreUser())179+return new CoreUser()180 ->setHttpCode(Constants::HTTP_OK)180 ->setHttpCode(Constants::HTTP_OK)181 ->createFromUser($user)181 ->createFromUser($user)182 ->getResponse();182 ->getResponse();@@ -186,20 +186,20 @@ public function getUsersByQuery(Request $request): JsonResponse186 {186 {187$team = $this->getTeamFromRequest($request);187$team = $this->getTeamFromRequest($request);188188189-$requestDto = (new GetUserByQuery())->createFromRequestPayload($request);189+$requestDto = new GetUserByQuery()->createFromRequestPayload($request);190190191try {191try {192$resultsQuery = $this->scimProvisioning192$resultsQuery = $this->scimProvisioning193 ->translateQueryStringsToUserModelQuery($requestDto, $team);193 ->translateQueryStringsToUserModelQuery($requestDto, $team);194 } catch (Exception $exception) {194 } catch (Exception $exception) {195-return (new ListResponse())->createEmpty()->getResponse();195+return new ListResponse()->createEmpty()->getResponse();196 }196 }197197198$resultsQuery198$resultsQuery199 ->limit($requestDto->getCount())199 ->limit($requestDto->getCount())200 ->offset($requestDto->getStartIndex() - 1);200 ->offset($requestDto->getStartIndex() - 1);201201202-return (new ListResponse())202+return new ListResponse()203 ->setHttpCode(Constants::HTTP_OK)203 ->setHttpCode(Constants::HTTP_OK)204 ->setStartIndex($requestDto->getStartIndex())204 ->setStartIndex($requestDto->getStartIndex())205 ->createFromCollection($resultsQuery->get())205 ->createFromCollection($resultsQuery->get())@@ -210,15 +210,15 @@ public function postGroups(Request $request): JsonResponse210 {210 {211$team = $this->getTeamFromRequest($request);211$team = $this->getTeamFromRequest($request);212212213-$requestDto = (new CoreGroupRequest())->createFromRequestPayload($request);213+$requestDto = new CoreGroupRequest()->createFromRequestPayload($request);214214215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);216216217if (! $group instanceof Group) {217if (! $group instanceof Group) {218-return (new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed'))->getResponse();218+return new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed')->getResponse();219 }219 }220220221-$response = (new CoreGroup())->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();221+$response = new CoreGroup()->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();222222223return $response;223return $response;224 }224 }@@ -228,22 +228,22 @@ public function putGroups(Request $request, string $id): JsonResponse228$team = $this->getTeamFromRequest($request);228$team = $this->getTeamFromRequest($request);229229230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {231-return (new Error())->getResponse();231+return new Error()->getResponse();232 }232 }233233234-$requestDTO = (new CoreGroupRequest())->createFromRequestPayload($request);234+$requestDTO = new CoreGroupRequest()->createFromRequestPayload($request);235235236try {236try {237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);238238239-return (new CoreGroup())239+return new CoreGroup()240 ->createFromGroup($group)240 ->createFromGroup($group)241 ->setHttpCode(Constants::HTTP_OK)241 ->setHttpCode(Constants::HTTP_OK)242 ->getResponse();242 ->getResponse();243 } catch (Exception $exception) {243 } catch (Exception $exception) {244 Sentry::captureException($exception);244 Sentry::captureException($exception);245245246-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();246+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();247 }247 }248 }248 }249249@@ -252,12 +252,12 @@ public function getGroup(Request $request, string $id): JsonResponse252$team = $this->getTeamFromRequest($request);252$team = $this->getTeamFromRequest($request);253253254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {255-return (new Error())->getResponse();255+return new Error()->getResponse();256 }256 }257257258$group = $this->scimProvisioning->getGroupById($id);258$group = $this->scimProvisioning->getGroupById($id);259259260-return (new CoreGroup())260+return new CoreGroup()261 ->excludeAttributes($request)261 ->excludeAttributes($request)262 ->setHttpCode(Constants::HTTP_OK)262 ->setHttpCode(Constants::HTTP_OK)263 ->createFromGroup($group)263 ->createFromGroup($group)@@ -268,19 +268,19 @@ public function getGroupByQuery(Request $request): JsonResponse268 {268 {269$team = $this->getTeamFromRequest($request);269$team = $this->getTeamFromRequest($request);270270271-$dto = (new GetGroupByQuery())->createFromRequestPayload($request);271+$dto = new GetGroupByQuery()->createFromRequestPayload($request);272272273try {273try {274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);275 } catch (Exception $exception) {275 } catch (Exception $exception) {276-return (new ListResponse())->createEmpty()->getResponse();276+return new ListResponse()->createEmpty()->getResponse();277 }277 }278278279$groupsQuery279$groupsQuery280 ->limit($dto->getCount())280 ->limit($dto->getCount())281 ->offset($dto->getStartIndex() - 1);281 ->offset($dto->getStartIndex() - 1);282282283-return (new ListResponse())283+return new ListResponse()284 ->setHttpCode(Constants::HTTP_OK)284 ->setHttpCode(Constants::HTTP_OK)285 ->setStartIndex($dto->getStartIndex())285 ->setStartIndex($dto->getStartIndex())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())@@ -292,30 +292,30 @@ public function patchGroup(Request $request, $id): JsonResponse292$team = $this->getTeamFromRequest($request);292$team = $this->getTeamFromRequest($request);293293294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {295-return (new Error())->getResponse();295+return new Error()->getResponse();296 }296 }297297298-$dto = (new PatchGroup())->createFromRequestPayload($request);298+$dto = new PatchGroup()->createFromRequestPayload($request);299299300$group = Group::uuid($id);300$group = Group::uuid($id);301301302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);303303304-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);304+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);305 }305 }306306307public function deleteGroup(Request $request, $id): JsonResponse307public function deleteGroup(Request $request, $id): JsonResponse308 {308 {309$team = $this->getTeamFromRequest($request);309$team = $this->getTeamFromRequest($request);310310311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {312-return (new Error())->getResponse();312+return new Error()->getResponse();313 }313 }314314315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {316-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);316+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);317 } else {317 } else {318-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();318+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();319 }319 }320 }320 }321321</selection>” selected. Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
You said
I’m on page “<tabTitle>JY-18091 | Update composer to support php 8.5 by n</tabTitle>” with “<selection>@@ -40,15 +40,15 @@ public function postUsers(Request $request): JsonResponse40 {40 {41$team = $this->getTeamFromRequest($request);41$team = $this->getTeamFromRequest($request);424243-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);43+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);444445if ($requestDTO->getPrimaryPhoneNumber() !== null) {45if ($requestDTO->getPrimaryPhoneNumber() !== null) {46$user = $this->userRepository->findByPhone(46$user = $this->userRepository->findByPhone(47 phone: $requestDTO->getPrimaryPhoneNumber(),47 phone: $requestDTO->getPrimaryPhoneNumber(),48 );48 );494950if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {50if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {51-return (new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists'))51+return new Error(Constants::HTTP_BAD_REQUEST, 'User primary phone already exists')52 ->getResponse();52 ->getResponse();53 }53 }54 }54 }@@ -59,7 +59,7 @@ public function postUsers(Request $request): JsonResponse59 );59 );606061if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {61if ($user !== null && $user->getEmailAddress() !== $requestDTO->getEmailPrimaryWork()) {62-return (new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists'))62+return new Error(Constants::HTTP_BAD_REQUEST, 'User secondary phone already exists')63 ->getResponse();63 ->getResponse();64 }64 }65 }65 }@@ -74,11 +74,11 @@ public function postUsers(Request $request): JsonResponse74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);74$newUser = $this->scimProvisioning->createOrUpdateNewUser($requestDTO, $team);757576if (! $newUser instanceof User) {76if (! $newUser instanceof User) {77-return (new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed'))77+return new Error(Constants::HTTP_BAD_REQUEST, 'User create operation failed')78 ->getResponse();78 ->getResponse();79 }79 }808081-return (new CoreUser())81+return new CoreUser()82 ->createFromUser($newUser)82 ->createFromUser($newUser)83 ->setExternalId($requestDTO->getUserName())83 ->setExternalId($requestDTO->getUserName())84 ->setHttpCode(Constants::HTTP_CREATED)84 ->setHttpCode(Constants::HTTP_CREATED)@@ -93,22 +93,22 @@ public function putUsers(Request $request, string $id): JsonResponse93$team = $this->getTeamFromRequest($request);93$team = $this->getTeamFromRequest($request);949495if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {95if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {96-return (new Error())->getResponse();96+return new Error()->getResponse();97 }97 }989899-$requestDTO = (new CoreUserRequest())->createFromRequestPayload($request);99+$requestDTO = new CoreUserRequest()->createFromRequestPayload($request);100100101try {101try {102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);102$user = $this->scimProvisioning->updateUserAttributesIfChanged(User::uuid($id), $requestDTO, $team);103103104-return (new CoreUser())104+return new CoreUser()105 ->createFromUser($user)105 ->createFromUser($user)106 ->setHttpCode(Constants::HTTP_OK)106 ->setHttpCode(Constants::HTTP_OK)107 ->getResponse();107 ->getResponse();108 } catch (Exception $exception) {108 } catch (Exception $exception) {109 Sentry::captureException($exception);109 Sentry::captureException($exception);110110111-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();111+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();112 }112 }113 }113 }114114@@ -117,7 +117,7 @@ public function deleteUser(Request $request, string $id): JsonResponse117$team = $this->getTeamFromRequest($request);117$team = $this->getTeamFromRequest($request);118118119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {119if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {120-return (new Error())->getResponse();120+return new Error()->getResponse();121 }121 }122122123$user = $this->scimProvisioning->getUserById($id);123$user = $this->scimProvisioning->getUserById($id);@@ -131,18 +131,18 @@ public function deleteUser(Request $request, string $id): JsonResponse131 ),131 ),132 );132 );133133134-return (new JsonResponse())->setStatusCode(204);134+return new JsonResponse()->setStatusCode(204);135 }135 }136136137public function patchUser(Request $request, string $id): JsonResponse137public function patchUser(Request $request, string $id): JsonResponse138 {138 {139$team = $this->getTeamFromRequest($request);139$team = $this->getTeamFromRequest($request);140140141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {141if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {142-return (new Error())->getResponse();142+return new Error()->getResponse();143 }143 }144144145-$requestDTO = (new PatchUser())145+$requestDTO = new PatchUser()146 ->setResourceLocalId($id)146 ->setResourceLocalId($id)147 ->createFromRequestPayload($request);147 ->createFromRequestPayload($request);148148@@ -153,10 +153,10 @@ public function patchUser(Request $request, string $id): JsonResponse153 } catch (Exception $e) {153 } catch (Exception $e) {154 Sentry::captureException($e);154 Sentry::captureException($e);155155156-return (new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed'))->getResponse();156+return new Error(Constants::HTTP_BAD_REQUEST, 'Operation failed')->getResponse();157 }157 }158158159-return (new CoreUser())159+return new CoreUser()160 ->createFromUser($user)160 ->createFromUser($user)161 ->setHttpCode(Constants::HTTP_OK)161 ->setHttpCode(Constants::HTTP_OK)162 ->getResponse();162 ->getResponse();@@ -167,16 +167,16 @@ public function getUser(Request $request, string $id): JsonResponse167$team = $this->getTeamFromRequest($request);167$team = $this->getTeamFromRequest($request);168168169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {169if (! $this->scimProvisioning->validateUserIdInput($id, $team)) {170-return (new Error())->getResponse();170+return new Error()->getResponse();171 }171 }172172173$user = $this->scimProvisioning->getUserById($id);173$user = $this->scimProvisioning->getUserById($id);174174175if (! $team->isSame($user->getTeam())) {175if (! $team->isSame($user->getTeam())) {176-return (new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.'))->getResponse();176+return new Error(Constants::HTTP_ACCESS_DENIED, 'Context does not match.')->getResponse();177 }177 }178178179-return (new CoreUser())179+return new CoreUser()180 ->setHttpCode(Constants::HTTP_OK)180 ->setHttpCode(Constants::HTTP_OK)181 ->createFromUser($user)181 ->createFromUser($user)182 ->getResponse();182 ->getResponse();@@ -186,20 +186,20 @@ public function getUsersByQuery(Request $request): JsonResponse186 {186 {187$team = $this->getTeamFromRequest($request);187$team = $this->getTeamFromRequest($request);188188189-$requestDto = (new GetUserByQuery())->createFromRequestPayload($request);189+$requestDto = new GetUserByQuery()->createFromRequestPayload($request);190190191try {191try {192$resultsQuery = $this->scimProvisioning192$resultsQuery = $this->scimProvisioning193 ->translateQueryStringsToUserModelQuery($requestDto, $team);193 ->translateQueryStringsToUserModelQuery($requestDto, $team);194 } catch (Exception $exception) {194 } catch (Exception $exception) {195-return (new ListResponse())->createEmpty()->getResponse();195+return new ListResponse()->createEmpty()->getResponse();196 }196 }197197198$resultsQuery198$resultsQuery199 ->limit($requestDto->getCount())199 ->limit($requestDto->getCount())200 ->offset($requestDto->getStartIndex() - 1);200 ->offset($requestDto->getStartIndex() - 1);201201202-return (new ListResponse())202+return new ListResponse()203 ->setHttpCode(Constants::HTTP_OK)203 ->setHttpCode(Constants::HTTP_OK)204 ->setStartIndex($requestDto->getStartIndex())204 ->setStartIndex($requestDto->getStartIndex())205 ->createFromCollection($resultsQuery->get())205 ->createFromCollection($resultsQuery->get())@@ -210,15 +210,15 @@ public function postGroups(Request $request): JsonResponse210 {210 {211$team = $this->getTeamFromRequest($request);211$team = $this->getTeamFromRequest($request);212212213-$requestDto = (new CoreGroupRequest())->createFromRequestPayload($request);213+$requestDto = new CoreGroupRequest()->createFromRequestPayload($request);214214215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);215$group = $this->scimProvisioning->createNewGroup($requestDto, $team);216216217if (! $group instanceof Group) {217if (! $group instanceof Group) {218-return (new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed'))->getResponse();218+return new Error(Constants::HTTP_BAD_REQUEST, 'Group resource create failed')->getResponse();219 }219 }220220221-$response = (new CoreGroup())->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();221+$response = new CoreGroup()->createFromGroup($group)->setHttpCode(Constants::HTTP_CREATED)->getResponse();222222223return $response;223return $response;224 }224 }@@ -228,22 +228,22 @@ public function putGroups(Request $request, string $id): JsonResponse228$team = $this->getTeamFromRequest($request);228$team = $this->getTeamFromRequest($request);229229230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {230if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {231-return (new Error())->getResponse();231+return new Error()->getResponse();232 }232 }233233234-$requestDTO = (new CoreGroupRequest())->createFromRequestPayload($request);234+$requestDTO = new CoreGroupRequest()->createFromRequestPayload($request);235235236try {236try {237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);237$group = $this->scimProvisioning->updateGroupAttributesIfChanged(Group::uuid($id), $requestDTO, $team);238238239-return (new CoreGroup())239+return new CoreGroup()240 ->createFromGroup($group)240 ->createFromGroup($group)241 ->setHttpCode(Constants::HTTP_OK)241 ->setHttpCode(Constants::HTTP_OK)242 ->getResponse();242 ->getResponse();243 } catch (Exception $exception) {243 } catch (Exception $exception) {244 Sentry::captureException($exception);244 Sentry::captureException($exception);245245246-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();246+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();247 }247 }248 }248 }249249@@ -252,12 +252,12 @@ public function getGroup(Request $request, string $id): JsonResponse252$team = $this->getTeamFromRequest($request);252$team = $this->getTeamFromRequest($request);253253254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {254if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {255-return (new Error())->getResponse();255+return new Error()->getResponse();256 }256 }257257258$group = $this->scimProvisioning->getGroupById($id);258$group = $this->scimProvisioning->getGroupById($id);259259260-return (new CoreGroup())260+return new CoreGroup()261 ->excludeAttributes($request)261 ->excludeAttributes($request)262 ->setHttpCode(Constants::HTTP_OK)262 ->setHttpCode(Constants::HTTP_OK)263 ->createFromGroup($group)263 ->createFromGroup($group)@@ -268,19 +268,19 @@ public function getGroupByQuery(Request $request): JsonResponse268 {268 {269$team = $this->getTeamFromRequest($request);269$team = $this->getTeamFromRequest($request);270270271-$dto = (new GetGroupByQuery())->createFromRequestPayload($request);271+$dto = new GetGroupByQuery()->createFromRequestPayload($request);272272273try {273try {274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);274$groupsQuery = $this->scimProvisioning->translateQueryStringsToGroupModelQuery($dto, $team);275 } catch (Exception $exception) {275 } catch (Exception $exception) {276-return (new ListResponse())->createEmpty()->getResponse();276+return new ListResponse()->createEmpty()->getResponse();277 }277 }278278279$groupsQuery279$groupsQuery280 ->limit($dto->getCount())280 ->limit($dto->getCount())281 ->offset($dto->getStartIndex() - 1);281 ->offset($dto->getStartIndex() - 1);282282283-return (new ListResponse())283+return new ListResponse()284 ->setHttpCode(Constants::HTTP_OK)284 ->setHttpCode(Constants::HTTP_OK)285 ->setStartIndex($dto->getStartIndex())285 ->setStartIndex($dto->getStartIndex())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())286 ->createFromCollection($groupsQuery->get(), $dto->getExcludeAttributes())@@ -292,30 +292,30 @@ public function patchGroup(Request $request, $id): JsonResponse292$team = $this->getTeamFromRequest($request);292$team = $this->getTeamFromRequest($request);293293294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {294if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {295-return (new Error())->getResponse();295+return new Error()->getResponse();296 }296 }297297298-$dto = (new PatchGroup())->createFromRequestPayload($request);298+$dto = new PatchGroup()->createFromRequestPayload($request);299299300$group = Group::uuid($id);300$group = Group::uuid($id);301301302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);302$this->scimProvisioning->patchGroupOperation($dto, $team, $group);303303304-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);304+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);305 }305 }306306307public function deleteGroup(Request $request, $id): JsonResponse307public function deleteGroup(Request $request, $id): JsonResponse308 {308 {309$team = $this->getTeamFromRequest($request);309$team = $this->getTeamFromRequest($request);310310311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {311if (! $this->scimProvisioning->validateGroupIdInput($id, $team)) {312-return (new Error())->getResponse();312+return new Error()->getResponse();313 }313 }314314315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {315if ($this->scimProvisioning->deleteGroup(Group::uuid($id))) {316-return (new JsonResponse())->setStatusCode(Constants::HTTP_NO_CONTENT);316+return new JsonResponse()->setStatusCode(Constants::HTTP_NO_CONTENT);317 } else {317 } else {318-return (new Error(Constants::HTTP_ERROR, 'Operation failed'))->getResponse();318+return new Error(Constants::HTTP_ERROR, 'Operation failed')->getResponse();319 }319 }320 }320 }321321</selection>” selected.
Please summarize the selection using precise and concise language. Use headers and bulleted lists in the summary, to make it scannable. Maintain the meaning and factual accuracy.
Expand
Listen
Gemini said
Gemini said
The selected code changes represent a mechanical refactoring of a PHP controller to align with modern syntax standards, likely as part of the upgrade to
PHP 8.5
.
Core Change: Member Access on Instantiation
Core Change: Member Access on Instantiation
The primary modification across the entire file is the removal of unnecessary parentheses when performing member access (method chaining) on a newly instantiated object.
Pattern:
(new ClassName())->method()
is simplified to
new ClassName()->method()
.
Reasoning:
Since PHP 8.0+, the parser handles member access on new expressions without requiring the wrapping parentheses for disambiguation.
Affected Components
Affected Components
The refactoring impacts various response and DTO (Data Transfer Object) initializations within the following SCIM (System for Cross-domain Identity Management) endpoints:
User Management:
postUsers
: Simplified instantiation of
CoreUserRequest
,
Error
, and
CoreUser
.
putUsers
/
patchUser
/
getUser
: Updated
Error
,
CoreUser
, and
PatchUser
calls.
getUsersByQuery
: Updated
GetUserByQuery
and
ListResponse
.
deleteUser
: Updated
JsonResponse
and
Error
.
Group Management:
postGroups
: Simplified
CoreGroupRequest
,
Error
, and
CoreGroup
.
putGroups
/
getGroup
: Updated
CoreGroupRequest
and
Error
.
getGroupByQuery
: Updated
GetGroupByQuery
and
ListResponse
.
patchGroup
/
deleteGroup
: Updated
PatchGroup
,
JsonResponse
, and
Error
.
Technical Impact
Technical Impact
No Functional Change:
The logic for user provisioning, group updates, and error handling remains identical.
Code Cleanliness:
Reduces visual noise and adopts the more concise syntax permitted in recent PHP versions.
Good response
Bad response
Share & export
Copy
Show more options
Copy prompt
Edit
You said are there soem potential issues?
You said
are there soem potential issues?
Listen
Gemini said
Gemini said
While this refactoring is syntactically correct for modern PHP, there are a few practical and technical "gotchas" to consider when moving from
(new Class())->method()
to
new Class()->method()
.
1. Language Compatibility (Backward Compatibility)
1. Language Compatibility (Backward Compatibility)
The biggest risk is the PHP version itself.
PHP < 8.0:
This change will cause a
Parse Error
. Prior to PHP 8.0, the parser could not handle member access on a
new
expression without parentheses.
The "Trap":
If your production environment is updated to PHP 8.5 but a developer's local environment or a specific CI runner is still on PHP 7.4, the code will break immediately.
2. Operator Precedence and Readability
2. Operator Precedence and Readability
While the engine now understands this syntax, human developers might find it slightly more ambiguous at a glance.
Visual Grouping:
The parentheses
(new Class())
act as a visual "container," making it clear that the instantiation happens first. Without them, in very complex one-liners, it can take a fraction of a second longer for a human to parse the execution order.
Consistency:
If only half the codebase is updated, the inconsistency can lead to "style drift," where different developers follow different patterns, making the code feel disorganized.
3. Tooling and IDE Support
3. Tooling and IDE Support
Static Analysis:
Older versions of static analysis tools (like PHPStan or Psalm) or older IDE versions might flag the new syntax as an error or "low-quality code" if they aren't configured for PHP 8.0+.
Automated Refactoring:
If this change was done via an automated tool (like Rector), it is usually safe. However, if done via "Find and Replace," there is a risk of accidentally stripping parentheses from complex expressions where they might still be required for logic.
4. Error Reporting Sensitivity
4. Error Reporting Sensitivity
In some edge cases, if the constructor of the class throws an exception:
The stack trace remains the same, but when debugging "on the fly" in some older debugger clients, the lack of grouping can occasionally make it slightly harder to evaluate the object state
before
the method call in a watch window.
Summary of Risk Levels
Summary of Risk Levels
Risk Factor
Level
Mitigation
Production Crash
High
Ensure
platform
in
composer.json
is set to
8.0
or higher.
Developer Confusion
Low
Update team style guides to reflect PHP 8.x standards.
Linting Errors
Medium
Update CI/CD linting rules to support modern PHP syntax.
Risk Factor
Production Crash
Developer Confusion
Linting Errors
Level
High
Low
Medium
Mitigation
Ensure
platform
in
composer.json
is set to
8.0
or higher.
Update team style guides to reflect PHP 8.x standards.
Update CI/CD linting rules to support modern PHP syntax.
Copy table
Are you planning to deploy this to an environment where you are certain the PHP version is strictly 8.0 or higher?
Good response
Bad response
Redo
Share & export
Copy
Show more options
Enter a prompt for Gemini
encrypted
Enter a prompt for Gemini
encrypted
Open upload file menu
Tools
Open mode picker
Fast
Microphone
Send message
Your Jiminny chats aren’t used to improve our models. Gemini is AI. It can make mistakes, so double check it.
Your privacy & Gemini Opens in a new window
Your privacy & Gemini
Opens in a new window
Summarize page
Summarize page
Skip to content
Skip to content
Open menu
Homepage (g then d)
jiminny
jiminny
app
app
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
All issues(g then i)
All pull requests
All repositories
You have unread notifications(g then n)
Open user navigation menu
Repository navigation
Repository navigation
Code
Code
Pull requests (29)
Pull requests
(
29
)
Agents
Agents
Actions
Actions
Wiki
Wiki
Security and quality
Security and quality
Insights
Insights
Settings
Settings
Important update
Important update
On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.
Review this update
Review this update
and manage your preferences in your
GitHub account settings
GitHub account settings
.
Dismiss banner
JY-20903 Update activity stage when opportunity is changed #12077 Edit title
JY-20903 Update activity stage when opportunity is changed
#
12077
Edit title
Awaiting approval
Awaiting approval
Code
Code
Open
LakyLak
LakyLak
wants to merge 1 commit into
master
master
from
JY-20903-update_activity-stage-on-opportunity-change
JY-20903-update_activity-stage-on-opportunity-change
Copy head branch name to clipboard
Lines changed: 10 additions & 5 deletions
Conversation (2)
Conversation
(
2
)
Commits (1)
Commits
(
1
)
Checks (4)
Checks
(
4
)
Files changed (2)
Files changed
(
2
)
Conversation
Conversation
@LakyLak
Show options
LakyLak commented 2 hours ago
LakyLak
LakyLak
commented
2 hours ago
2 hours ago
JIRA: JY-20903
JIRA:
JY-20903
JY-20903
Changes:
Changes:
Reset stage on activity if opportunity is changed
Add or remove reactions
@LakyLak
JY-20903
JY-20903
Update activity stage when opportunity is changed
Update activity stage when opportunity is changed
12 / 13 checks OK
8dac0df
8dac0df
@sonarqubecloud
Show options
sonarqubecloud Bot commented 2 hours ago
sonarqubecloud
sonarqubecloud
Bot
commented
2 hours ago
2 hours ago
Quality Gate Passed Quality Gate passed
Quality Gate Passed
Quality Gate passed
Issues
0 New issues
0 New issues
0 Accepted issues
0 Accepted issues
Measures
0 Security Hotspots
0 Security Hotspots
0.0% Coverage on New Code
0.0% Coverage on New Code
0.0% Duplication on New Code
0.0% Duplication on New Code
See analysis details on SonarQube Cloud
See analysis details on SonarQube Cloud
Add or remove reactions
@LakyLak
LakyLak
LakyLak
requested review from
Vasil-Jiminny
Vasil-Jiminny
,
nikolaybiaivanov
nikolaybiaivanov
and
yalokin-jiminny
yalokin-jiminny
1 hour ago
1 hour ago
Vasil-Jiminny
Vasil-Jiminny
Vasil-Jiminny...
|
Firefox
|
JY-20903 Update activity stage when opportunity is JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app — Work...
|
github.com/jiminny/app/pull/12077
|
42934
|
|
42953
|
Unnamed Group
Platform Sprint 4 Q2 - Platform Team Unnamed Group
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira
github.com/jiminny/app/pull/12077
Close tab
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Usage | Windsurf
Usage | Windsurf
Unnamed Group
[SRD-6848] Sidekick SMS issue - Jira
[SRD-6848] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
[JY-20891] Sidekick SMS issue - Jira
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
JY-20891 add support for secondary email by LakyLak · Pull Request #12073 · jiminny/app
Unnamed Group
[SRD-6849] Recorded call does not appear on the dashboard - Jira
[SRD-6849] Recorded call does not appear on the dashboard - Jira
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Jiminny
Unnamed Group
[SRD-6853] Moxso - Potential deal stages bug - Jira
[SRD-6853] Moxso - Potential deal stages bug - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
[JY-20903] Recorded call does not appear on the dashboard - Jira
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
JY-20903 Update activity stage when opportunity is changed by LakyLak · Pull Request #12077 · jiminny/app
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Useful commands - Engineering - Confluence
Useful commands - Engineering - Confluence...
|
Firefox
|
Platform Sprint 4 Q2 - Platform Team - Scrum Board Platform Sprint 4 Q2 - Platform Team - Scrum Board - Jira — Work...
|
github.com/jiminny/app/pull/12077
|
42953
|