feat: centralize app release configuration
This commit is contained in:
@@ -186,6 +186,42 @@ func (c *adminInternalClient) TenantLoginIPWhitelist(id types.TenantID) (*tenant
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
func (c *adminInternalClient) LatestAppRelease(platform, channel string) (*types.AppRelease, error) {
|
||||
query := url.Values{}
|
||||
query.Set("platform", strings.ToLower(strings.TrimSpace(platform)))
|
||||
query.Set("channel", strings.ToLower(strings.TrimSpace(channel)))
|
||||
var dto struct {
|
||||
ID int64 `json:"id"`
|
||||
Platform string `json:"platform"`
|
||||
Channel string `json:"channel"`
|
||||
LatestVersion string `json:"latest_version"`
|
||||
MinSupportedVersion string `json:"min_supported_version"`
|
||||
UpdateType string `json:"update_type"`
|
||||
ReleaseNotes string `json:"release_notes"`
|
||||
StoreURL string `json:"store_url"`
|
||||
PackageURL string `json:"package_url"`
|
||||
Checksum string `json:"checksum"`
|
||||
RemindAfterSeconds int `json:"remind_after_seconds"`
|
||||
PublishedAt string `json:"published_at"`
|
||||
CreatedAt string `json:"created_at"`
|
||||
UpdatedAt string `json:"updated_at"`
|
||||
}
|
||||
if err := c.getJSON("/internal/im-config/app/releases/latest", query, &dto); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
parseTime := func(raw string) time.Time {
|
||||
parsed, _ := time.Parse(time.RFC3339Nano, raw)
|
||||
return parsed
|
||||
}
|
||||
return &types.AppRelease{
|
||||
ID: dto.ID, Platform: dto.Platform, Channel: dto.Channel,
|
||||
LatestVersion: dto.LatestVersion, MinSupportedVersion: dto.MinSupportedVersion,
|
||||
UpdateType: dto.UpdateType, ReleaseNotes: dto.ReleaseNotes, StoreURL: dto.StoreURL,
|
||||
PackageURL: dto.PackageURL, Checksum: dto.Checksum, RemindAfterSeconds: dto.RemindAfterSeconds,
|
||||
PublishedAt: parseTime(dto.PublishedAt), CreatedAt: parseTime(dto.CreatedAt), UpdatedAt: parseTime(dto.UpdatedAt),
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (c *adminInternalClient) getJSON(path string, query url.Values, out any) error {
|
||||
if c == nil || c.http == nil {
|
||||
return types.ErrUnsupported
|
||||
|
||||
Reference in New Issue
Block a user