Добавил сообщение об ошибке, при отсутствии доступа к Gitlab api
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Struchkov Mark 2024-08-27 19:26:26 +03:00
parent 4d8a48497e
commit 0704231d48
No known key found for this signature in database
GPG Key ID: A3F0AC3F0FA52F3C

View File

@ -3,7 +3,10 @@ package dev.struchkov.bot.gitlab.config;
import dev.struchkov.bot.gitlab.context.domain.PersonInformation; import dev.struchkov.bot.gitlab.context.domain.PersonInformation;
import dev.struchkov.bot.gitlab.context.prop.AppProperty; import dev.struchkov.bot.gitlab.context.prop.AppProperty;
import dev.struchkov.bot.gitlab.context.prop.PersonProperty; import dev.struchkov.bot.gitlab.context.prop.PersonProperty;
import dev.struchkov.godfather.simple.domain.BoxAnswer;
import dev.struchkov.godfather.telegram.simple.context.service.TelegramSending;
import dev.struchkov.sdk.gitlab.core.GitlabSdkManager; import dev.struchkov.sdk.gitlab.core.GitlabSdkManager;
import dev.struchkov.sdk.gitlab.schema.common.PersonJson;
import jakarta.persistence.EntityManagerFactory; import jakarta.persistence.EntityManagerFactory;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
@ -21,6 +24,8 @@ import java.util.Arrays;
import java.util.Optional; import java.util.Optional;
import java.util.concurrent.ForkJoinPool; import java.util.concurrent.ForkJoinPool;
import static dev.struchkov.godfather.telegram.main.context.BoxAnswerPayload.ENABLE_MARKDOWN;
/** /**
* Общий файл настройки всего приложения. * Общий файл настройки всего приложения.
* *
@ -83,17 +88,28 @@ public class AppConfig {
@Bean @Bean
public PersonInformation personInformation( public PersonInformation personInformation(
GitlabSdkManager gitlabSdkManager, GitlabSdkManager gitlabSdkManager,
PersonProperty personProperty PersonProperty personProperty,
TelegramSending telegramSender
) { ) {
return Optional.of(gitlabSdkManager.getAuthPerson()) final Optional<PersonJson> optAuthPerson = gitlabSdkManager.getAuthPerson();
.map( if (optAuthPerson.isPresent()) {
authUser -> PersonInformation.builder() final PersonJson authUser = optAuthPerson.get();
.id(authUser.getId()) return PersonInformation.builder()
.username(authUser.getUsername()) .id(authUser.getId())
.name(authUser.getName()) .username(authUser.getUsername())
.telegramId(personProperty.getTelegramId()) .name(authUser.getName())
.build() .telegramId(personProperty.getTelegramId())
).orElseThrow(); .build();
} else {
telegramSender.send(
BoxAnswer.builder()
.recipientPersonId(personProperty.getTelegramId())
.message("\uD83D\uDED1 *Ошибка доступа к GitLab APi* \uD83D\uDED1\n-- -- -- -- -- --\nВозможные причины:\n1. Невалидный токен доступа.\n2. Для доступа к GitLab нужно включить VPN.")
.payload(ENABLE_MARKDOWN)
.build()
);
throw new RuntimeException("Ошибка доступа к GitLab APi.");
}
} }
} }