Skip to content

Commit

Permalink
Release 99 (#19)
Browse files Browse the repository at this point in the history
# Patch notes for 99.0.2541

These patch notes summarize the changes from version 98.0.2363.

Added 2 new APIs:
* TaskField.QueryTaskFields (GET /api/data/projects/tasks/fields)
* TaskField.QueryTaskFieldValues (GET /api/data/tasks/fields/values)

Renamed 2 old APIs:
* Renamed 'ProjectField.UpdateProjectField' to 'ProjectField.UpdateProjectFieldValue'
* Renamed 'ProjectMembers.RetrieveUserProjectMemberShip' to 'ProjectMembers.RetrieveUserProjectMembership'
  • Loading branch information
tspence authored Dec 11, 2023
1 parent 887d18b commit 323c150
Show file tree
Hide file tree
Showing 34 changed files with 690 additions and 321 deletions.
131 changes: 120 additions & 11 deletions ProjectManagerClient.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<package >
<metadata>
<id>ProjectManager.SDK</id>
<version>98.0.2363</version>
<version>99.0.2548</version>
<title>ProjectManager.SDK</title>
<authors>ProjectManager.com</authors>
<owners>ProjectManager.com, Inc.</owners>
Expand All @@ -14,21 +14,130 @@
<readme>docs/README.md</readme>
<summary>ProjectManager API for DotNet</summary>
<releaseNotes>
# Patch notes for 98.0.2363
# Patch notes for 99.0.2548

These patch notes summarize the changes from version 97.0.2178.
These patch notes summarize the changes from version 98.0.2363.

Added 2 new APIs:
* ProjectField.RetrieveProjectFieldValue (GET /api/data/projects/{projectId}/fields/{fieldId})
* ProjectField.RetrieveAllProjectFieldValues (GET /api/data/projects/{projectId}/fields)
* TaskField.QueryTaskFields (GET /api/data/projects/tasks/fields)
* TaskField.QueryTaskFieldValues (GET /api/data/tasks/fields/values)

Changes to existing APIs:
* IntegrationProvider.UpdateIntegrationProvider changed [body].Value.DataType from AuthenticationDto to AuthenticationStatusDto
* IntegrationProvider.UpdateIntegrationProvider changed [body].Value.DataTypeRef from /docs/authenticationdto to /docs/authenticationstatusdto
Renamed 2 old APIs:
* Renamed 'ProjectField.UpdateProjectField' to 'ProjectField.UpdateProjectFieldValue'
* Renamed 'ProjectMembers.RetrieveUserProjectMemberShip' to 'ProjectMembers.RetrieveUserProjectMembership'

Deprecated 2 old APIs:
* Integration.AddIntegrationInstance
* Integration.RemoveIntegrationInstance
Changes to existing APIs:
* ApiKey.CreateApiKey removed header parameter `x-integration-name`
* ApiKey.ListApiKeys removed header parameter `x-integration-name`
* ApiKey.RevokeAllApiKeys removed header parameter `x-integration-name`
* ApiKey.RevokeAPIKey removed header parameter `x-integration-name`
* Changeset.RetrieveChangeset removed header parameter `x-integration-name`
* Changeset.RetrieveCompletedChangeset removed header parameter `x-integration-name`
* Dashboard.RetrieveDashboardUserSettings removed header parameter `x-integration-name`
* Dashboard.CreateorUpdateUserDashboardSettings removed header parameter `x-integration-name`
* Discussion.RetrieveTaskComments removed header parameter `x-integration-name`
* Discussion.CreateTaskComments removed header parameter `x-integration-name`
* File.DownloadFile removed header parameter `x-integration-name`
* File.DownloadaThumbnailImage removed header parameter `x-integration-name`
* File.UpdateFile removed header parameter `x-integration-name`
* HomeFile.UploadHomeFile removed header parameter `x-integration-name`
* HomeFile.UploadHomeFileToFolder removed header parameter `x-integration-name`
* Integration.RetrieveIntegration removed header parameter `x-integration-name`
* Integration.EnableIntegration removed header parameter `x-integration-name`
* Integration.DisableIntegration removed header parameter `x-integration-name`
* Integration.RetrieveAllIntegrations removed header parameter `x-integration-name`
* IntegrationCategory.RetrieveProviderCategories removed header parameter `x-integration-name`
* IntegrationProvider.ListProviders removed header parameter `x-integration-name`
* IntegrationProvider.ActivateIntegrationProvider removed header parameter `x-integration-name`
* IntegrationProvider.UpdateIntegrationProvider removed header parameter `x-integration-name`
* IntegrationProvider.DeactivateIntegrationProvider removed header parameter `x-integration-name`
* IntegrationProvider.CreateUserIntegrationProviderConnection removed header parameter `x-integration-name`
* IntegrationProvider.UpdateUserIntegrationProviderConnection removed header parameter `x-integration-name`
* License.RetrieveLicenses removed header parameter `x-integration-name`
* License.AddLicense removed header parameter `x-integration-name`
* Me.RetrieveMe removed header parameter `x-integration-name`
* Project.QueryProjects removed header parameter `x-integration-name`
* Project.CreateProject removed header parameter `x-integration-name`
* Project.RetrieveProject removed header parameter `x-integration-name`
* Project.UpdateProject removed header parameter `x-integration-name`
* ProjectChargeCode.RetrieveChargeCodes removed header parameter `x-integration-name`
* ProjectCustomer.RetrieveProjectCustomers removed header parameter `x-integration-name`
* ProjectField.RetrieveProjectFields removed header parameter `x-integration-name`
* ProjectField.CreateProjectField removed header parameter `x-integration-name`
* ProjectField.DeleteProjectField added path parameter `fieldId`
* ProjectField.DeleteProjectField removed header parameter `x-integration-name`
* ProjectField.DeleteProjectField removed body parameter `body`
* ProjectField.UpdateProjectFieldValue changed [fieldId].Value.DataType from string to uuid
* ProjectField.UpdateProjectFieldValue removed header parameter `x-integration-name`
* ProjectField.RetrieveProjectFieldValue changed [fieldId].Value.DataType from string to uuid
* ProjectField.RetrieveProjectFieldValue removed header parameter `x-integration-name`
* ProjectField.RetrieveAllProjectFieldValues removed header parameter `x-integration-name`
* ProjectFile.UploadProjectFile removed header parameter `x-integration-name`
* ProjectFile.UploadProjectFileToFolder removed header parameter `x-integration-name`
* ProjectFolder.RetrieveProjectFolders removed header parameter `x-integration-name`
* ProjectMembers.RetrieveNewProjectMembers removed header parameter `x-integration-name`
* ProjectMembers.RetrieveProjectMembers removed header parameter `x-integration-name`
* ProjectMembers.RetrieveUserProjectMembership removed header parameter `x-integration-name`
* ProjectMembers.CreateUserProjectMembership removed header parameter `x-integration-name`
* ProjectMembers.UpdateUserProjectMembership removed header parameter `x-integration-name`
* ProjectMembers.RemoveUserProjectMembership removed header parameter `x-integration-name`
* ProjectPriority.RetrieveProjectPriorities removed header parameter `x-integration-name`
* ProjectStatus.RetrieveProjectStatuses removed header parameter `x-integration-name`
* ProjectTemplate.RetrieveProjectTemplates removed header parameter `x-integration-name`
* ProjectTemplate.RetrieveTemplateCategories removed header parameter `x-integration-name`
* Resource.CreateResource removed header parameter `x-integration-name`
* Resource.QueryResources removed header parameter `x-integration-name`
* Resource.UpdateResource removed header parameter `x-integration-name`
* Resource.RetrieveResource removed header parameter `x-integration-name`
* ResourceSkill.RetrieveResourceSkills removed header parameter `x-integration-name`
* ResourceSkill.CreateResourceSkill removed header parameter `x-integration-name`
* ResourceSkill.UpdateResourceSkill removed header parameter `x-integration-name`
* ResourceSkill.DeleteResourceSkill removed header parameter `x-integration-name`
* ResourceTeam.RetrieveResourceTeams removed header parameter `x-integration-name`
* ResourceTeam.CreateResourceTeam removed header parameter `x-integration-name`
* ResourceTeam.DeleteResourceTeam removed header parameter `x-integration-name`
* ResourceTeam.UpdateResourceTeam removed header parameter `x-integration-name`
* Tag.QueryTags removed header parameter `x-integration-name`
* Tag.CreateTag removed header parameter `x-integration-name`
* Tag.UpdateTag removed header parameter `x-integration-name`
* Task.QueryTasks removed header parameter `x-integration-name`
* Task.RetrieveTask removed header parameter `x-integration-name`
* Task.UpdateTask removed header parameter `x-integration-name`
* Task.DeleteTask removed header parameter `x-integration-name`
* Task.CreateTask removed header parameter `x-integration-name`
* Task.RetrieveTaskPriorities removed header parameter `x-integration-name`
* Task.CreateManyTasks removed header parameter `x-integration-name`
* Task.AddParentTask removed header parameter `x-integration-name`
* Task.UpdateParentTask removed header parameter `x-integration-name`
* Task.RemoveParentTask removed header parameter `x-integration-name`
* TaskAssignee.ReplaceTaskAssignees removed header parameter `x-integration-name`
* TaskAssignee.CreateOrUpdateTaskAssignee removed header parameter `x-integration-name`
* TaskAssignee.DeleteTaskAssignees removed header parameter `x-integration-name`
* TaskField.RetrieveTaskFields removed header parameter `x-integration-name`
* TaskField.CreateTaskField changed [body].Value.DataType from CreateTaskFieldDto to CreateTaskFieldRequestDto
* TaskField.CreateTaskField changed [body].Value.DataTypeRef from /docs/createtaskfielddto to /docs/createtaskfieldrequestdto
* TaskField.CreateTaskField removed header parameter `x-integration-name`
* TaskField.DeleteTaskField removed header parameter `x-integration-name`
* TaskField.RetrieveAllTaskFieldValues removed header parameter `x-integration-name`
* TaskField.RetrieveTaskFieldValue removed header parameter `x-integration-name`
* TaskField.UpdateTaskFieldValue removed header parameter `x-integration-name`
* TaskFile.UploadTaskFile removed header parameter `x-integration-name`
* TaskStatus.RetrieveTaskStatuses removed header parameter `x-integration-name`
* TaskStatus.CreateTaskStatus removed header parameter `x-integration-name`
* TaskStatus.UpdateTaskStatus removed header parameter `x-integration-name`
* TaskStatus.DeleteTaskStatus removed header parameter `x-integration-name`
* TaskTag.ReplaceTaskTags removed header parameter `x-integration-name`
* TaskTag.AddTaskTagtoTask removed header parameter `x-integration-name`
* TaskTag.RemoveTaskTagfromTask removed header parameter `x-integration-name`
* Teams.RetrievezipfileforTeamsIntegrations removed header parameter `x-integration-name`
* Timesheet.Createtimeentry removed header parameter `x-integration-name`
* Timesheet.QueryTimeSheets removed header parameter `x-integration-name`
* Timesheet.Deletetimeentry removed header parameter `x-integration-name`
* Timesheet.Updatetimeentry removed header parameter `x-integration-name`
* Timesheet.Returnsactiveadmintasksthatareusedtoreporttime removed header parameter `x-integration-name`
* UserRole.RetrieveUserRoles removed header parameter `x-integration-name`
* WorkSpace.RetrieveWorkspaces removed header parameter `x-integration-name`
* WorkSpace.InvitetoWorkspace removed header parameter `x-integration-name`


</releaseNotes>
Expand Down
17 changes: 17 additions & 0 deletions src/Clients/FileClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,23 @@ public async Task<AstroResult<string>> DownloadFile(Guid documentId, string type
return await _client.Request<string>(HttpMethod.Get, url, options, null, null);
}

/// <summary>
/// Downloads a thumbnail image associated with a document that was previously uploaded to ProjectManager.com.
///
/// ProjectManager allows you to store files linked to various elements within your Workspace,
/// such as Projects, Tasks, or your Home. Files are organized based on their storage location.
///
/// When uploading a file, please allow some time for the file to undergo processing and verification.
/// ProjectManager may reject file uploads containing issues such as malware. Once a file has
/// completed the upload process, you can retrieve its associated thumbnail using the DownloadThumbnail API.
/// </summary>
/// <param name="documentId">The unique identifier of the document for which to download the thumbnail.</param>
public async Task<AstroResult<byte[]>> DownloadaThumbnailImage(Guid documentId)
{
var url = $"/api/data/files/{documentId}/thumbnail";
return await _client.Request<byte[]>(HttpMethod.Get, url, null, null, null);
}

/// <summary>
/// Updates information about a File uploaded to your Workspace.
///
Expand Down
2 changes: 1 addition & 1 deletion src/Clients/ProjectCustomerClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ public ProjectCustomerClient(ProjectManagerClient client)
/// <summary>
/// Retrieves all ProjectCustomers defined within your Workspace.
///
/// A ProjectCustomer is a code used to identify costs within your Projects. Each ProjectCustomer has a name and a unique identifier. ProjectCustomers are defined per Workspace and are shared among Projects.
/// A ProjectCustomer is a code used to identify customers associated with your Projects. Each ProjectCustomer has a name and a unique identifier. ProjectCustomers are defined per Workspace and are shared among Projects.
///
/// </summary>
public async Task<AstroResult<ProjectCustomerDto[]>> RetrieveProjectCustomers()
Expand Down
22 changes: 13 additions & 9 deletions src/Clients/ProjectFieldClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -69,23 +69,23 @@ public async Task<AstroResult<CreateProjectFieldResponseDto>> CreateProjectField
/// A ProjectField is a custom field defined within your Workspace. You can define ProjectFields for any integration purpose that is important to your business. Each ProjectField has a data type as well as options in how it is handled. ProjectFields can be edited for each Project within your Workspace.
///
/// </summary>
/// <param name="body">The identity of the ProjectField to delete</param>
public async Task<AstroResult<string>> DeleteProjectField(DeleteProjectFieldDto body)
/// <param name="fieldId">The unique identifier or short ID of this ProjectField</param>
public async Task<AstroResult<string>> DeleteProjectField(string fieldId)
{
var url = $"/api/data/projects/fields";
return await _client.Request<string>(HttpMethod.Delete, url, null, body, null);
var url = $"/api/data/projects/fields/{fieldId}";
return await _client.Request<string>(HttpMethod.Delete, url, null, null, null);
}

/// <summary>
/// Updates an existing ProjectField with new information.
/// Replaces the current value of a ProjectField for a specific Project within your Workspace.
///
/// A ProjectField is a custom field defined within your Workspace. You can define ProjectFields for any integration purpose that is important to your business. Each ProjectField has a data type as well as options in how it is handled. ProjectFields can be edited for each Project within your Workspace.
///
/// </summary>
/// <param name="projectId">The unique identifier of the Project that contains this ProjectField</param>
/// <param name="fieldId">The unique identifier of this ProjectField</param>
/// <param name="fieldId">The unique identifier or short ID of this ProjectField</param>
/// <param name="body">The new information for this ProjectField</param>
public async Task<AstroResult<string>> UpdateProjectField(Guid projectId, Guid fieldId, UpdateProjectFieldValueDto body)
public async Task<AstroResult<string>> UpdateProjectFieldValue(Guid projectId, string fieldId, UpdateProjectFieldValueDto body)
{
var url = $"/api/data/projects/{projectId}/fields/{fieldId}";
return await _client.Request<string>(HttpMethod.Put, url, null, body, null);
Expand All @@ -94,10 +94,12 @@ public async Task<AstroResult<string>> UpdateProjectField(Guid projectId, Guid f
/// <summary>
/// Retrieves the current ProjectField value for a particular Project and ProjectField.
///
/// A ProjectField is a custom field defined within your Workspace. You can define ProjectFields for any integration purpose that is important to your business. Each ProjectField has a data type as well as options in how it is handled. ProjectFields can be edited for each Project within your Workspace.
///
/// </summary>
/// <param name="projectId">The unique identifier of the Project of the value to retrieve</param>
/// <param name="fieldId">The unique identifier of the ProjectField of the value to retrieve</param>
public async Task<AstroResult<ProjectFieldsValueResponseDto>> RetrieveProjectFieldValue(Guid projectId, Guid fieldId)
/// <param name="fieldId">The unique identifier or short ID of the ProjectField of the value to retrieve</param>
public async Task<AstroResult<ProjectFieldsValueResponseDto>> RetrieveProjectFieldValue(Guid projectId, string fieldId)
{
var url = $"/api/data/projects/{projectId}/fields/{fieldId}";
return await _client.Request<ProjectFieldsValueResponseDto>(HttpMethod.Get, url, null, null, null);
Expand All @@ -106,6 +108,8 @@ public async Task<AstroResult<ProjectFieldsValueResponseDto>> RetrieveProjectFie
/// <summary>
/// Retrieves all ProjectField values for a particular Project.
///
/// A ProjectField is a custom field defined within your Workspace. You can define ProjectFields for any integration purpose that is important to your business. Each ProjectField has a data type as well as options in how it is handled. ProjectFields can be edited for each Project within your Workspace.
///
/// </summary>
/// <param name="projectId">The unique identifier of the Project for which we want ProjectField values</param>
public async Task<AstroResult<ProjectFieldsValueResponseDto[]>> RetrieveAllProjectFieldValues(Guid projectId)
Expand Down
Loading

0 comments on commit 323c150

Please sign in to comment.