Skip to content

Commit

Permalink
(GH-403) Provide server related information
Browse files Browse the repository at this point in the history
Along with moderation related information, provide other data that is
provided by the server metadata.

- PackageHash
- PackageHashAlgorithm
- PackageSize
- VersionDownloadCount
- IsApproved
- PackageStatus
- PackageSubmittedStatus
- PackageTestResultStatus
- PackageTestResultStatusDate
- PackageValidationResultStatus
- PackageValidationResultDate
- PackageCleanupResultDate
- PackageReviewedDate
- PackageApprovedDate
- PackageReviewer
  • Loading branch information
ferventcoder committed Jan 20, 2016
1 parent f303bba commit 3866411
Show file tree
Hide file tree
Showing 8 changed files with 276 additions and 21 deletions.
1 change: 1 addition & 0 deletions src/Core/Core.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@
<Compile Include="NETPortable\NetPortableProfileTable.cs" />
<Compile Include="PackageRestoreConsent.cs" />
<Compile Include="Packages\IChocolateyPackageMetadata.cs" />
<Compile Include="Packages\IChocolateyServerPackageMetadata.cs" />
<Compile Include="Packages\LocalPackage.cs" />
<Compile Include="Packages\OptimizedZipPackage.cs" />
<Compile Include="Packages\UnzippedPackage.cs" />
Expand Down
18 changes: 16 additions & 2 deletions src/Core/Packages/DataServicePackage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ public Uri ProjectUrl
set;
}


public Uri ReportAbuseUrl
{
get;
Expand All @@ -84,13 +85,13 @@ public Uri GalleryDetailsUrl
set;
}

public string LicenseNames
public string LicenseNames
{
get { return _licenseNames; }
set
{
_licenseNames = value;
LicenseNameCollection =
LicenseNameCollection =
String.IsNullOrEmpty(value) ? new string[0] : value.Split(';').ToArray();
}
}
Expand Down Expand Up @@ -230,6 +231,19 @@ public string PackageHash
get;
set;
}
public long PackageSize { get; set; }
public int VersionDownloadCount { get; set; }
public bool IsApproved { get; set; }
public string PackageStatus { get; set; }
public string PackageSubmittedStatus { get; set; }
public string PackageTestResultStatus { get; set; }
public DateTime? PackageTestResultStatusDate { get; set; }
public string PackageValidationResultStatus { get; set; }
public DateTime? PackageValidationResultDate { get; set; }
public DateTime? PackageCleanupResultDate { get; set; }
public DateTime? PackageReviewedDate { get; set; }
public DateTime? PackageApprovedDate { get; set; }
public string PackageReviewer { get; set; }

public string PackageHashAlgorithm
{
Expand Down
32 changes: 32 additions & 0 deletions src/Core/Packages/IChocolateyServerPackageMetadata.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
namespace NuGet
{
using System;
using System.Collections.Generic;

public partial interface IServerPackageMetadata
{
/*
Created = p.Created,
GalleryDetailsUrl = siteRoot + "packages/" + p.PackageRegistration.Id + "/" + p.Version,
IsPrerelease = p.IsPrerelease,
LastUpdated = p.LastUpdated,
*/

string PackageHash { get; }
string PackageHashAlgorithm { get; }
long PackageSize { get; }
int VersionDownloadCount { get; }

bool IsApproved { get; }
string PackageStatus { get; }
string PackageSubmittedStatus { get; }
string PackageTestResultStatus { get; }
DateTime? PackageTestResultStatusDate { get; }
string PackageValidationResultStatus { get; }
DateTime? PackageValidationResultDate { get; }
DateTime? PackageCleanupResultDate { get; }
DateTime? PackageReviewedDate { get; }
DateTime? PackageApprovedDate { get; }
string PackageReviewer { get; }
}
}
2 changes: 1 addition & 1 deletion src/Core/Packages/IPackageMetadata.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public partial interface IPackageMetadata : IPackageName
string Language { get; }
string Tags { get; }
string Copyright { get; }

/// <summary>
/// Specifies assemblies from GAC that the package depends on.
/// </summary>
Expand Down
2 changes: 1 addition & 1 deletion src/Core/Packages/IServerPackageMetadata.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace NuGet
{
public interface IServerPackageMetadata
public partial interface IServerPackageMetadata
{
Uri ReportAbuseUrl { get; }
int DownloadCount { get; }
Expand Down
157 changes: 140 additions & 17 deletions src/Core/Packages/LocalPackage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -64,23 +64,7 @@ public Uri ProjectUrl
get;
set;
}

public Uri ReportAbuseUrl
{
get
{
return null;
}
}

public int DownloadCount
{
get
{
return -1;
}
}


public bool RequireLicenseAcceptance
{
get;
Expand Down Expand Up @@ -204,6 +188,145 @@ public ICollection<PackageReferenceSet> PackageAssemblyReferences
private set;
}

#region Server Metadata Only
public string PackageHash
{
get
{
return string.Empty;
}
}

public string PackageHashAlgorithm
{
get
{
return string.Empty;
}
}

public long PackageSize
{
get
{
return -1;
}
}

public Uri ReportAbuseUrl
{
get
{
return null;
}
}

public int DownloadCount
{
get
{
return -1;
}
}

public int VersionDownloadCount
{
get
{
return -1;
}
}

public bool IsApproved
{
get
{
return false;
}
}

public string PackageStatus
{
get
{
return "Unknown";
}
}

public string PackageSubmittedStatus
{
get
{
return "Unknown";
}
}

public string PackageTestResultStatus
{
get
{
return "Unknown";
}
}

public DateTime? PackageTestResultStatusDate
{
get
{
return null;
}
}

public string PackageValidationResultStatus
{
get
{
return "Unknown";
}
}

public DateTime? PackageValidationResultDate
{
get
{
return null;
}
}

public DateTime? PackageCleanupResultDate
{
get
{
return null;
}
}

public DateTime? PackageReviewedDate
{
get
{
return null;
}
}

public DateTime? PackageApprovedDate
{
get
{
return null;
}
}

public string PackageReviewer
{
get
{
return string.Empty;
}
}

#endregion

public virtual IEnumerable<FrameworkName> GetSupportedFrameworks()
{
return FrameworkAssemblies.SelectMany(f => f.SupportedFrameworks).Distinct();
Expand Down
71 changes: 71 additions & 0 deletions src/Server/DataServices/Package.cs
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,49 @@ public Package(IPackage package, DerivedPackageData derivedData)
// set the latest flags based on the derived data
IsAbsoluteLatestVersion = derivedData.IsAbsoluteLatestVersion;
IsLatestVersion = derivedData.IsLatestVersion;

//enhancements
if (package.ProjectSourceUrl != null)
{
ProjectSourceUrl = package.ProjectSourceUrl.GetComponents(UriComponents.HttpRequestUrl, UriFormat.Unescaped);
}
if (package.PackageSourceUrl != null)
{
PackageSourceUrl = package.PackageSourceUrl.GetComponents(UriComponents.HttpRequestUrl, UriFormat.Unescaped);
}
if (package.DocsUrl != null)
{
DocsUrl = package.DocsUrl.GetComponents(UriComponents.HttpRequestUrl, UriFormat.Unescaped);
}
if (package.WikiUrl != null)
{
WikiUrl = package.WikiUrl.GetComponents(UriComponents.HttpRequestUrl, UriFormat.Unescaped);
}
if (package.MailingListUrl != null)
{
MailingListUrl = package.MailingListUrl.GetComponents(UriComponents.HttpRequestUrl, UriFormat.Unescaped);
}
if (package.BugTrackerUrl != null)
{
BugTrackerUrl = package.BugTrackerUrl.GetComponents(UriComponents.HttpRequestUrl, UriFormat.Unescaped);
}

Replaces = package.Replaces;
Provides = package.Provides;
Conflicts = package.Conflicts;

// server metadata
IsApproved = package.IsApproved;
PackageStatus = package.PackageStatus;
PackageSubmittedStatus = package.PackageSubmittedStatus;
PackageTestResultStatus = package.PackageTestResultStatus;
PackageTestResultStatusDate = package.PackageTestResultStatusDate;
PackageValidationResultStatus = package.PackageValidationResultStatus;
PackageValidationResultDate = package.PackageValidationResultDate;
PackageCleanupResultDate = package.PackageCleanupResultDate;
PackageReviewedDate = package.PackageReviewedDate;
PackageApprovedDate = package.PackageApprovedDate;
PackageReviewer = package.PackageReviewer;
}

internal string FullPath
Expand Down Expand Up @@ -238,6 +281,34 @@ public string MinClientVersion
set;
}

#region NuSpec Enhancements
public string ProjectSourceUrl { get; set; }
public string PackageSourceUrl { get; set; }
public string DocsUrl { get; set; }
public string WikiUrl { get; set; }
public string MailingListUrl { get; set; }
public string BugTrackerUrl { get; set; }
public IEnumerable<string> Replaces { get; set; }
public IEnumerable<string> Provides { get; set; }
public IEnumerable<string> Conflicts { get; set; }
#endregion

#region Server Metadata Only

public bool IsApproved { get; set; }
public string PackageStatus { get; set; }
public string PackageSubmittedStatus { get; set; }
public string PackageTestResultStatus { get; set; }
public DateTime? PackageTestResultStatusDate { get; set; }
public string PackageValidationResultStatus { get; set; }
public DateTime? PackageValidationResultDate { get; set; }
public DateTime? PackageCleanupResultDate { get; set; }
public DateTime? PackageReviewedDate { get; set; }
public DateTime? PackageApprovedDate { get; set; }
public string PackageReviewer { get; set; }

#endregion

private IEnumerable<string> ConvertDependencySetToStrings(PackageDependencySet dependencySet)
{
if (dependencySet.Dependencies.Count == 0)
Expand Down
14 changes: 14 additions & 0 deletions test/Test.Utility/PackageUtility.cs
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,7 @@ public static IPackage CreatePackage(string id,
mockPackage.Setup(m => m.ReleaseNotes).Returns("");
mockPackage.Setup(m => m.Owners).Returns(new string[0]);
mockPackage.Setup(m => m.Copyright).Returns("");
//enhancements
mockPackage.Setup(m => m.ProjectSourceUrl).Returns((Uri)null);
mockPackage.Setup(m => m.PackageSourceUrl).Returns((Uri)null);
mockPackage.Setup(m => m.DocsUrl).Returns((Uri)null);
Expand Down Expand Up @@ -235,6 +236,19 @@ public static IPackage CreatePackage(string id,
var targetFramework = allFiles.Select(f => f.TargetFramework).Where(f => f != null);
mockPackage.Setup(m => m.GetSupportedFrameworks()).Returns(targetFramework);

//server metatadata
mockPackage.Setup(m => m.IsApproved).Returns(false);
mockPackage.Setup(m => m.PackageStatus).Returns("Unknown");
mockPackage.Setup(m => m.PackageSubmittedStatus).Returns("Unknown");
mockPackage.Setup(m => m.PackageTestResultStatus).Returns("Unknown");
mockPackage.Setup(m => m.PackageTestResultStatusDate).Returns((DateTime?)null);
mockPackage.Setup(m => m.PackageValidationResultStatus).Returns("Unknown");
mockPackage.Setup(m => m.PackageValidationResultDate).Returns((DateTime?)null);
mockPackage.Setup(m => m.PackageCleanupResultDate).Returns((DateTime?)null);
mockPackage.Setup(m => m.PackageReviewedDate).Returns((DateTime?)null);
mockPackage.Setup(m => m.PackageApprovedDate).Returns((DateTime?)null);
mockPackage.Setup(m => m.PackageReviewer).Returns(string.Empty);

return mockPackage.Object;
}

Expand Down

0 comments on commit 3866411

Please sign in to comment.