GalaxyMobile Client API

<back to all web services

UserLoginRequest

The following routes are available for this service:
POST/user/loginCheck that the user exists on Galaxy and set up their account and services.
import java.math.*
import java.util.*
import net.servicestack.client.*


open class UserLoginRequest : ApiServiceRequest()
{
    /**
    * ID Number of the user to log in.
    */
    @ApiMember(Description="ID Number of the user to log in.", IsRequired=true)
    var IdNumber:String? = null
}

open class ApiServiceRequest : IServiceRequest, IHasApiKey
{
    /**
    * The API Key required for authentication
    */
    @ApiMember(DataType="string", Description="The API Key required for authentication", IsRequired=true)
    var ApiKey:String? = null
}

open class UserLoginResponse : ApiServiceResponse()
{
    /**
    * List of products the user has access to.
    */
    @ApiMember(Description="List of products the user has access to.")
    var UserProductInformation:ArrayList<UserProductData> = ArrayList<UserProductData>()

    /**
    * List of all dependents linked to this user.
    */
    @ApiMember(Description="List of all dependents linked to this user.")
    var Dependents:ArrayList<DependentData> = ArrayList<DependentData>()
}

open class ApiServiceResponse : IServiceResponse
{
    var Description:String? = null
    var Heading:String? = null
    var WasSuccessful:Boolean? = null
    var ModelState:Object? = null
}

open class UserProductData
{
    var IntegrationType:IntegrationProviderType? = null
    var ProductId:Int? = null
    var Name:String? = null
    var NameAfrikaans:String? = null
    var DashImageUrl:String? = null
    var ActionUrl:String? = null
    var Attachments:ArrayList<UserProductAttachmentData> = ArrayList<UserProductAttachmentData>()
    var DescriptionEng:String? = null
    var SummaryEng:String? = null
    var DescriptionAfr:String? = null
    var SummaryAfr:String? = null
}

enum class IntegrationProviderType(val value:Int)
{
    @SerializedName("0") None(0),
    @SerializedName("1") Ea(1),
    @SerializedName("2") IlluminaHubProtectMe(2),
    @SerializedName("3") MyLegalHand(3),
    @SerializedName("4") AccidentAngels(4),
    @SerializedName("5") EmergencyServices(5),
    @SerializedName("6") MightyMobile(6),
    @SerializedName("7") Pulsit(7),
    @SerializedName("8") Bolt(8),
}

open class UserProductAttachmentData
{
    var FileName:String? = null
    var MainFileUrl:String? = null
    var ThumbnailUrl:String? = null
    var IsVideo:Boolean? = null
    var IsImage:Boolean? = null
    var IsPdf:Boolean? = null
}

open class DependentData
{
    /**
    * Dependent's Galaxy Id used for referring to or deleting.
    */
    @ApiMember(Description="Dependent's Galaxy Id used for referring to or deleting.", IsRequired=true)
    var DependentId:Int? = null

    /**
    * Dependent's first name.
    */
    @ApiMember(Description="Dependent's first name.", IsRequired=true)
    var FirstName:String? = null

    /**
    * Dependent's surname.
    */
    @ApiMember(Description="Dependent's surname.", IsRequired=true)
    var Surname:String? = null

    /**
    * Dependent's mobile contact number.
    */
    @ApiMember(Description="Dependent's mobile contact number.", IsRequired=true)
    var MobileNumber:String? = null

    /**
    * Dependent's email address.
    */
    @ApiMember(Description="Dependent's email address.", IsRequired=true)
    var Email:String? = null

    /**
    * Depdendent's ID number.
    */
    @ApiMember(Description="Depdendent's ID number.", IsRequired=true)
    var IdNumber:String? = null
}

Kotlin UserLoginRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /user/login HTTP/1.1 
Host: galaxymobile.api.client.prod.86degrees.com 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	IdNumber: String,
	ApiKey: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	UserProductInformation: 
	[
		{
			IntegrationType: 0,
			ProductId: 0,
			Name: String,
			NameAfrikaans: String,
			DashImageUrl: String,
			ActionUrl: String,
			Attachments: 
			[
				{
					FileName: String,
					MainFileUrl: String,
					ThumbnailUrl: String,
					IsVideo: False,
					IsImage: False,
					IsPdf: False
				}
			],
			DescriptionEng: String,
			SummaryEng: String,
			DescriptionAfr: String,
			SummaryAfr: String
		}
	],
	Dependents: 
	[
		{
			DependentId: 0,
			FirstName: String,
			Surname: String,
			MobileNumber: String,
			Email: String,
			IdNumber: String
		}
	],
	Description: String,
	Heading: String,
	WasSuccessful: False,
	ModelState: {}
}