Files
Backend/src/main/java/cc.fascinated/Main.java

58 lines
2.2 KiB
Java
Raw Normal View History

2024-04-10 07:43:38 +01:00
package cc.fascinated;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
2024-04-11 00:33:10 +01:00
import lombok.NonNull;
2024-04-10 07:43:38 +01:00
import lombok.SneakyThrows;
import lombok.extern.log4j.Log4j2;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
2024-04-11 00:33:10 +01:00
import org.springframework.context.annotation.Bean;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
2024-04-10 07:43:38 +01:00
import java.io.File;
import java.net.http.HttpClient;
import java.nio.file.Files;
import java.nio.file.StandardCopyOption;
import java.util.Objects;
2024-04-10 09:51:31 +01:00
@Log4j2
@SpringBootApplication
2024-04-10 07:43:38 +01:00
public class Main {
public static final Gson GSON = new GsonBuilder()
.setDateFormat("MM-dd-yyyy HH:mm:ss")
.create();
2024-04-10 07:43:38 +01:00
public static final HttpClient HTTP_CLIENT = HttpClient.newHttpClient();
@SneakyThrows
public static void main(String[] args) {
File config = new File("application.yml");
if (!config.exists()) { // Saving the default config if it doesn't exist locally
Files.copy(Objects.requireNonNull(Main.class.getResourceAsStream("/application.yml")), config.toPath(), StandardCopyOption.REPLACE_EXISTING);
log.info("Saved the default configuration to '{}', please re-launch the application", // Log the default config being saved
config.getAbsolutePath()
);
return;
}
log.info("Found configuration at '{}'", config.getAbsolutePath()); // Log the found config
2024-04-10 16:21:07 +01:00
SpringApplication.run(Main.class, args); // Start the application
2024-04-10 07:43:38 +01:00
}
2024-04-11 00:33:10 +01:00
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurer() {
@Override
public void addCorsMappings(@NonNull CorsRegistry registry) {
// Allow all origins to access the API
registry.addMapping("/**")
.allowedOrigins("*") // Allow all origins
.allowedMethods("*") // Allow all methods
.allowedHeaders("*"); // Allow all headers
}
};
}
2024-04-10 07:43:38 +01:00
}