Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

[OP#50617] Use dependecy Injection to get classes from other apps #514

Merged
merged 2 commits into from
Nov 1, 2023

Conversation

SwikritiT
Copy link
Collaborator

We have some functions that require the classes of other nextcloud apps like groupfolders and as we are supporting 3 major versions of the nextcloud server, the parameters to the class constructors may change according to the server's version. Currently, we are determining the version of the nextcloud and providing parameters based on that but in this PR we use dependency injection like in PR #502

Related work package: https://community.openproject.org/projects/nextcloud-integration/work_packages/50617

@SwikritiT SwikritiT changed the title Use dependecy Injection to get classes from other apps [OP#50617] Use dependecy Injection to get classes from other apps Oct 30, 2023
@SwikritiT SwikritiT self-assigned this Oct 30, 2023
Signed-off-by: Swikriti Tripathi <swikriti808@gmail.com>
Signed-off-by: Swikriti Tripathi <swikriti808@gmail.com>
@github-actions
Copy link

JS Code Coverage

Coverage after merging ehn/use-DI into master will be
86.97%
Coverage Report
FileStmtsBranchesFuncsLinesUncovered Lines
src
   adminSettings.js0%0%0%0%1, 1, 10–19, 2, 20–25, 3–9
   bootstrap.js0%0%0%0%1, 1–7
   dashboard.js0%0%0%0%1, 1, 10–19, 2, 20–25, 3–9
   fileActions.js0%0%0%0%1, 1, 10–17, 2–9
   filesPlugin.js0%0%0%0%1, 1, 10–19, 2, 20–29, 3, 30–39, 4, 40–49, 5, 50–59, 6, 60–69, 7, 70–74, 8–9
   personalSettings.js0%0%0%0%1, 1, 10–19, 2, 20–25, 3–9
   projectTab.js0%0%0%0%1, 1, 10–19, 2, 20–29, 3, 30–39, 4, 40–49, 5, 50–59, 6, 60–66, 7–9
   reference.js0%0%0%0%1, 1, 10–19, 2, 20–29, 3, 30–39, 4, 40–49, 5, 50–59, 6, 60, 7–9
   utils.js66.67%33.33%50%69.09%10–14, 17–26, 6–9
src/components
   AdminSettings.vue99.29%95.60%85.19%99.91%1, 1, 1, 1, 1
   OAuthConnectButton.vue99.19%87.50%100%100%1
   PersonalSettings.vue98.87%93.33%85.71%100%1
src/components/admin
   FieldValue.vue97.12%83.33%100%98.89%1, 23, 23
   FormHeading.vue97.66%75%100%99.36%1, 1, 34, 34
   ProjectFolderError.vue96.83%80%100%98.21%1, 1
   TextInput.vue99.25%95%88.89%100%1
src/components/icons
   ClippyIcon.vue93.18%50%50%97.50%1, 1
   OpenProjectIcon.vue93.75%100%0%96.77%1
src/components/settings
   CheckBox.vue92.45%80%66.67%97.62%1, 1
   SettingsTitle.vue94.74%50%100%97.14%1, 1
src/components/tab
   EmptyContent.vue97.14%78.95%100%99.35%1, 1, 1, 33, 33
   SearchInput.vue99.27%88.89%80%100%1
   WorkPackage.vue98.42%40%100%99.35%1, 1, 1, 43, 43
src/utils
   workpackageHelper.js94.31%88.89%100%95.65%17–19, 48, 48–50
src/views
   Dashboard.vue98.97%71.43%100%99.65%1, 1, 1
   LinkMultipleFilesModal.vue99.40%91.67%100%100%1
   ProjectsTab.vue99.74%93.75%100%100%23
   WorkPackagePickerElement.vue0%0%0%0%1, 1, 10–19, 2, 20–29, 3, 30–39, 4, 40–49, 5, 50–59, 6, 60–69, 7, 70–79, 8, 80–89, 9, 90–96
   WorkPackageReferenceWidget.vue0%0%0%0%1, 1, 10, 100–109, 11, 110–119, 12, 120–129, 13, 130–134, 14–19, 2, 20–29, 3, 30–39, 4, 40–49, 5, 50–59, 6, 60–69, 7, 70–79, 8, 80–89, 9, 90–99

@github-actions
Copy link

PHP Code Coverage

Coverage after merging ehn/use-DI into master will be
57.53%
Coverage Report
FileStmtsBranchesFuncsLinesUncovered Lines
server/apps/integration_openproject/lib
   Capabilities.php0%100%0%0%19, 26–29
server/apps/integration_openproject/lib/AppInfo
   Application.php10.81%100%25%9.09%100–101, 103–105, 109–112, 114, 118–123, 134, 138, 69–71, 74, 78, 81, 85, 87, 91, 96, 98–99
server/apps/integration_openproject/lib/BackgroundJob
   RemoveExpiredDirectUploadTokens.php0%100%0%0%42, 44–46, 55–56
server/apps/integration_openproject/lib/Controller
   ConfigController.php62.69%100%50%63.39%134, 151–152, 154, 156–158, 160–161, 166–167, 169, 217, 278, 367–368, 371–372, 378–380, 506–509, 511–512, 515, 523, 534, 548–550, 565–569, 571–572, 574–577, 579–581, 583–585, 587–589, 607–612, 614–615, 617–619, 622, 624–627, 629–631, 633–635, 637–639, 653, 662–665, 667–670, 680–685
   DirectDownloadController.php0%100%0%0%36–38, 53–55, 57, 60–61
   DirectUploadController.php71.43%100%100%70.43%131–132, 177, 190, 194–197, 199, 209, 216, 232–234, 236–237, 240–242, 248, 250, 255–256, 263–264, 267–268, 271–272, 288–289, 309, 314, 320
   FilesController.php77%100%85.71%76.34%223–224, 277, 283, 285–287, 289, 291, 302–304, 307–308, 310–311, 315–318, 321, 327
   OpenProjectAPIController.php88.18%100%80%88.78%139, 176, 200, 224–227, 230, 232, 234–237, 239–240, 245, 257, 266, 284, 293, 558, 560, 96
server/apps/integration_openproject/lib/Dashboard
   OpenProjectWidget.php0%100%0%0%101–102, 104–108, 116, 123–124, 126, 128–129, 131–132, 134, 137–138, 140–141, 143, 69–73, 80, 87, 94
server/apps/integration_openproject/lib/Exception
   OpenprojectErrorException.php100%100%100%100%
   OpenprojectFileNotUploadedException.php100%100%100%100%
   OpenprojectGroupfolderSetupConflictException.php100%100%100%100%
   OpenprojectResponseException.php100%100%100%100%
   OpenprojectUnauthorizedUserException.php0%100%0%0%16
server/apps/integration_openproject/lib/Listener
   BeforeGroupDeletedListener.php0%100%0%0%48, 56–57, 60–63
   BeforeNodeInsideOpenProjectGroupfilderChangedListener.php0%100%0%0%41–43, 47–52, 55–56, 58–63, 65, 67, 71
   BeforeUserDeletedListener.php0%100%0%0%48, 55–56, 58–61
   LoadSidebarScript.php0%100%0%0%100, 102, 104, 106–108, 110, 112, 114–115, 117–118, 120, 122, 75–81, 83–84, 86–87, 89–90, 96–97, 99
   OpenProjectReferenceListener.php0%100%0%0%53–54, 58–59, 62–63, 65, 67
   UserChangedListener.php0%100%0%0%52, 59–60, 63–68
server/apps/integration_openproject/lib/Migration
   Version2001Date20221213083550.php0%100%0%0%47, 57, 60, 63, 67, 70, 73, 77–79, 81
   Version2310Date20230116153411.php0%100%0%0%46, 49–52, 54–56, 60, 64, 68, 72, 76, 81–82, 84
   Version2400Date20230504144300.php0%100%0%0%47, 57, 60
server/apps/integration_openproject/lib/Reference
   WorkPackageReferenceProvider.php17.02%100%10%18.92%102, 109–112, 115–117, 120, 127–130, 132, 134–136, 138, 140, 142, 146, 155, 163–164, 172, 52, 59, 66, 73–74
server/apps/integration_openproject/lib/Search
   OpenProjectSearchProvider.php0%100%0%0%103–104, 107–114, 116–118, 121–122, 124–125, 129–134, 140–141, 143, 66–69, 76, 83, 91, 93, 96
   OpenProjectSearchResultEntry.php100%100%100%100%
server/apps/integration_openproject/lib/Service
   DatabaseService.php43.90%100%60%41.67%125–128, 131, 80–87, 89–93, 95–97
   DirectDownloadService.php88%100%100%86.96%65–66, 68
   DirectUploadService.php54.55%100%66.67%52.63%112, 118, 79–82, 84, 89, 91
   OauthService.php0%100%0%0%108–115, 45–47, 56–66, 68, 70–72, 75–78, 89, 91–94, 96–97
   OpenProjectAPIService.php71.76%100%70.73%71.86%1001, 1019, 1021, 1027, 1032, 1036, 1047–1048, 1179–1186, 1188, 1196–1200, 1208–1215, 1232–1239, 1248–1253, 165–169, 240, 349–350, 352, 366–367, 376, 380, 401, 489–490, 497, 500–503, 505, 511,

@SwikritiT SwikritiT marked this pull request as ready for review October 31, 2023 08:18
Copy link
Collaborator

@individual-it individual-it left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This makes the code much nicer 👍

@SwikritiT SwikritiT merged commit d5e99c2 into master Nov 1, 2023
20 checks passed
@delete-merged-branch delete-merged-branch bot deleted the ehn/use-DI branch November 1, 2023 04:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants