| GET | /users/find/login-details | Verify a user's login details. |
|---|
namespace ClubReady.Core.Api
open System
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations
[<AllowNullLiteral>]
type ApiDtoBase() =
member val ApiKey:String = null with get,set
member val StoreId:Nullable<Int32> = new Nullable<Int32>() with get,set
member val ChainId:Nullable<Int32> = new Nullable<Int32>() with get,set
[<AllowNullLiteral>]
type UserFindByLoginRequestDto() =
inherit ApiDtoBase()
member val UserId:Int32 = new Int32() with get,set
member val UserName:String = null with get,set
member val Password:String = null with get,set
type RestrictedResourceType =
| Store = 0
| Chain = 1
| User = 2
| Undefined = 3
[<ApiResponse(Description="<p>AuthenticationResponse Values</p>\r\n<table>\r\n<tr><td>Text</td><td>Numerical</td></tr>\r\n<tr><td>An error occurred (-100)</td><td>-100</td></tr>\r\n<tr><td>Account is disabled.</td><td>-11</td></tr>\r\n<tr><td>Account is locked.</td><td>-10</td></tr>\r\n<tr><td>Your password must be of sufficient length and should contain letters, numbers and special characters.</td><td>-3</td></tr>\r\n<tr><td>Invalid confirmation.</td><td>-2</td></tr>\r\n<tr><td>Invalid confirmation.</td><td>-1</td></tr>\r\n<tr><td>An error occurred.</td><td>0</td></tr>\r\n<tr><td>Your password has expired and must be changed.</td><td>1</td></tr>\r\n<tr><td>Your must change your password.</td><td>2</td></tr>\\\r\n<tr><td>Login Successful. Please consider changing your password because it does not meet current complexity requirements</td><td>3</td></tr>\r\n<tr><td>Login successful.</td><td>10</td></tr>\r\n</table>", ResponseType=typeof<UserFindByLoginResponse>, StatusCode=200)>]
[<AllowNullLiteral>]
type UserFindByLoginRequest() =
inherit UserFindByLoginRequestDto()
///<summary>
///IP address of the end user
///</summary>
[<ApiMember(Description="IP address of the end user", Name="X-Forwarded-For", ParameterType="header")>]
member val XForwardedFor:String = null with get,set
///<summary>
///Api Key - grants access to resources
///</summary>
[<ApiMember(DataType="string", Description="Api Key - grants access to resources", IsRequired=true, Name="ApiKey", ParameterType="query")>]
member val ApiKey:String = null with get,set
///<summary>
///ClubReady Club ID (StoreID internally)
///</summary>
[<ApiMember(DataType="integer", Description="ClubReady Club ID (StoreID internally)", Name="StoreId", ParameterType="query")>]
member val StoreId:Nullable<Int32> = new Nullable<Int32>() with get,set
///<summary>
///StoreId OR ChainId is required
///</summary>
[<ApiMember(DataType="integer", Description="StoreId OR ChainId is required", Name="ChainId", ParameterType="query")>]
member val ChainId:Nullable<Int32> = new Nullable<Int32>() with get,set
///<summary>
///ClubReady username
///</summary>
[<ApiMember(DataType="string", Description="ClubReady username", IsRequired=true, Name="UserName", ParameterType="query")>]
member val UserName:String = null with get,set
///<summary>
///ClubReady password
///</summary>
[<ApiMember(DataType="string", Description="ClubReady password", IsRequired=true, Name="Password", ParameterType="query")>]
member val Password:String = null with get,set
member val RestrictedId:Nullable<Int32> = new Nullable<Int32>() with get,set
member val RestrictedResourceType:RestrictedResourceType = new RestrictedResourceType() with get,set
[<AllowNullLiteral>]
type ApiResponseBase() =
member val Success:Boolean = new Boolean() with get,set
member val Message:String = null with get,set
[<AllowNullLiteral>]
type UserFindByLoginResponseDto() =
inherit ApiResponseBase()
member val HomeStoreId:Nullable<Int32> = new Nullable<Int32>() with get,set
member val UserId:Int32 = new Int32() with get,set
type AuthenticationResult =
| InvalidPassword = 0
| SuccessExpired = 11
| SuccessChangePassword = 12
| SuccessWeakPassword = 21
| Success = 31
| CryptographicError = -100
| Disabled = -22
| Locked = -21
| FailedPasswordHistory = -15
| FailedWeakPassword = -12
| InvalidConfirmation = -11
| Error = -1
[<AllowNullLiteral>]
type UserFindByLoginResponse() =
inherit UserFindByLoginResponseDto()
member val AuthenticationResult:AuthenticationResult = new AuthenticationResult() with get,set
member val HomeStoreId:Nullable<Int32> = new Nullable<Int32>() with get,set
member val UserId:Int32 = new Int32() with get,set
F# UserFindByLoginRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /users/find/login-details HTTP/1.1 Host: www.clubready.com Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
AuthenticationResult: InvalidPassword,
HomeStoreId: 0,
UserId: 0,
Success: False,
Message: String
}