109 lines
4.4 KiB
Go
109 lines
4.4 KiB
Go
package dto
|
|
|
|
import (
|
|
"time"
|
|
|
|
"browser.local/platform/domain"
|
|
)
|
|
|
|
type RunCapabilityReport struct {
|
|
Capabilities []string `json:"capabilities"`
|
|
Fingerprint string `json:"fingerprint"`
|
|
}
|
|
|
|
type RunControlHelloRequest struct {
|
|
RegistrationToken string `json:"registrationToken"`
|
|
RunEndpointID string `json:"runEndpointId"`
|
|
ServerInstanceID string `json:"serverInstanceId,omitempty"`
|
|
PluginID string `json:"pluginId,omitempty"`
|
|
ComponentKind domain.DistributionComponentKind `json:"componentKind,omitempty"`
|
|
ComponentKey string `json:"componentKey,omitempty"`
|
|
KeyGeneration int `json:"keyGeneration,omitempty"`
|
|
DisplayName string `json:"displayName"`
|
|
Version string `json:"version"`
|
|
Status domain.RunEndpointStatus `json:"status"`
|
|
Platform string `json:"platform,omitempty"`
|
|
CapabilityReport RunCapabilityReport `json:"capabilityReport"`
|
|
Capacity RunCapacityResponse `json:"capacity"`
|
|
}
|
|
|
|
type RunControlHelloResponse struct {
|
|
Accepted bool `json:"accepted"`
|
|
RunEndpointID string `json:"runEndpointId"`
|
|
SessionToken string `json:"sessionToken"`
|
|
ServerTime time.Time `json:"serverTime"`
|
|
HeartbeatIntervalSeconds int `json:"heartbeatIntervalSeconds"`
|
|
FeatureFlags []string `json:"featureFlags,omitempty"`
|
|
}
|
|
|
|
type RunControlHeartbeatRequest struct {
|
|
RunEndpointID string `json:"runEndpointId"`
|
|
SessionToken string `json:"sessionToken"`
|
|
Version string `json:"version"`
|
|
Status domain.RunEndpointStatus `json:"status"`
|
|
CapabilityFingerprint string `json:"capabilityFingerprint"`
|
|
Capacity RunCapacityResponse `json:"capacity"`
|
|
}
|
|
|
|
type RunControlHeartbeatResponse struct {
|
|
Accepted bool `json:"accepted"`
|
|
RunEndpointID string `json:"runEndpointId"`
|
|
NextHeartbeatSeconds int `json:"nextHeartbeatSeconds"`
|
|
RefreshCapabilities bool `json:"refreshCapabilities"`
|
|
ServerTime time.Time `json:"serverTime"`
|
|
}
|
|
|
|
func (request RunControlHelloRequest) ToDomain() domain.RunControlHello {
|
|
return domain.RunControlHello{
|
|
RegistrationToken: request.RegistrationToken,
|
|
RunEndpointID: request.RunEndpointID,
|
|
ServerInstanceID: request.ServerInstanceID,
|
|
PluginID: request.PluginID,
|
|
ComponentKind: request.ComponentKind,
|
|
ComponentKey: request.ComponentKey,
|
|
KeyGeneration: request.KeyGeneration,
|
|
DisplayName: request.DisplayName,
|
|
Version: request.Version,
|
|
Status: request.Status,
|
|
Platform: request.Platform,
|
|
CapabilityReport: domain.RunCapabilityReport{
|
|
Capabilities: domain.CopyStringSlice(request.CapabilityReport.Capabilities),
|
|
Fingerprint: request.CapabilityReport.Fingerprint,
|
|
},
|
|
Capacity: capacityToDomain(request.Capacity),
|
|
}
|
|
}
|
|
|
|
func (request RunControlHeartbeatRequest) ToDomain() domain.RunControlHeartbeat {
|
|
return domain.RunControlHeartbeat{
|
|
RunEndpointID: request.RunEndpointID,
|
|
SessionToken: request.SessionToken,
|
|
Version: request.Version,
|
|
Status: request.Status,
|
|
CapabilityFingerprint: request.CapabilityFingerprint,
|
|
Capacity: capacityToDomain(request.Capacity),
|
|
}
|
|
}
|
|
|
|
func RunControlHelloFromDomain(result domain.RunControlHelloResult) RunControlHelloResponse {
|
|
result = domain.CopyRunControlHelloResult(result)
|
|
return RunControlHelloResponse{
|
|
Accepted: result.Accepted,
|
|
RunEndpointID: result.RunEndpointID,
|
|
SessionToken: result.SessionToken,
|
|
ServerTime: result.ServerTime,
|
|
HeartbeatIntervalSeconds: result.HeartbeatIntervalSeconds,
|
|
FeatureFlags: result.FeatureFlags,
|
|
}
|
|
}
|
|
|
|
func RunControlHeartbeatFromDomain(result domain.RunControlHeartbeatResult) RunControlHeartbeatResponse {
|
|
return RunControlHeartbeatResponse{
|
|
Accepted: result.Accepted,
|
|
RunEndpointID: result.RunEndpointID,
|
|
NextHeartbeatSeconds: result.NextHeartbeatSeconds,
|
|
RefreshCapabilities: result.RefreshCapabilities,
|
|
ServerTime: result.ServerTime,
|
|
}
|
|
}
|