@@ -30,75 +30,19 @@ public static void InstallPackage(string packageName, string packageVersion, Uri
3030 if ( packageVersion == "@latest" )
3131 {
3232 // Fetch latest version
33- string u = $ "{ repository } package/{ packageName } /latest/version";
34- Console . WriteLine ( $ "Fetching package's latest version from { u } ") ;
35-
36- HttpResponseMessage r ;
33+ string u = $ "{ repository } package/{ packageName } /details";
34+ Console . WriteLine ( $ "Fetching package's latest version from { u } ") ;
3735
38- try
39- {
40- // Try GET
41- r = httpClient . GetAsync ( u ) . GetAwaiter ( ) . GetResult ( ) ;
42- Console . WriteLine ( $ "Recieved status code { r . StatusCode } ({ ( r . IsSuccessStatusCode ? "Success" : "Failure" ) } )") ;
43- }
44- catch ( HttpRequestException e )
45- {
46- Console . WriteLine ( $ "Fatal HTTP error: { e . Message } , try again later!". Pastel ( ConsoleColor . Red ) ) ;
47- Environment . Exit ( 0 ) ;
48- return ;
49- }
50-
51- // Check if successful
52- if ( ! r . IsSuccessStatusCode )
53- {
54- // Get result
55- string jsonRes = r . Content . ReadAsStringAsync ( ) . GetAwaiter ( ) . GetResult ( ) ;
56-
57- // Get message
58- PackageManagerErrorResult ? errRes = JsonConvert . DeserializeObject < PackageManagerErrorResult > ( jsonRes ) ;
59- if ( errRes == null ) errRes . Message = "Unknown error" ;
60-
61- Console . WriteLine ( $ "Error[{ ( int ) r . StatusCode } ] occurred whilst installing package: { errRes . Message } ". Pastel ( ConsoleColor . Red ) ) ;
62- Environment . Exit ( 0 ) ;
63- }
64-
65- string returnedContent = r . Content . ReadAsStringAsync ( ) . GetAwaiter ( ) . GetResult ( ) ;
36+ string returnedContent = RepositoryHTTP . Get ( u , "installing package" ) ;
37+ ZephyrPackageInformation packageInfo = JsonConvert . DeserializeObject < ZephyrPackageInformation > ( returnedContent ) ;
6638
6739 // Success
68- Console . WriteLine ( $ "Latest version is { returnedContent } ") ;
69- packageVersion = returnedContent ;
40+ Console . WriteLine ( $ "Latest version is { packageInfo . LatestVersion } ") ;
41+ packageVersion = packageInfo . LatestVersion ;
7042 }
7143
7244 string url = $ "{ repository } package/{ packageName } /{ packageVersion } /download";
73- Console . WriteLine ( $ "GET { url } ") ;
74-
75- HttpResponseMessage res ;
76-
77- try
78- {
79- // Try GET
80- res = httpClient . GetAsync ( url ) . GetAwaiter ( ) . GetResult ( ) ;
81- Console . WriteLine ( $ "Recieved status code { res . StatusCode } ({ ( res . IsSuccessStatusCode ? "Success" : "Failure" ) } )") ;
82- } catch ( HttpRequestException e )
83- {
84- Console . WriteLine ( $ "Fatal HTTP error: { e . Message } , try again later!". Pastel ( ConsoleColor . Red ) ) ;
85- Environment . Exit ( 0 ) ;
86- return ;
87- }
88-
89- // Check if successful
90- if ( ! res . IsSuccessStatusCode )
91- {
92- // Get result
93- string jsonRes = res . Content . ReadAsStringAsync ( ) . GetAwaiter ( ) . GetResult ( ) ;
94-
95- // Get message
96- PackageManagerErrorResult ? errRes = JsonConvert . DeserializeObject < PackageManagerErrorResult > ( jsonRes ) ;
97- if ( errRes == null ) errRes . Message = "Unknown error" ;
98-
99- Console . WriteLine ( $ "Error[{ ( int ) res . StatusCode } ] occurred whilst installing package: { errRes . Message } ". Pastel ( ConsoleColor . Red ) ) ;
100- Environment . Exit ( 0 ) ;
101- }
45+ HttpResponseMessage packageData = RepositoryHTTP . Get ( url , "installing package" , true ) ;
10246
10347 string zephyrPackageFolder = Path . Combine ( package . Location , "zephyr_packages" ) ;
10448 string packageFolder = Path . Combine ( zephyrPackageFolder , packageName ) ;
@@ -129,7 +73,7 @@ public static void InstallPackage(string packageName, string packageVersion, Uri
12973 string packageZipFile = Path . Combine ( packageTempFolder , "temp.zip" ) ;
13074 Console . WriteLine ( $ "Saving downloaded ZIP to { packageZipFile } ") ;
13175
132- using ( Stream stream = res . Content . ReadAsStream ( ) )
76+ using ( Stream stream = packageData . Content . ReadAsStream ( ) )
13377 {
13478 using ( Stream zip = File . OpenWrite ( packageZipFile ) )
13579 {
@@ -281,4 +225,16 @@ internal class ZephyrPackageWithLocation
281225 public ZephyrPackage Package { get ; set ; } = new ZephyrPackage ( ) ;
282226 public string Location { get ; set ; } = "" ;
283227 }
228+
229+ internal class ZephyrPackageInformation
230+ {
231+ [ JsonProperty ( "name" ) ]
232+ public string Name { get ; set ; } = "" ;
233+
234+ [ JsonProperty ( "author_id" ) ]
235+ public long AuthorID { get ; set ; } = 0 ;
236+
237+ [ JsonProperty ( "latest_version" ) ]
238+ public string LatestVersion { get ; set ; } = "" ;
239+ }
284240}
0 commit comments