mirror of
https://github.com/ReVanced/revanced-api.git
synced 2026-01-27 13:11:04 +00:00
feat: Add manager route
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
package app.revanced.api.configuration.services
|
||||
|
||||
import app.revanced.api.configuration.repository.BackendRepository
|
||||
import app.revanced.api.configuration.repository.BackendRepository.BackendOrganization.BackendRepository.BackendRelease.Companion.first
|
||||
import app.revanced.api.configuration.repository.ConfigurationRepository
|
||||
import app.revanced.api.configuration.schema.*
|
||||
|
||||
internal class ManagerService(
|
||||
private val backendRepository: BackendRepository,
|
||||
private val configurationRepository: ConfigurationRepository,
|
||||
) {
|
||||
suspend fun latestRelease(): APIRelease<APIManagerAsset> {
|
||||
val managerRelease = backendRepository.release(
|
||||
configurationRepository.organization,
|
||||
configurationRepository.manager.repository,
|
||||
)
|
||||
|
||||
val managerAsset = APIManagerAsset(
|
||||
managerRelease.assets.first(configurationRepository.manager.assetRegex).downloadUrl,
|
||||
)
|
||||
|
||||
return APIRelease(
|
||||
managerRelease.tag,
|
||||
managerRelease.createdAt,
|
||||
managerRelease.releaseNote,
|
||||
listOf(managerAsset),
|
||||
)
|
||||
}
|
||||
|
||||
suspend fun latestVersion(): APIReleaseVersion {
|
||||
val managerRelease = backendRepository.release(
|
||||
configurationRepository.organization,
|
||||
configurationRepository.manager.repository,
|
||||
)
|
||||
|
||||
return APIReleaseVersion(managerRelease.tag)
|
||||
}
|
||||
}
|
||||
@@ -18,7 +18,7 @@ internal class PatchesService(
|
||||
private val backendRepository: BackendRepository,
|
||||
private val configurationRepository: ConfigurationRepository,
|
||||
) {
|
||||
suspend fun latestRelease(): APIRelease {
|
||||
suspend fun latestRelease(): APIRelease<APIPatchesAsset> {
|
||||
val patchesRelease = backendRepository.release(
|
||||
configurationRepository.organization,
|
||||
configurationRepository.patches.repository,
|
||||
@@ -29,10 +29,10 @@ internal class PatchesService(
|
||||
configurationRepository.integrations.repository,
|
||||
)
|
||||
|
||||
fun ConfigurationRepository.AssetConfiguration.asset(
|
||||
fun ConfigurationRepository.SignedAssetConfiguration.asset(
|
||||
release: BackendRepository.BackendOrganization.BackendRepository.BackendRelease,
|
||||
assetName: APIAssetName,
|
||||
) = APIAsset(
|
||||
) = APIPatchesAsset(
|
||||
release.assets.first(assetRegex).downloadUrl,
|
||||
release.assets.first(signatureAssetRegex).downloadUrl,
|
||||
assetName,
|
||||
@@ -113,8 +113,8 @@ internal class PatchesService(
|
||||
}
|
||||
|
||||
fun publicKeys(): APIAssetPublicKeys {
|
||||
fun publicKeyBase64(getAssetConfiguration: ConfigurationRepository.() -> ConfigurationRepository.AssetConfiguration) =
|
||||
configurationRepository.getAssetConfiguration().publicKeyFile.readBytes().encodeBase64()
|
||||
fun publicKeyBase64(getSignedAssetConfiguration: ConfigurationRepository.() -> ConfigurationRepository.SignedAssetConfiguration) =
|
||||
configurationRepository.getSignedAssetConfiguration().publicKeyFile.readBytes().encodeBase64()
|
||||
|
||||
return APIAssetPublicKeys(
|
||||
publicKeyBase64 { patches },
|
||||
|
||||
Reference in New Issue
Block a user