| POST | /user/login |
|---|
import java.math.*
import java.util.*
import net.servicestack.client.*
open class UserLogin : ApiServiceRequest()
{
var username:String? = null
var password:String? = null
var utcOffset:Int? = null
}
open class ApiServiceRequest : IServiceRequest, IHasApiKey, IHasDeviceInfo
{
/**
* The API Key required for authentication
*/
@ApiMember(DataType="string", Description="The API Key required for authentication", IsRequired=true)
var apiKey:String? = null
/**
* Latitude of the user making this request
*/
@ApiMember(DataType="double", Description="Latitude of the user making this request")
var latitude:Double? = null
/**
* Longitude of the user making this request
*/
@ApiMember(DataType="double", Description="Longitude of the user making this request")
var longitude:Double? = null
}
open class UserLoginResponse : ApiServiceResponse()
{
var allowAttendanceOnLaptop:Boolean? = null
var profileImageUrl:String? = null
var friendlyName:String? = null
var systemUserId:Int? = null
var username:String? = null
var permissions:SystemUserPermission? = null
var settings:AppSettings? = null
var startLatitude:Double? = null
var startLongitude:Double? = null
var hasStartLocation:Boolean? = null
var endLatitude:Double? = null
var endLongitude:Double? = null
var hasEndLocation:Boolean? = null
var isSalesPerson:Boolean? = null
var feelingStatusMappings:ArrayList<String>? = null
var hasAiPermissions:Boolean? = null
var refreshToken:String? = null
var isManagerOrPromotedTo:Boolean? = null
var isTemplateApprover:Boolean? = null
var outstandingApprovals:Int? = null
}
open class ApiServiceResponse : IServiceResponse
{
var description:String? = null
var heading:String? = null
var wasSuccessful:Boolean? = null
var modelState:Object? = null
}
open class SystemUserPermission
{
var meeting:Boolean? = null
var journey:Boolean? = null
var attendance:Boolean? = null
var notificationCenter:Boolean? = null
var internalRating:Boolean? = null
var debrief:Boolean? = null
var thunderBoltActions:Boolean? = null
var onTheMove:Boolean? = null
}
open class AppSettings
{
var allowAbstainRatings:Boolean? = null
var showMoodIndicatorOnApp:Boolean? = null
var takePhotoForAnalysis:Boolean? = null
}
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.
POST /user/login HTTP/1.1
Host: cochraneplus-api-dev.happen.zone
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
username: String,
password: String,
utcOffset: 0,
apiKey: String,
latitude: 0,
longitude: 0
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
allowAttendanceOnLaptop: False,
profileImageUrl: String,
friendlyName: String,
systemUserId: 0,
username: String,
permissions:
{
meeting: False,
journey: False,
attendance: False,
notificationCenter: False,
internalRating: False,
debrief: False,
thunderBoltActions: False,
onTheMove: False
},
settings:
{
allowAbstainRatings: False,
showMoodIndicatorOnApp: False,
takePhotoForAnalysis: False
},
startLatitude: 0,
startLongitude: 0,
hasStartLocation: False,
endLatitude: 0,
endLongitude: 0,
hasEndLocation: False,
isSalesPerson: False,
feelingStatusMappings:
[
String
],
hasAiPermissions: False,
refreshToken: String,
isManagerOrPromotedTo: False,
isTemplateApprover: False,
outstandingApprovals: 0,
description: String,
heading: String,
wasSuccessful: False,
modelState: {}
}