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

🏗️ Client Service Implementation #119

Merged
merged 101 commits into from
Sep 14, 2022
Merged

🏗️ Client Service Implementation #119

merged 101 commits into from
Sep 14, 2022

Conversation

ctreminiom
Copy link
Owner

@ctreminiom ctreminiom commented May 26, 2022

This PR contains the changes required to implement the service modularization, the service clients will be an independent Go module, enabling you to model service dependencies in your application, and independently control service client and feature updates. This reduces the individual module size. We take advantage of Go modules, which became the default development mode in Go 1.13 and follow the Go module versioning strategy.

Any feedback would be very appreciated

@codecov
Copy link

codecov bot commented May 26, 2022

Codecov Report

Merging #119 (aa7a731) into main (d41e05f) will decrease coverage by 13.47%.
The diff coverage is 86.90%.

@@             Coverage Diff             @@
##             main     #119       +/-   ##
===========================================
- Coverage   99.94%   86.46%   -13.48%     
===========================================
  Files         158      113       -45     
  Lines       11739     9172     -2567     
===========================================
- Hits        11733     7931     -3802     
- Misses          3      682      +679     
- Partials        3      559      +556     
Impacted Files Coverage Δ
jira/internal/field_context_option_impl.go 77.77% <ø> (ø)
jira/internal/field_impl.go 86.66% <ø> (ø)
jira/internal/filter_impl.go 81.20% <ø> (ø)
jira/internal/filter_share_impl.go 86.36% <ø> (ø)
jira/internal/group_impl.go 88.13% <ø> (ø)
jira/internal/issue_comment_impl.go 85.71% <ø> (ø)
jira/internal/issue_impl.go 61.53% <ø> (ø)
jira/internal/issue_impl_adf.go 68.98% <ø> (ø)
jira/internal/issue_impl_rich_text.go 68.98% <ø> (ø)
jira/internal/label_impl.go 80.95% <ø> (ø)
... and 108 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

@ctreminiom ctreminiom changed the title Feature/service module 🏗️ Client Service Implementation May 26, 2022
1. Refined the Test cases on the agile.Board service
1. Refactored the Test Cases for the Board services implementing mocked interfaces using table-test driven cases
1. Removed the support for Go 1.13.x due it's causing problems with the testing framework
2. Added the Go 1.16.x, 1.17.x and 1.18.x on the workflow matrix
1. Refined the Test cases on the agile.Epic service
1. Implemented the library API using a custom HTTP client interface for mocking purposes.

2. Created the first test cases under Agile service.
1. Supports the versions 1.14, and 1.15

2. As of Go 1.16, the same functionality is now provided by package io or package os, and those implementations should be preferred in new code. See the specific function documentation for
1. Created the new ApplicationRoleService implementation under the ./jira/internal folder.
2. This implementation supports the Jira version 2 and 3 with the objective to avoid code replication
3. Moved the HTTPClient interface to the common services interfaces.
1. Create the interface called PermissionSchemeGrantConnector with the service method contract
2. Created the new implementation of the interface
3. Linked the new implementation with the v2 and v3 modules
1. Create the interface called ProjectConnector with the service method contract
2. Created the new implementation of the interface
3. Linked the new implementation with the v2 and v3 modules
1. Create the interface called ProjectCategoryConnector with the service method contract
2. Created the new implementation of the interface
3. Linked the new implementation with the v2 and v3 modules
1. Create the interface called ProjectComponentConnector with the service method contract
2. Created the new implementation of the interface
3. Linked the new implementation with the v2 and v3 modules
1. Create the interface called ProjectFeatureConnector with the service method contract
2. Created the new implementation of the interface
3. Linked the new implementation with the v2 and v3 modules
1. Create the interface called ProjectPermissionSchemeConnector with the service method contract
2. Created the new implementation of the interface
3. Linked the new implementation with the v2 and v3 modules
1. Create the interface called ProjectPropertyConnector with the service method contract
2. Created the new implementation of the interface
3. Linked the new implementation with the v2 and v3 modules
1. Create the interface called ProjectRoleConnector with the service method contract
2. Created the new implementation of the interface
3. Linked the new implementation with the v2 and v3 modules
1. Create the interface called ProjectTypeConnector with the service method contract
2. Created the new implementation of the interface
3. Linked the new implementation with the v2 and v3 modules
1. Create the interface called ProjectValidatorConnector with the service method contract
2. Created the new implementation of the interface
3. Linked the new implementation with the v2 and v3 modules
1. Create the interface called ProjectVersionConnector with the service method contract
2. Created the new implementation of the interface
3. Linked the new implementation with the v2 and v3 modules
1. Created the new implementation of the interface
2. Linked the new implementation with the v2 and v3 modules
1. Created the new implementation of the interface
2. Linked the new implementation with the v2 and v3 modules
1. Created the new implementation of the interface
2. Linked the new implementation with the v2 and v3 modules
@ctreminiom ctreminiom marked this pull request as ready for review September 14, 2022 08:29
@ctreminiom ctreminiom added duplicate This issue or pull request already exists enhancement New feature or request Jira Software Cloud Jira Agile V2 Jira Cloud V2 V3 Jira Cloud V3 labels Sep 14, 2022
@ctreminiom ctreminiom merged commit 7bdec1a into main Sep 14, 2022
@ctreminiom ctreminiom deleted the feature/service-module branch May 15, 2023 23:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
duplicate This issue or pull request already exists enhancement New feature or request Jira Agile Jira Software Cloud V2 Jira Cloud V2 V3 Jira Cloud V3
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

1 participant