| 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 .other suffix or ?format=other
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/jsonl
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length
{"data":[{"failedLoginCount":0,"id":0,"userId":0,"userName":"String","ipAddress":"String","deviceInfo":"String","loginStatus":"String","failReason":"String","createdAt":"0001-01-01T00:00:00.0000000+07:06","provider":"String"}],"totalRecords":0,"code":0,"message":"String"}