mirror of
				https://github.com/Smaug123/WoofWare.Myriad
				synced 2025-10-26 22:29:01 +00:00 
			
		
		
		
	Compare commits
	
		
			3 Commits
		
	
	
		
			WoofWare.M
			...
			63a45f14d8
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 63a45f14d8 | ||
|  | a9024584a5 | ||
|  | 9472d9d06b | 
| @@ -17,7 +17,7 @@ type IPureGymApi = | ||||
|     abstract GetGymAttendance : [<Path "gym_id">] gymId : int * ?ct : CancellationToken -> Task<GymAttendance> | ||||
|  | ||||
|     [<RestEase.GetAttribute "v1/member">] | ||||
|     abstract GetMember : ?ct : CancellationToken -> Task<Member> | ||||
|     abstract GetMember : ?ct : CancellationToken -> Member Task | ||||
|  | ||||
|     [<RestEase.Get "v1/gyms/{gym_id}">] | ||||
|     abstract GetGym : [<Path "gym_id">] gymId : int * ?ct : CancellationToken -> Task<Gym> | ||||
| @@ -54,6 +54,18 @@ type IPureGymApi = | ||||
|     [<Get "endpoint">] | ||||
|     abstract GetResponseMessage''' : ?ct : CancellationToken -> Task<HttpResponseMessage> | ||||
|  | ||||
|     [<Get "endpoint">] | ||||
|     abstract GetResponse : ?ct : CancellationToken -> Task<Response<MemberActivityDto>> | ||||
|  | ||||
|     [<Get "endpoint">] | ||||
|     abstract GetResponse' : ?ct : CancellationToken -> Task<RestEase.Response<MemberActivityDto>> | ||||
|  | ||||
|     [<Get "endpoint">] | ||||
|     abstract GetResponse'' : ?ct : CancellationToken -> Task<MemberActivityDto Response> | ||||
|  | ||||
|     [<Get "endpoint">] | ||||
|     abstract GetResponse''' : ?ct : CancellationToken -> Task<MemberActivityDto RestEase.Response> | ||||
|  | ||||
|     [<Get "endpoint">] | ||||
|     [<AllowAnyStatusCode>] | ||||
|     abstract GetWithAnyReturnCode : ?ct : CancellationToken -> Task<HttpResponseMessage> | ||||
|   | ||||
| @@ -86,3 +86,36 @@ module TestReturnTypes = | ||||
|             | _ -> failwith $"unrecognised case: %s{case}" | ||||
|  | ||||
|         Object.ReferenceEquals (message, Option.get responseMessage) |> shouldEqual true | ||||
|  | ||||
|     [<TestCase "Task<Response>">] | ||||
|     [<TestCase "Task<RestEase.Response>">] | ||||
|     [<TestCase "RestEase.Response Task">] | ||||
|     [<TestCase "RestEase.Response Task">] | ||||
|     let ``Response return`` (case : string) = | ||||
|         for json, memberDto in PureGymDtos.memberActivityDtoCases do | ||||
|             let mutable responseMessage = None | ||||
|  | ||||
|             let proc (message : HttpRequestMessage) : HttpResponseMessage Async = | ||||
|                 async { | ||||
|                     message.Method |> shouldEqual HttpMethod.Get | ||||
|                     let content = new StringContent (json) | ||||
|                     let resp = new HttpResponseMessage (HttpStatusCode.OK) | ||||
|                     resp.Content <- content | ||||
|                     responseMessage <- Some resp | ||||
|                     return resp | ||||
|                 } | ||||
|  | ||||
|             use client = HttpClientMock.make (Uri "https://example.com") proc | ||||
|             let api = PureGymApi.make client | ||||
|  | ||||
|             let response = | ||||
|                 match case with | ||||
|                 | "Task<Response>" -> api.GetResponse().Result | ||||
|                 | "Task<RestEase.Response>" -> api.GetResponse'().Result | ||||
|                 | "Response Task" -> api.GetResponse''().Result | ||||
|                 | "RestEase.Response Task" -> api.GetResponse'''().Result | ||||
|                 | _ -> failwith $"unrecognised case: %s{case}" | ||||
|  | ||||
|             response.ResponseMessage |> shouldEqual (Option.get responseMessage) | ||||
|             response.StringContent |> shouldEqual json | ||||
|             response.GetContent () |> shouldEqual memberDto | ||||
|   | ||||
| @@ -96,6 +96,13 @@ module internal SynTypePatterns = | ||||
|         | SynType.Array (1, innerType, _) -> Some innerType | ||||
|         | _ -> None | ||||
|  | ||||
|     let (|RestEaseResponseType|_|) (fieldType : SynType) = | ||||
|         match fieldType with | ||||
|         | SynType.App (SynType.LongIdent ident, _, [ innerType ], _, _, _, _) when AstHelper.isArrayIdent ident -> | ||||
|             Some innerType | ||||
|         | SynType.Array (1, innerType, _) -> Some innerType | ||||
|         | _ -> None | ||||
|  | ||||
|     /// Returns the string name of the type. | ||||
|     let (|PrimitiveType|_|) (fieldType : SynType) = | ||||
|         match fieldType with | ||||
|   | ||||
		Reference in New Issue
	
	Block a user