55 lines
1.7 KiB
Go
55 lines
1.7 KiB
Go
|
package api
|
||
|
|
||
|
import (
|
||
|
"github.com/gin-gonic/gin"
|
||
|
|
||
|
"github.com/photoprism/photoprism/internal/config"
|
||
|
"github.com/photoprism/photoprism/internal/entity"
|
||
|
)
|
||
|
|
||
|
// CreateSessionResponse returns the authentication response data for POST requests
|
||
|
// based on the session and configuration.
|
||
|
func CreateSessionResponse(authToken string, sess *entity.Session, conf config.ClientConfig) gin.H {
|
||
|
return GetSessionResponse(authToken, sess, conf)
|
||
|
}
|
||
|
|
||
|
// GetSessionResponse returns the authentication response data for GET requests
|
||
|
// based on the session and configuration.
|
||
|
func GetSessionResponse(authToken string, sess *entity.Session, conf config.ClientConfig) gin.H {
|
||
|
if authToken == "" {
|
||
|
return gin.H{
|
||
|
"status": StatusSuccess,
|
||
|
"session_id": sess.ID,
|
||
|
"expires_in": sess.ExpiresIn(),
|
||
|
"provider": sess.Provider().String(),
|
||
|
"user": sess.User(),
|
||
|
"data": sess.Data(),
|
||
|
"config": conf,
|
||
|
}
|
||
|
} else {
|
||
|
return gin.H{
|
||
|
"status": StatusSuccess,
|
||
|
// TODO: "id" field is deprecated! Clients should now use "access_token" instead.
|
||
|
// see https://github.com/photoprism/photoprism/commit/0d2f8be522dbf0a051ae6ef78abfc9efded0082d
|
||
|
"id": authToken,
|
||
|
"session_id": sess.ID,
|
||
|
"access_token": authToken,
|
||
|
"token_type": sess.AuthTokenType(),
|
||
|
"expires_in": sess.ExpiresIn(),
|
||
|
"provider": sess.Provider().String(),
|
||
|
"user": sess.User(),
|
||
|
"data": sess.Data(),
|
||
|
"config": conf,
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// DeleteSessionResponse returns a confirmation response for DELETE requests.
|
||
|
func DeleteSessionResponse(id string) gin.H {
|
||
|
if id == "" {
|
||
|
return gin.H{"status": StatusDeleted}
|
||
|
} else {
|
||
|
return gin.H{"status": StatusDeleted, "session_id": id}
|
||
|
}
|
||
|
}
|