| Required role: | super-admin |
| GET | /login-history |
|---|
import java.math.*
import java.util.*
import net.servicestack.client.*
import com.google.gson.annotations.*
import com.google.gson.reflect.*
/**
* Lấy lịch sử đăng nhập
*/
open class LoginHistoryRequest
{
var userId:Int? = null
var userName:String? = null
var startDate:Date? = null
var endDate:Date? = null
var page:Int? = null
var limit:Int? = null
}
open class LoginHistoryRespnse : IResponseRequest
{
@SerializedName("data") var Data:ArrayList<UserLoginHistoryDto> = ArrayList<UserLoginHistoryDto>()
var totalRecords:Int? = null
var code:Int? = null
var message:String? = null
}
open class UserLoginHistoryDto : UserLoginHistory()
{
var failedLoginCount:Int? = null
}
open class UserLoginHistory
{
var id:Int? = null
var userId:Int? = null
@StringLength(150)
var userName:String? = null
@StringLength(45)
var ipAddress:String? = null
@StringLength(500)
var deviceInfo:String? = null
@StringLength(50)
var loginStatus:String? = null
@StringLength(500)
var failReason:String? = null
@Required()
var createdAt:Date? = null
var provider:String? = null
}
Kotlin LoginHistoryRequest 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 /login-history HTTP/1.1 Host: etc-api.vsmlab.vn Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
data:
[
{
failedLoginCount: 0,
id: 0,
userId: 0,
userName: String,
ipAddress: String,
deviceInfo: String,
loginStatus: String,
failReason: String,
provider: String
}
],
totalRecords: 0,
code: 0,
message: String
}