1 line
74 KiB
JSON
1 line
74 KiB
JSON
{"repo": "alonyakoby-swift/bgbackend", "files": {"Sources/App/configure.swift": {"d806a602d1b2804174db877d0a1a82faa0b834af": {"t": 1785745890.7604802, "n": 4164, "h": "9087b93a3b032268", "c": "import Vapor\nimport Fluent\nimport FluentMongoDriver\nimport Leaf\nimport Queues\nimport QueuesMongoDriver\nimport MongoKitten\n\nenum AppMode {\n case development, production\n}\npublic func configure(_ app: Application) throws {\n \n var mode: AppMode = .production\n // MARK: - JSON Encoder/Decoder Configuration\n let encoder = JSONEncoder()\n encoder.keyEncodingStrategy = .convertToSnakeCase\n encoder.dateEncodingStrategy = .iso8601\n\n let decoder = JSONDecoder()\n decoder.keyDecodingStrategy = .convertFromSnakeCase\n decoder.dateDecodingStrategy = .iso8601\n\n ContentConfiguration.global.use(encoder: encoder, for: .json)\n ContentConfiguration.global.use(decoder: decoder, for: .json)\n\n // MARK: - Server Configuration\n app.http.server.configuration.hostname = \"0.0.0.0\"\n app.http.server.configuration.port = Int(Environment.get(\"PORT\") ?? \"8080\") ?? 8080\n\n // MARK: - Database Configuration\n let databaseURL: String\n if mode == .development {\n databaseURL = ENV.databaseURL.dev_default\n } else {\n guard let envURL = Environment.get(\"CONNECTION_STRING\") else {\n fatalError(\"CONNECTION_STRING not set in environment variables for production\")\n }\n databaseURL = envURL\n }\n\n var mongoConnectionString = databaseURL\n if mongoConnectionString.contains(\"digitalocean\") && !mongoConnectionString.contains(\"authSource\") {\n mongoConnectionString += \"?authSource=admin\"\n }\n app.logger.info(\"Connecting to MongoDB at: \\(mongoConnectionString)\")\n\n // Register MongoDB for Fluent\n try app.databases.use(.mongo(connectionString: mongoConnectionString), as: .mongo)\n\n // MARK: - Leaf Configuration\n app.views.use(.leaf)\n\n // MARK: - Middleware Configuration\n app.middleware.use(ErrorMiddleware.default(environment: app.environment))\n let allowedOrigins: [String] = [\n \"http://localhost\",\n \"http://localhost:3000\",\n \"http://localhost:4000\",\n \"http://localhost:4001\",\n \"http://localhost:5500\",\n \"http://localhost:4500\",\n \"http://localhost:5173\",\n \"https://bg-frontend-oi4hx.ondigitalocean.app\",\n \"https://docs-vizp7.ondigitalocean.app\"\n ]\n let cors = CustomCORSMiddleware(\n allowedOrigins: allowedOrigins,\n allowedMethods: [.GET, .POST, .PUT, .OPTIONS, .DELETE, .PATCH],\n allowedHeaders: [\n \"Authorization\",\"Content-Type\",\"Accept\",\"Origin\",\n \"X-Requested-With\",\"User-Agent\",\"sec-ch-ua\",\n \"sec-ch-ua-mobile\",\"sec-ch-ua-platform\"\n ],\n allowCredentials: true\n )\n app.middleware.use(cors)\n\n // MARK: - MongoKitten & Queues Configuration\n do {\n let mongoDatabase = try MongoDatabase.connect(mongoConnectionString, on: app.eventLoopGroup.next()).wait()\n try app.queues.use(.mongodb(mongoDatabase))\n try app.queues.startScheduledJobs()\n } catch {\n app.logger.error(\"Failed to connect to MongoDB queues: \\(error.localizedDescription)\")\n fatalError(\"Failed to connect to MongoDB for queues\")\n }\n\n // MARK: - API Keys & Managers\n guard let openAIApiKey = Environment.get(\"OPENAI_API_KEY\") else {\n fatalError(\"OPENAI_API_KEY not set in environment variables\")\n }\n let deepLKey = Environment.get(\"DEEPL_API_KEY\") ?? \"\"\n\n let ollama = OllamaManager()\n let openAI = OpenAIManager(apiKey: openAIApiKey)\n let deepSeek = DeepSeekManager(apiKey: Environment.get(\"DEEPSEEK_API_KEY\") ?? \"\")\n globalTranslationManager = TranslationManager(\n db: app.db,\n authKey: deepLKey,\n aiManager: AIManager(\n ollama: ollama,\n openAI: openAI,\n deepseek: deepSeek,\n model: .deepseek\n )\n )\n\n // MARK: - Migrations\n app_migrations.forEach { app.migrations.add($0) }\n try app.autoMigrate().wait()\n\n // MARK: - Routes\n try routes(app)\n}\n\n// MARK: - Scheduled Job Example\nstruct TestJob: AsyncScheduledJob {\n func run(context: QueueContext) async throws {\n context.logger.info(\"Test Job is running on schedule.\")\n print(\"Test Job is running on schedule.\")\n }\n}\n"}, "8723531839ab6d07a67da019ab06bdc867764242": {"t": 1785757708.479953, "n": 4164, "h": "9087b93a3b032268", "c": "import Vapor\nimport Fluent\nimport FluentMongoDriver\nimport Leaf\nimport Queues\nimport QueuesMongoDriver\nimport MongoKitten\n\nenum AppMode {\n case development, production\n}\npublic func configure(_ app: Application) throws {\n \n var mode: AppMode = .production\n // MARK: - JSON Encoder/Decoder Configuration\n let encoder = JSONEncoder()\n encoder.keyEncodingStrategy = .convertToSnakeCase\n encoder.dateEncodingStrategy = .iso8601\n\n let decoder = JSONDecoder()\n decoder.keyDecodingStrategy = .convertFromSnakeCase\n decoder.dateDecodingStrategy = .iso8601\n\n ContentConfiguration.global.use(encoder: encoder, for: .json)\n ContentConfiguration.global.use(decoder: decoder, for: .json)\n\n // MARK: - Server Configuration\n app.http.server.configuration.hostname = \"0.0.0.0\"\n app.http.server.configuration.port = Int(Environment.get(\"PORT\") ?? \"8080\") ?? 8080\n\n // MARK: - Database Configuration\n let databaseURL: String\n if mode == .development {\n databaseURL = ENV.databaseURL.dev_default\n } else {\n guard let envURL = Environment.get(\"CONNECTION_STRING\") else {\n fatalError(\"CONNECTION_STRING not set in environment variables for production\")\n }\n databaseURL = envURL\n }\n\n var mongoConnectionString = databaseURL\n if mongoConnectionString.contains(\"digitalocean\") && !mongoConnectionString.contains(\"authSource\") {\n mongoConnectionString += \"?authSource=admin\"\n }\n app.logger.info(\"Connecting to MongoDB at: \\(mongoConnectionString)\")\n\n // Register MongoDB for Fluent\n try app.databases.use(.mongo(connectionString: mongoConnectionString), as: .mongo)\n\n // MARK: - Leaf Configuration\n app.views.use(.leaf)\n\n // MARK: - Middleware Configuration\n app.middleware.use(ErrorMiddleware.default(environment: app.environment))\n let allowedOrigins: [String] = [\n \"http://localhost\",\n \"http://localhost:3000\",\n \"http://localhost:4000\",\n \"http://localhost:4001\",\n \"http://localhost:5500\",\n \"http://localhost:4500\",\n \"http://localhost:5173\",\n \"https://bg-frontend-oi4hx.ondigitalocean.app\",\n \"https://docs-vizp7.ondigitalocean.app\"\n ]\n let cors = CustomCORSMiddleware(\n allowedOrigins: allowedOrigins,\n allowedMethods: [.GET, .POST, .PUT, .OPTIONS, .DELETE, .PATCH],\n allowedHeaders: [\n \"Authorization\",\"Content-Type\",\"Accept\",\"Origin\",\n \"X-Requested-With\",\"User-Agent\",\"sec-ch-ua\",\n \"sec-ch-ua-mobile\",\"sec-ch-ua-platform\"\n ],\n allowCredentials: true\n )\n app.middleware.use(cors)\n\n // MARK: - MongoKitten & Queues Configuration\n do {\n let mongoDatabase = try MongoDatabase.connect(mongoConnectionString, on: app.eventLoopGroup.next()).wait()\n try app.queues.use(.mongodb(mongoDatabase))\n try app.queues.startScheduledJobs()\n } catch {\n app.logger.error(\"Failed to connect to MongoDB queues: \\(error.localizedDescription)\")\n fatalError(\"Failed to connect to MongoDB for queues\")\n }\n\n // MARK: - API Keys & Managers\n guard let openAIApiKey = Environment.get(\"OPENAI_API_KEY\") else {\n fatalError(\"OPENAI_API_KEY not set in environment variables\")\n }\n let deepLKey = Environment.get(\"DEEPL_API_KEY\") ?? \"\"\n\n let ollama = OllamaManager()\n let openAI = OpenAIManager(apiKey: openAIApiKey)\n let deepSeek = DeepSeekManager(apiKey: Environment.get(\"DEEPSEEK_API_KEY\") ?? \"\")\n globalTranslationManager = TranslationManager(\n db: app.db,\n authKey: deepLKey,\n aiManager: AIManager(\n ollama: ollama,\n openAI: openAI,\n deepseek: deepSeek,\n model: .deepseek\n )\n )\n\n // MARK: - Migrations\n app_migrations.forEach { app.migrations.add($0) }\n try app.autoMigrate().wait()\n\n // MARK: - Routes\n try routes(app)\n}\n\n// MARK: - Scheduled Job Example\nstruct TestJob: AsyncScheduledJob {\n func run(context: QueueContext) async throws {\n context.logger.info(\"Test Job is running on schedule.\")\n print(\"Test Job is running on schedule.\")\n }\n}\n"}, "38da58a94c78ca9f4e52f5924cd059a2ba1dfed2": {"t": 1785757709.7414653, "n": 4165, "h": "1635c9d5e2434da1", "c": "import Vapor\nimport Fluent\nimport FluentMongoDriver\nimport Leaf\nimport Queues\nimport QueuesMongoDriver\nimport MongoKitten\n\nenum AppMode {\n case development, production\n}\npublic func configure(_ app: Application) throws {\n \n var mode: AppMode = .development\n // MARK: - JSON Encoder/Decoder Configuration\n let encoder = JSONEncoder()\n encoder.keyEncodingStrategy = .convertToSnakeCase\n encoder.dateEncodingStrategy = .iso8601\n\n let decoder = JSONDecoder()\n decoder.keyDecodingStrategy = .convertFromSnakeCase\n decoder.dateDecodingStrategy = .iso8601\n\n ContentConfiguration.global.use(encoder: encoder, for: .json)\n ContentConfiguration.global.use(decoder: decoder, for: .json)\n\n // MARK: - Server Configuration\n app.http.server.configuration.hostname = \"0.0.0.0\"\n app.http.server.configuration.port = Int(Environment.get(\"PORT\") ?? \"8080\") ?? 8080\n\n // MARK: - Database Configuration\n let databaseURL: String\n if mode == .development {\n databaseURL = ENV.databaseURL.dev_default\n } else {\n guard let envURL = Environment.get(\"CONNECTION_STRING\") else {\n fatalError(\"CONNECTION_STRING not set in environment variables for production\")\n }\n databaseURL = envURL\n }\n\n var mongoConnectionString = databaseURL\n if mongoConnectionString.contains(\"digitalocean\") && !mongoConnectionString.contains(\"authSource\") {\n mongoConnectionString += \"?authSource=admin\"\n }\n app.logger.info(\"Connecting to MongoDB at: \\(mongoConnectionString)\")\n\n // Register MongoDB for Fluent\n try app.databases.use(.mongo(connectionString: mongoConnectionString), as: .mongo)\n\n // MARK: - Leaf Configuration\n app.views.use(.leaf)\n\n // MARK: - Middleware Configuration\n app.middleware.use(ErrorMiddleware.default(environment: app.environment))\n let allowedOrigins: [String] = [\n \"http://localhost\",\n \"http://localhost:3000\",\n \"http://localhost:4000\",\n \"http://localhost:4001\",\n \"http://localhost:5500\",\n \"http://localhost:4500\",\n \"http://localhost:5173\",\n \"https://bg-frontend-oi4hx.ondigitalocean.app\",\n \"https://docs-vizp7.ondigitalocean.app\"\n ]\n let cors = CustomCORSMiddleware(\n allowedOrigins: allowedOrigins,\n allowedMethods: [.GET, .POST, .PUT, .OPTIONS, .DELETE, .PATCH],\n allowedHeaders: [\n \"Authorization\",\"Content-Type\",\"Accept\",\"Origin\",\n \"X-Requested-With\",\"User-Agent\",\"sec-ch-ua\",\n \"sec-ch-ua-mobile\",\"sec-ch-ua-platform\"\n ],\n allowCredentials: true\n )\n app.middleware.use(cors)\n\n // MARK: - MongoKitten & Queues Configuration\n do {\n let mongoDatabase = try MongoDatabase.connect(mongoConnectionString, on: app.eventLoopGroup.next()).wait()\n try app.queues.use(.mongodb(mongoDatabase))\n try app.queues.startScheduledJobs()\n } catch {\n app.logger.error(\"Failed to connect to MongoDB queues: \\(error.localizedDescription)\")\n fatalError(\"Failed to connect to MongoDB for queues\")\n }\n\n // MARK: - API Keys & Managers\n guard let openAIApiKey = Environment.get(\"OPENAI_API_KEY\") else {\n fatalError(\"OPENAI_API_KEY not set in environment variables\")\n }\n let deepLKey = Environment.get(\"DEEPL_API_KEY\") ?? \"\"\n\n let ollama = OllamaManager()\n let openAI = OpenAIManager(apiKey: openAIApiKey)\n let deepSeek = DeepSeekManager(apiKey: Environment.get(\"DEEPSEEK_API_KEY\") ?? \"\")\n globalTranslationManager = TranslationManager(\n db: app.db,\n authKey: deepLKey,\n aiManager: AIManager(\n ollama: ollama,\n openAI: openAI,\n deepseek: deepSeek,\n model: .deepseek\n )\n )\n\n // MARK: - Migrations\n app_migrations.forEach { app.migrations.add($0) }\n try app.autoMigrate().wait()\n\n // MARK: - Routes\n try routes(app)\n}\n\n// MARK: - Scheduled Job Example\nstruct TestJob: AsyncScheduledJob {\n func run(context: QueueContext) async throws {\n context.logger.info(\"Test Job is running on schedule.\")\n print(\"Test Job is running on schedule.\")\n }\n}\n"}, "11f671abc5b928495933dab57410567cd12b7499": {"t": 1785757712.2622592, "n": 4082, "h": "039d7e96dab65fe6", "c": "import Vapor\nimport Fluent\nimport FluentMongoDriver\nimport Leaf\nimport Queues\nimport QueuesMongoDriver\nimport MongoKitten\n\nenum AppMode {\n case development, production\n}\npublic func configure(_ app: Application) throws {\n \n var mode: AppMode = .production\n // MARK: - JSON Encoder/Decoder Configuration\n let encoder = JSONEncoder()\n encoder.keyEncodingStrategy = .convertToSnakeCase\n encoder.dateEncodingStrategy = .iso8601\n\n let decoder = JSONDecoder()\n decoder.keyDecodingStrategy = .convertFromSnakeCase\n decoder.dateDecodingStrategy = .iso8601\n\n ContentConfiguration.global.use(encoder: encoder, for: .json)\n ContentConfiguration.global.use(decoder: decoder, for: .json)\n\n // MARK: - Server Configuration\n app.http.server.configuration.hostname = \"0.0.0.0\"\n app.http.server.configuration.port = Int(Environment.get(\"PORT\") ?? \"8080\") ?? 8080\n\n // MARK: - Database Configuration\n let databaseURL: String\n if mode == .development {\n databaseURL = ENV.databaseURL.dev_default\n } else {\n guard let envURL = Environment.get(\"CONNECTION_STRING\") else {\n fatalError(\"CONNECTION_STRING not set in environment variables for production\")\n }\n databaseURL = envURL\n }\n\n var mongoConnectionString = databaseURL\n if mongoConnectionString.contains(\"digitalocean\") && !mongoConnectionString.contains(\"authSource\") {\n mongoConnectionString += \"?authSource=admin\"\n }\n app.logger.info(\"Connecting to MongoDB at: \\(mongoConnectionString)\")\n\n // Register MongoDB for Fluent\n try app.databases.use(.mongo(connectionString: mongoConnectionString), as: .mongo)\n\n // MARK: - Leaf Configuration\n app.views.use(.leaf)\n\n // MARK: - Middleware Configuration\n app.middleware.use(ErrorMiddleware.default(environment: app.environment))\n let allowedOrigins: [String] = [\n \"http://localhost\",\n \"http://localhost:3000\",\n \"http://localhost:4000\",\n \"http://localhost:4001\",\n \"http://localhost:5500\",\n \"http://localhost:4500\",\n \"https://bg-frontend-oi4hx.ondigitalocean.app\"\n ]\n let cors = CustomCORSMiddleware(\n allowedOrigins: allowedOrigins,\n allowedMethods: [.GET, .POST, .PUT, .OPTIONS, .DELETE, .PATCH],\n allowedHeaders: [\n \"Authorization\",\"Content-Type\",\"Accept\",\"Origin\",\n \"X-Requested-With\",\"User-Agent\",\"sec-ch-ua\",\n \"sec-ch-ua-mobile\",\"sec-ch-ua-platform\"\n ],\n allowCredentials: true\n )\n app.middleware.use(cors)\n\n // MARK: - MongoKitten & Queues Configuration\n do {\n let mongoDatabase = try MongoDatabase.connect(mongoConnectionString, on: app.eventLoopGroup.next()).wait()\n try app.queues.use(.mongodb(mongoDatabase))\n try app.queues.startScheduledJobs()\n } catch {\n app.logger.error(\"Failed to connect to MongoDB queues: \\(error.localizedDescription)\")\n fatalError(\"Failed to connect to MongoDB for queues\")\n }\n\n // MARK: - API Keys & Managers\n guard let openAIApiKey = Environment.get(\"OPENAI_API_KEY\") else {\n fatalError(\"OPENAI_API_KEY not set in environment variables\")\n }\n let deepLKey = Environment.get(\"DEEPL_API_KEY\") ?? \"\"\n\n let ollama = OllamaManager()\n let openAI = OpenAIManager(apiKey: openAIApiKey)\n let deepSeek = DeepSeekManager(apiKey: Environment.get(\"DEEPSEEK_API_KEY\") ?? \"\")\n globalTranslationManager = TranslationManager(\n db: app.db,\n authKey: deepLKey,\n aiManager: AIManager(\n ollama: ollama,\n openAI: openAI,\n deepseek: deepSeek,\n model: .deepseek\n )\n )\n\n // MARK: - Migrations\n app_migrations.forEach { app.migrations.add($0) }\n try app.autoMigrate().wait()\n\n // MARK: - Routes\n try routes(app)\n}\n\n// MARK: - Scheduled Job Example\nstruct TestJob: AsyncScheduledJob {\n func run(context: QueueContext) async throws {\n context.logger.info(\"Test Job is running on schedule.\")\n print(\"Test Job is running on schedule.\")\n }\n}\n"}, "3335cfc5ed918f5336792bf93e9c17f0cfc613bd": {"t": 1785757714.200308, "n": 4806, "h": "de6c696c33108d1f", "c": "import Vapor\nimport Fluent\nimport FluentMongoDriver\nimport Leaf\nimport Queues\nimport QueuesMongoDriver\nimport MongoKitten\n\npublic func configure(_ app: Application) throws {\n // MARK: - JSON Encoder/Decoder Configuration\n let encoder = JSONEncoder()\n encoder.keyEncodingStrategy = .convertToSnakeCase\n encoder.dateEncodingStrategy = .iso8601\n\n let decoder = JSONDecoder()\n decoder.keyDecodingStrategy = .convertFromSnakeCase\n decoder.dateDecodingStrategy = .iso8601\n\n ContentConfiguration.global.use(encoder: encoder, for: .json)\n ContentConfiguration.global.use(decoder: decoder, for: .json)\n\n // MARK: - Server Configuration\n app.http.server.configuration.hostname = \"0.0.0.0\"\n app.http.server.configuration.port = Int(Environment.get(\"PORT\") ?? \"8080\") ?? 8080\n\n // MARK: - Database Configuration\n// guard let databaseURL = Environment.get(\"CONNECTION_STRING\") else {\n// fatalError(\"DATABASE_URL not set in environment variables\")\n// }\n \n let databaseURL = ENV.databaseURL.dev_default\n // Adjust database URL based on whether it is local or remote (e.g., DigitalOcean)\n var mongoConnectionString = databaseURL\n if mongoConnectionString.contains(\"digitalocean\") {\n if !mongoConnectionString.contains(\"authSource\") {\n mongoConnectionString += \"?authSource=admin\"\n }\n }\n\n app.logger.info(\"Connecting to MongoDB at: \\(mongoConnectionString)\")\n\n try app.databases.use(.mongo(connectionString: mongoConnectionString), as: .mongo)\n\n // MARK: - Leaf Configuration\n app.views.use(.leaf)\n\n // MARK: - Middleware Configuration\n app.middleware.use(ErrorMiddleware.default(environment: app.environment))\n app.passwords.use(.bcrypt)\n\n // MARK: - MongoKitten Configuration\n do {\n let mongoDatabase = try MongoDatabase.connect(mongoConnectionString, on: app.eventLoopGroup.next()).wait()\n try app.queues.use(.mongodb(mongoDatabase))\n } catch {\n app.logger.error(\"Failed to connect to MongoDB: \\(error.localizedDescription)\")\n fatalError(\"Failed to connect to MongoDB\")\n }\n\n // MARK: - API Keys\n// guard let deepLKey = Environment.get(\"DEEPL_API_KEY\") else {\n// fatalError(\"DEEPL_API_KEY not set in environment variables\")\n// }\n let deepLKey = \"DeepL-Auth-Key 054c8386-bc46-48af-a919-1d79960b400f:fx\"\n guard let openAIApiKey = Environment.get(\"OPENAI_API_KEY\") else {\n fatalError(\"OPENAI_API_KEY not set in environment variables\")\n }\n\n app_migrations.forEach { app.migrations.add($0) }\n try app.autoMigrate().wait()\n\n // Configure multiple allowed origins\n let allowedOrigins: [String] = [\n \"http://localhost\",\n \"http://localhost:3000\",\n \"http://localhost:4000\",\n \"http://localhost:4001\",\n \"http://localhost:5500\",\n \"http://localhost:4500\",\n \"https://bg-frontend-oi4hx.ondigitalocean.app\"\n ]\n \n // Initialize the custom CORS middleware\n let corsMiddleware = CustomCORSMiddleware(\n allowedOrigins: allowedOrigins,\n allowedMethods: [.GET, .POST, .PUT, .OPTIONS, .DELETE, .PATCH],\n allowedHeaders: [\n \"Authorization\",\n \"Content-Type\",\n \"Accept\",\n \"Origin\",\n \"X-Requested-With\",\n \"User-Agent\",\n \"sec-ch-ua\",\n \"sec-ch-ua-mobile\",\n \"sec-ch-ua-platform\"\n ],\n allowCredentials: true\n )\n\n app.middleware.use(ErrorMiddleware.default(environment: app.environment))\n app.middleware.use(corsMiddleware) // Move this after ErrorMiddleware\n let mongoDatabase = try MongoDatabase.connect(mongoConnectionString, on: app.eventLoopGroup.next()).wait()\n\n \n let ollama = OllamaManager()\n let openAI = OpenAIManager(apiKey: openAIApiKey)\n let deepSeekManager = DeepSeekManager(apiKey: \"sk-633329b2091348dfb1355e69e0400773\")\n \n globalTranslationManager = TranslationManager(\n db: app.db,\n authKey: deepLKey,\n aiManager: AIManager(ollama: ollama, openAI: openAI, deepseek: deepSeekManager, model: .deepseek)\n )\n\n // Debugging keys\n app.logger.info(\"DEEP: \\(deepLKey)\")\n app.logger.info(\"OPENAI: \\(openAIApiKey)\")\n // MARK: - Scheduled Jobs\n app.queues.schedule(TestJob())\n .weekly()\n .on(.monday)\n .at(8, 0)\n\n // Setup Queues with MongoDB driver\n try app.queues.use(.mongodb(mongoDatabase))\n\n // Start the scheduled jobs\n try app.queues.startScheduledJobs()\n\n // Register routes\n try routes(app)\n}\n\n// MARK: - Scheduled Job Example\nstruct TestJob: AsyncScheduledJob {\n func run(context: QueueContext) async throws {\n context.logger.info(\"Test Job is running on schedule.\")\n print(\"Test Job is running on schedule.\")\n }\n}\n"}, "14fc1d465183a8a48834e0b31619d9d199751b09": {"t": 1785757716.9481013, "n": 4550, "h": "01a7481bf6d41ace", "c": "import Vapor\nimport Fluent\nimport FluentMongoDriver\nimport Leaf\nimport Queues\nimport QueuesMongoDriver\nimport MongoKitten\n\npublic func configure(_ app: Application) throws {\n // MARK: - JSON Encoder/Decoder Configuration\n let encoder = JSONEncoder()\n encoder.keyEncodingStrategy = .convertToSnakeCase\n encoder.dateEncodingStrategy = .iso8601\n\n let decoder = JSONDecoder()\n decoder.keyDecodingStrategy = .convertFromSnakeCase\n decoder.dateDecodingStrategy = .iso8601\n\n ContentConfiguration.global.use(encoder: encoder, for: .json)\n ContentConfiguration.global.use(decoder: decoder, for: .json)\n\n // MARK: - Server Configuration\n app.http.server.configuration.hostname = \"0.0.0.0\"\n app.http.server.configuration.port = Int(Environment.get(\"PORT\") ?? \"8080\") ?? 8080\n\n // MARK: - Database Configuration\n guard let databaseURL = Environment.get(\"CONNECTION_STRING\") else {\n fatalError(\"DATABASE_URL not set in environment variables\")\n }\n \n // Adjust database URL based on whether it is local or remote (e.g., DigitalOcean)\n var mongoConnectionString = databaseURL\n if mongoConnectionString.contains(\"digitalocean\") {\n if !mongoConnectionString.contains(\"authSource\") {\n mongoConnectionString += \"?authSource=admin\"\n }\n }\n\n app.logger.info(\"Connecting to MongoDB at: \\(mongoConnectionString)\")\n\n try app.databases.use(.mongo(connectionString: mongoConnectionString), as: .mongo)\n\n // MARK: - Leaf Configuration\n app.views.use(.leaf)\n\n // MARK: - Middleware Configuration\n app.middleware.use(ErrorMiddleware.default(environment: app.environment))\n app.passwords.use(.bcrypt)\n\n // MARK: - MongoKitten Configuration\n do {\n let mongoDatabase = try MongoDatabase.connect(mongoConnectionString, on: app.eventLoopGroup.next()).wait()\n try app.queues.use(.mongodb(mongoDatabase))\n } catch {\n app.logger.error(\"Failed to connect to MongoDB: \\(error.localizedDescription)\")\n fatalError(\"Failed to connect to MongoDB\")\n }\n\n // MARK: - API Keys\n guard let deepLKey = Environment.get(\"DEEPL_API_KEY\") else {\n fatalError(\"DEEPL_API_KEY not set in environment variables\")\n }\n guard let openAIApiKey = Environment.get(\"OPENAI_API_KEY\") else {\n fatalError(\"OPENAI_API_KEY not set in environment variables\")\n }\n\n app_migrations.forEach { app.migrations.add($0) }\n try app.autoMigrate().wait()\n\n // Configure multiple allowed origins\n let allowedOrigins: [String] = [\n \"http://localhost\",\n \"http://localhost:3000\",\n \"http://localhost:4000\",\n \"http://localhost:4001\",\n \"http://localhost:5500\",\n \"http://localhost:4500\",\n \"https://bg-frontend-oi4hx.ondigitalocean.app\"\n ]\n \n // Initialize the custom CORS middleware\n let corsMiddleware = CustomCORSMiddleware(\n allowedOrigins: allowedOrigins,\n allowedMethods: [.GET, .POST, .PUT, .OPTIONS, .DELETE, .PATCH],\n allowedHeaders: [\n \"Authorization\",\n \"Content-Type\",\n \"Accept\",\n \"Origin\",\n \"X-Requested-With\",\n \"User-Agent\",\n \"sec-ch-ua\",\n \"sec-ch-ua-mobile\",\n \"sec-ch-ua-platform\"\n ],\n allowCredentials: true\n )\n\n app.middleware.use(ErrorMiddleware.default(environment: app.environment))\n app.middleware.use(corsMiddleware) // Move this after ErrorMiddleware\n let mongoDatabase = try MongoDatabase.connect(mongoConnectionString, on: app.eventLoopGroup.next()).wait()\n\n \n let ollama = OllamaManager()\n let openAI = OpenAIManager(apiKey: openAIApiKey)\n \n globalTranslationManager = TranslationManager(\n db: app.db,\n authKey: deepLKey,\n aiManager: AIManager(ollama: ollama, openAI: openAI, model: .openAI)\n )\n\n // Debugging keys\n app.logger.info(\"DEEP: \\(deepLKey)\")\n app.logger.info(\"OPENAI: \\(openAIApiKey)\")\n // MARK: - Scheduled Jobs\n app.queues.schedule(TestJob())\n .weekly()\n .on(.monday)\n .at(8, 0)\n\n // Setup Queues with MongoDB driver\n try app.queues.use(.mongodb(mongoDatabase))\n\n // Start the scheduled jobs\n try app.queues.startScheduledJobs()\n\n // Register routes\n try routes(app)\n}\n\n// MARK: - Scheduled Job Example\nstruct TestJob: AsyncScheduledJob {\n func run(context: QueueContext) async throws {\n context.logger.info(\"Test Job is running on schedule.\")\n print(\"Test Job is running on schedule.\")\n }\n}\n"}, "967143b042b921c23502da9021268f6a25818253": {"t": 1785757719.3905067, "n": 4490, "h": "310093196554d1f7", "c": "import Vapor\nimport Fluent\nimport FluentMongoDriver\nimport Leaf\nimport Queues\nimport QueuesMongoDriver\nimport MongoKitten\n\npublic func configure(_ app: Application) throws {\n // MARK: - JSON Encoder/Decoder Configuration\n let encoder = JSONEncoder()\n encoder.keyEncodingStrategy = .convertToSnakeCase\n encoder.dateEncodingStrategy = .iso8601\n\n let decoder = JSONDecoder()\n decoder.keyDecodingStrategy = .convertFromSnakeCase\n decoder.dateDecodingStrategy = .iso8601\n\n ContentConfiguration.global.use(encoder: encoder, for: .json)\n ContentConfiguration.global.use(decoder: decoder, for: .json)\n\n // MARK: - Server Configuration\n app.http.server.configuration.hostname = \"0.0.0.0\"\n app.http.server.configuration.port = Int(Environment.get(\"PORT\") ?? \"8080\") ?? 8080\n\n // MARK: - Database Configuration\n guard let databaseURL = Environment.get(\"CONNECTION_STRING\") else {\n fatalError(\"DATABASE_URL not set in environment variables\")\n }\n \n // Adjust database URL based on whether it is local or remote (e.g., DigitalOcean)\n var mongoConnectionString = databaseURL\n if mongoConnectionString.contains(\"digitalocean\") {\n if !mongoConnectionString.contains(\"authSource\") {\n mongoConnectionString += \"?authSource=admin\"\n }\n }\n\n app.logger.info(\"Connecting to MongoDB at: \\(mongoConnectionString)\")\n\n try app.databases.use(.mongo(connectionString: mongoConnectionString), as: .mongo)\n\n // MARK: - Leaf Configuration\n app.views.use(.leaf)\n\n // MARK: - Middleware Configuration\n app.middleware.use(ErrorMiddleware.default(environment: app.environment))\n app.passwords.use(.bcrypt)\n\n // MARK: - MongoKitten Configuration\n do {\n let mongoDatabase = try MongoDatabase.connect(mongoConnectionString, on: app.eventLoopGroup.next()).wait()\n try app.queues.use(.mongodb(mongoDatabase))\n } catch {\n app.logger.error(\"Failed to connect to MongoDB: \\(error.localizedDescription)\")\n fatalError(\"Failed to connect to MongoDB\")\n }\n\n // MARK: - API Keys\n guard let deepLKey = Environment.get(\"DEEPL_API_KEY\") else {\n fatalError(\"DEEPL_API_KEY not set in environment variables\")\n }\n guard let openAIApiKey = Environment.get(\"OPENAI_API_KEY\") else {\n fatalError(\"OPENAI_API_KEY not set in environment variables\")\n }\n\n app_migrations.forEach { app.migrations.add($0) }\n try app.autoMigrate().wait()\n\n // Configure multiple allowed origins\n let allowedOrigins: [String] = [\n \"http://localhost\",\n \"http://localhost:3000\",\n \"http://localhost:4000\",\n \"http://localhost:4001\",\n \"http://localhost:5500\",\n \"http://localhost:4500\",\n ]\n \n // Initialize the custom CORS middleware\n let corsMiddleware = CustomCORSMiddleware(\n allowedOrigins: allowedOrigins,\n allowedMethods: [.GET, .POST, .PUT, .OPTIONS, .DELETE, .PATCH],\n allowedHeaders: [\n \"Authorization\",\n \"Content-Type\",\n \"Accept\",\n \"Origin\",\n \"X-Requested-With\",\n \"User-Agent\",\n \"sec-ch-ua\",\n \"sec-ch-ua-mobile\",\n \"sec-ch-ua-platform\"\n ],\n allowCredentials: true\n )\n\n app.middleware.use(ErrorMiddleware.default(environment: app.environment))\n app.middleware.use(corsMiddleware) // Move this after ErrorMiddleware\n let mongoDatabase = try MongoDatabase.connect(mongoConnectionString, on: app.eventLoopGroup.next()).wait()\n\n \n let ollama = OllamaManager()\n let openAI = OpenAIManager(apiKey: openAIApiKey)\n globalTranslationManager = TranslationManager(\n db: app.db,\n authKey: deepLKey,\n aiManager: AIManager(ollama: ollama, openAI: openAI, model: .openAI)\n )\n\n // Debugging keys\n app.logger.info(\"DEEP: \\(deepLKey)\")\n app.logger.info(\"OPENAI: \\(openAIApiKey)\")\n // MARK: - Scheduled Jobs\n app.queues.schedule(TestJob())\n .weekly()\n .on(.monday)\n .at(8, 0)\n\n // Setup Queues with MongoDB driver\n try app.queues.use(.mongodb(mongoDatabase))\n\n // Start the scheduled jobs\n try app.queues.startScheduledJobs()\n\n // Register routes\n try routes(app)\n}\n\n// MARK: - Scheduled Job Example\nstruct TestJob: AsyncScheduledJob {\n func run(context: QueueContext) async throws {\n context.logger.info(\"Test Job is running on schedule.\")\n print(\"Test Job is running on schedule.\")\n }\n}\n"}, "b0e1ee7147e5eb27b9f7a82cd0c82cc840c61971": {"t": 1785757721.5074747, "n": 2448, "h": "d76084271b9bb74a", "c": "import Vapor\nimport Fluent\nimport FluentMongoDriver\nimport Leaf\nimport Queues\nimport QueuesMongoDriver\nimport MongoKitten\n\npublic func configure(_ app: Application) throws {\n // MARK: - JSON Encoder/Decoder Configuration\n let encoder = JSONEncoder()\n encoder.keyEncodingStrategy = .convertToSnakeCase\n encoder.dateEncodingStrategy = .iso8601\n\n let decoder = JSONDecoder()\n decoder.keyDecodingStrategy = .convertFromSnakeCase\n decoder.dateDecodingStrategy = .iso8601\n\n ContentConfiguration.global.use(encoder: encoder, for: .json)\n ContentConfiguration.global.use(decoder: decoder, for: .json)\n\n // MARK: - Server Configuration\n app.http.server.configuration.hostname = \"0.0.0.0\"\n app.http.server.configuration.port = Int(Environment.get(\"PORT\") ?? \"8080\") ?? 8080\n\n // MARK: - Database Configuration\n guard let databaseURL = Environment.get(\"CONNECTION_STRING\") else {\n fatalError(\"DATABASE_URL not set in environment variables\")\n }\n \n // Ensure proper MongoDB connection URI format\n let sanitizedDatabaseURL = databaseURL.replacingOccurrences(of: \"<PASSWORD>\", with: \"REDACTED\")\n app.logger.info(\"Connecting to MongoDB at: \\(sanitizedDatabaseURL)\")\n \n var mongoConnectionString = databaseURL\n if !mongoConnectionString.contains(\"tls=true\") {\n mongoConnectionString += \"?tls=true\"\n }\n\n try app.databases.use(.mongo(connectionString: mongoConnectionString), as: .mongo)\n\n // MARK: - Leaf Configuration\n app.views.use(.leaf)\n\n // MARK: - Middleware Configuration\n app.middleware.use(ErrorMiddleware.default(environment: app.environment))\n app.passwords.use(.bcrypt)\n\n // MARK: - MongoKitten Configuration\n do {\n let mongoDatabase = try MongoDatabase.connect(mongoConnectionString, on: app.eventLoopGroup.next()).wait()\n try app.queues.use(.mongodb(mongoDatabase))\n } catch {\n app.logger.error(\"Failed to connect to MongoDB: \\(error.localizedDescription)\")\n fatalError(\"Failed to connect to MongoDB\")\n }\n\n // MARK: - API Keys\n guard let deepLKey = Environment.get(\"DEEPL_API_KEY\") else {\n fatalError(\"DEEPL_API_KEY not set in environment variables\")\n }\n guard let openAIApiKey = Environment.get(\"OPENAI_API_KEY\") else {\n fatalError(\"OPENAI_API_KEY not set in environment variables\")\n }\n\n // Add your remaining configurations here...\n\n // MARK: - Routes\n try routes(app)\n}\n"}, "65e69132471261d1b1aec68fbb9a3e3ed335f75e": {"t": 1785757723.2987397, "n": 1864, "h": "71b7b2136e4107db", "c": "import Vapor\nimport Fluent\nimport FluentMongoDriver\nimport Leaf\nimport Queues\nimport QueuesMongoDriver\nimport MongoKitten\n\npublic func configure(_ app: Application) throws {\n // MARK: - JSON Encoder/Decoder Configuration\n let encoder = JSONEncoder()\n encoder.keyEncodingStrategy = .convertToSnakeCase\n encoder.dateEncodingStrategy = .iso8601\n\n let decoder = JSONDecoder()\n decoder.keyDecodingStrategy = .convertFromSnakeCase\n decoder.dateDecodingStrategy = .iso8601\n\n ContentConfiguration.global.use(encoder: encoder, for: .json)\n ContentConfiguration.global.use(decoder: decoder, for: .json)\n\n // MARK: - Server Configuration\n app.http.server.configuration.hostname = \"0.0.0.0\"\n app.http.server.configuration.port = Int(Environment.get(\"PORT\") ?? \"8080\") ?? 8080\n\n // MARK: - Database Configuration\n guard let databaseURL = Environment.get(\"DATABASE_URL\") else {\n fatalError(\"DATABASE_URL not set in environment variables\")\n }\n try app.databases.use(.mongo(connectionString: databaseURL), as: .mongo)\n\n // MARK: - Leaf Configuration\n app.views.use(.leaf)\n\n // MARK: - Middleware Configuration\n app.middleware.use(ErrorMiddleware.default(environment: app.environment))\n app.passwords.use(.bcrypt)\n\n // MARK: - MongoKitten Configuration\n let mongoDatabase = try MongoDatabase.connect(databaseURL, on: app.eventLoopGroup.next()).wait()\n try app.queues.use(.mongodb(mongoDatabase))\n\n // MARK: - API Keys\n guard let deepLKey = Environment.get(\"DEEPL_API_KEY\") else {\n fatalError(\"DEEPL_API_KEY not set in environment variables\")\n }\n guard let openAIApiKey = Environment.get(\"OPENAI_API_KEY\") else {\n fatalError(\"OPENAI_API_KEY not set in environment variables\")\n }\n\n // Add your remaining configurations here...\n\n // MARK: - Routes\n try routes(app)\n}\n"}, "9b38f0e7997e469fa7f34a33118aab1394957685": {"t": 1785757724.5949807, "n": 3776, "h": "2d0296e3490fafa2", "c": "import Vapor\nimport Fluent\nimport FluentMongoDriver\nimport Leaf\nimport Queues\nimport QueuesMongoDriver\nimport MongoKitten\n\nextension String {\n var bytes: [UInt8] { .init(self.utf8) }\n}\n\npublic func configure(_ app: Application) throws {\n // MARK: - JSON Encoder/Decoder Configuration\n let encoder = JSONEncoder()\n encoder.keyEncodingStrategy = .convertToSnakeCase\n encoder.dateEncodingStrategy = .iso8601\n\n let decoder = JSONDecoder()\n decoder.keyDecodingStrategy = .convertFromSnakeCase\n decoder.dateDecodingStrategy = .iso8601\n\n ContentConfiguration.global.use(encoder: encoder, for: .json)\n ContentConfiguration.global.use(decoder: decoder, for: .json)\n\n // MARK: - Server Configuration\n app.http.server.configuration.hostname = \"0.0.0.0\"\n app.http.server.configuration.port = Int(Environment.get(\"PORT\") ?? \"8080\") ?? 8080\n\n // MARK: - Database Configuration\n guard let databaseURL = Environment.get(\"DATABASE_URL\") else {\n fatalError(\"DATABASE_URL not set in environment variables\")\n }\n try app.databases.use(.mongo(connectionString: databaseURL), as: .mongo)\n\n // Apply migrations\n app_migrations.forEach { app.migrations.add($0) }\n try app.autoMigrate().wait()\n\n // MARK: - Leaf Configuration\n app.views.use(.leaf)\n\n // MARK: - Middleware Configuration\n app.middleware.use(ErrorMiddleware.default(environment: app.environment))\n app.passwords.use(.bcrypt)\n\n // Configure allowed origins for CORS\n let allowedOrigins: [String] = [\n \"http://localhost\",\n \"http://localhost:3000\",\n \"http://localhost:4000\",\n \"http://localhost:4001\",\n \"http://localhost:5500\",\n \"http://localhost:4500\"\n ]\n\n // CORS Middleware\n let corsMiddleware = CustomCORSMiddleware(\n allowedOrigins: allowedOrigins,\n allowedMethods: [.GET, .POST, .PUT, .OPTIONS, .DELETE, .PATCH],\n allowedHeaders: [\n \"Authorization\",\n \"Content-Type\",\n \"Accept\",\n \"Origin\",\n \"X-Requested-With\",\n \"User-Agent\",\n \"sec-ch-ua\",\n \"sec-ch-ua-mobile\",\n \"sec-ch-ua-platform\"\n ],\n allowCredentials: true\n )\n\n app.middleware.use(corsMiddleware, at: .beginning)\n\n // MARK: - MongoKitten Configuration\n let mongoDatabase = try MongoDatabase.connect(databaseURL, on: app.eventLoopGroup.next()).wait()\n try app.queues.use(.mongodb(mongoDatabase))\n globalDB = app.db\n\n // MARK: - API Keys and AI Manager\n guard let deepLKey = Environment.get(\"DEEPL_API_KEY\") else {\n fatalError(\"DEEPL_API_KEY not set in environment variables\")\n }\n globalDeepLkey = deepLKey\n\n let ollama = OllamaManager()\n guard let openAIApiKey = Environment.get(\"OPENAI_API_KEY\") else {\n fatalError(\"OPENAI_API_KEY not set in environment variables\")\n }\n let openAI = OpenAIManager(apiKey: openAIApiKey)\n\n globalTranslationManager = TranslationManager(\n db: app.db,\n authKey: deepLKey,\n aiManager: AIManager(ollama: ollama, openAI: openAI, model: .openAI)\n )\n\n // Debugging keys\n app.logger.info(\"DEEP: \\(deepLKey)\")\n app.logger.info(\"OPENAI: \\(openAIApiKey)\")\n\n // MARK: - Scheduled Jobs\n app.queues.schedule(TestJob())\n .weekly()\n .on(.monday)\n .at(8, 0)\n\n // Start scheduled jobs\n try app.queues.startScheduledJobs()\n\n // MARK: - Routes\n try routes(app)\n}\n\n// MARK: - Global Database Reference\nvar globalDB: Database?\n\n// MARK: - Scheduled Job Example\nstruct TestJob: AsyncScheduledJob {\n func run(context: QueueContext) async throws {\n context.logger.info(\"Test Job is running on schedule.\")\n print(\"Test Job is running on schedule.\")\n }\n}\n"}, "4b8e9f19f63f6dcb0c72f0fe1a773dd86e2e9372": {"t": 1785757727.5132406, "n": 4101, "h": "2105782364319eef", "c": "//\n// Copyright © 2023.\n// Alon Yakobichvili\n// All rights reserved.\n//\n\nimport Vapor\nimport Fluent\nimport FluentMongoDriver\nimport Leaf\nimport Queues\nimport QueuesMongoDriver\nimport MongoKitten\nimport DotEnv\n\nextension String {\n var bytes: [UInt8] { .init(self.utf8) }\n}\n\npublic func configure(_ app: Application) throws {\n // MARK: - Load Environment Variables\n let path = \"\\(app.directory.workingDirectory).env\"\n do {\n try DotEnv.load(path: path)\n } catch {\n fatalError(\"Error loading .env file at path \\(path): \\(error)\")\n }\n\n // MARK: - JSON Encoder/Decoder Configuration\n let encoder = JSONEncoder()\n encoder.keyEncodingStrategy = .convertToSnakeCase\n encoder.dateEncodingStrategy = .iso8601\n\n let decoder = JSONDecoder()\n decoder.keyDecodingStrategy = .convertFromSnakeCase\n decoder.dateDecodingStrategy = .iso8601\n\n ContentConfiguration.global.use(encoder: encoder, for: .json)\n ContentConfiguration.global.use(decoder: decoder, for: .json)\n\n // MARK: - Server Configuration\n app.http.server.configuration.hostname = \"0.0.0.0\"\n app.http.server.configuration.port = Int(Environment.get(\"PORT\") ?? \"8080\") ?? 8080\n\n // MARK: - Database Configuration\n guard let databaseURL = Environment.get(\"DATABASE_URL\") else {\n fatalError(\"DATABASE_URL not set in environment variables\")\n }\n try app.databases.use(.mongo(connectionString: databaseURL), as: .mongo)\n\n // Apply migrations\n app_migrations.forEach { app.migrations.add($0) }\n try app.autoMigrate().wait()\n\n // MARK: - Leaf Configuration\n app.views.use(.leaf)\n\n // MARK: - Middleware Configuration\n app.middleware.use(ErrorMiddleware.default(environment: app.environment))\n app.passwords.use(.bcrypt)\n\n // Configure allowed origins for CORS\n let allowedOrigins: [String] = [\n \"http://localhost\",\n \"http://localhost:3000\",\n \"http://localhost:4000\",\n \"http://localhost:4001\",\n \"http://localhost:5500\",\n \"http://localhost:4500\"\n ]\n\n // CORS Middleware\n let corsMiddleware = CustomCORSMiddleware(\n allowedOrigins: allowedOrigins,\n allowedMethods: [.GET, .POST, .PUT, .OPTIONS, .DELETE, .PATCH],\n allowedHeaders: [\n \"Authorization\",\n \"Content-Type\",\n \"Accept\",\n \"Origin\",\n \"X-Requested-With\",\n \"User-Agent\",\n \"sec-ch-ua\",\n \"sec-ch-ua-mobile\",\n \"sec-ch-ua-platform\"\n ],\n allowCredentials: true\n )\n\n app.middleware.use(corsMiddleware, at: .beginning)\n\n // MARK: - MongoKitten Configuration\n let mongoDatabase = try MongoDatabase.connect(databaseURL, on: app.eventLoopGroup.next()).wait()\n try app.queues.use(.mongodb(mongoDatabase))\n globalDB = app.db\n\n // MARK: - API Keys and AI Manager\n guard let deepLKey = Environment.get(\"DEEPL_API_KEY\") else {\n fatalError(\"DEEPL_API_KEY not set in environment variables\")\n }\n globalDeepLkey = deepLKey\n\n let ollama = OllamaManager()\n guard let openAIApiKey = Environment.get(\"OPENAI_API_KEY\") else {\n fatalError(\"OPENAI_API_KEY not set in environment variables\")\n }\n let openAI = OpenAIManager(apiKey: openAIApiKey)\n\n globalTranslationManager = TranslationManager(\n db: app.db,\n authKey: deepLKey,\n aiManager: AIManager(ollama: ollama, openAI: openAI, model: .openAI)\n )\n\n // Debugging keys\n app.logger.info(\"DEEP: \\(deepLKey)\")\n app.logger.info(\"OPENAI: \\(openAIApiKey)\")\n\n // MARK: - Scheduled Jobs\n app.queues.schedule(TestJob())\n .weekly()\n .on(.monday)\n .at(8, 0)\n\n // Start scheduled jobs\n try app.queues.startScheduledJobs()\n\n // MARK: - Routes\n try routes(app)\n}\n\n// MARK: - Global Database Reference\nvar globalDB: Database?\n\n// MARK: - Scheduled Job Example\nstruct TestJob: AsyncScheduledJob {\n func run(context: QueueContext) async throws {\n context.logger.info(\"Test Job is running on schedule.\")\n print(\"Test Job is running on schedule.\")\n }\n}\n"}, "06052f4a90d7a781e09e4c631f8033d411d31f50": {"t": 1785757728.9097836, "n": 5051, "h": "bd717fd059de9594", "c": "//\n//\n// Copyright © 2023.\n// Alon Yakobichvili\n// All rights reserved.\n//\n\nimport Vapor\nimport Fluent\nimport FluentMongoDriver\nimport Leaf\n//import Smtp\nimport Queues\nimport QueuesMongoDriver\nimport MongoKitten\n//import JWT\n\nextension String {\n var bytes: [UInt8] { .init(self.utf8) }\n}\n// configures your application\npublic func configure(_ app: Application) throws {\n // uncomment to serve files from /Public folder\n // app.middleware.use(FileMiddleware(publicDirectory: app.directory.publicDirectory))\n \n // app.jwt.signers.use(.hs256(key: \"3Cz30pJzxbqYvLjXqTJjU8VpU5bxvgoNRvq1a+BXOts\"))\n let encoder = JSONEncoder()\n encoder.keyEncodingStrategy = .convertToSnakeCase\n encoder.dateEncodingStrategy = .iso8601\n \n let decoder = JSONDecoder()\n decoder.keyDecodingStrategy = .convertFromSnakeCase\n decoder.dateDecodingStrategy = .iso8601\n\n ContentConfiguration.global.use(encoder: encoder, for: .json)\n ContentConfiguration.global.use(decoder: decoder, for: .json)\n \n// app.jwt.signers.use(.hs256(key: Environment.get(ENV.jwtSecret.key) ?? ENV.jwtSecret.dev_default))\n\n \n app.http.server.configuration.hostname = \"0.0.0.0\"\n app.http.server.configuration.port = 8080\n\n \n try app.databases.use(.mongo(connectionString:Environment.get(ENV.databaseURL.key) ?? ENV.databaseURL.dev_default),\n as: .mongo)\n \n app_migrations.forEach { app.migrations.add($0) }\n \n try app.autoMigrate().wait()\n \n app.views.use(.leaf)\n// app.middleware.use(DBUser.authenticator())\n// app.middleware.use(Token.authenticator())\n\n \n app.middleware.use(ErrorMiddleware.default(environment: app.environment))\n app.passwords.use(.bcrypt)\n\n // Configure multiple allowed origins\n let allowedOrigins: [String] = [\n \"http://localhost\",\n \"http://localhost:3000\",\n \"http://localhost:4000\",\n \"http://localhost:4001\",\n \"http://localhost:5500\",\n \"http://localhost:4500\"\n ]\n\n // Define your CORS configuration\n let corsMiddleware = CustomCORSMiddleware(\n allowedOrigins: allowedOrigins,\n allowedMethods: [.GET, .POST, .PUT, .OPTIONS, .DELETE, .PATCH],\n allowedHeaders: [\n \"Authorization\",\n \"Content-Type\",\n \"Accept\",\n \"Origin\",\n \"X-Requested-With\",\n \"User-Agent\",\n \"sec-ch-ua\",\n \"sec-ch-ua-mobile\",\n \"sec-ch-ua-platform\"\n ],\n allowCredentials: true\n )\n\n // Create the CORS middleware with the configuration\n app.middleware.use(ErrorMiddleware.default(environment: app.environment))\n app.middleware.use(corsMiddleware) // Move this after ErrorMiddleware\n\n // Use the CORS middleware in your application\n app.middleware.use(corsMiddleware, at: .beginning) // Ensure it's the first middleware to run\n// let backgroundManager = BackgroundManager(eventLoop: app.eventLoopGroup.next(), db: app.db, authKey: deepLkey) \n //Environment.get(\"DEEPL_API_KEY\") ?? \"your-deepl-api-key\")\n\n let mongoConnectionString = Environment.get(ENV.databaseURL.key) ?? ENV.databaseURL.dev_default\n let mongoDatabase = try MongoDatabase.connect(mongoConnectionString, on: app.eventLoopGroup.next()).wait()\n\n // Setup Queues with MongoDB driver\n try app.queues.use(.mongodb(mongoDatabase))\n\n globalDB = app.db\n \n guard let deepLkey = Environment.get(\"DEEPL_API_KEY\") else {\n return\n }\n \n // MARK: AI MANAGERS\n \n let ollama = OllamaManager()\n guard let openAIApikey = Environment.get(\"OPENAI_API_KEY\") else { return }\n let openAI = OpenAIManager(apiKey: openAIApikey)\n \n globalTranslationManager = TranslationManager(db: app.db, authKey: deepLkey, aiManager: AIManager(ollama: ollama, openAI: openAI, model: .openAI))\n\n app.queues.schedule(TestJob())\n .weekly()\n .on(.monday)\n .at(8,0)\n\n // Start the scheduled jobs\n try app.queues.startScheduledJobs()\n\n // register routes\n try routes(app)\n}\n\nvar globalDB: Database?\n\nstruct TestJob: AsyncScheduledJob {\n func run(context: QueueContext) async throws {\n context.logger.info(\"Test Job is running every second.\")\n print(\"Test Job is running every second.\")\n }\n}\n\n/* struct UnlockPlayerJob: AsyncScheduledJob {\n func run(context: QueueContext) async throws {\n context.logger.info(\"Unlock Job is running.\")\n print(\"Unlock Job is running.\")\n\n // Job logic\n // Get all the players with eligibility Gesperrt, Check if their blockdate has passed, if yes set their eligibility to Spielberechtigt\n let players = try await Player.query(on: context.application.db)\n .filter(\\.$eligibility == .Gesperrt)\n .filter(\\.$blockdate <= Date())\n .all()\n \n for player in players {\n player.eligibility = .Spielberechtigt\n try await player.save(on: context.application.db)\n context.logger.info(\"Player \\(player.name) eligibility updated to Spielberechtigt.\")\n }\n }\n} */\n\n\n"}, "5e11e0e72a1be779fbfbe509b68bf4ac29fa3919": {"t": 1785757730.233051, "n": 5076, "h": "72a93bed37255b93", "c": "//\n//\n// Copyright © 2023.\n// Alon Yakobichvili\n// All rights reserved.\n//\n\nimport Vapor\nimport Fluent\nimport FluentMongoDriver\nimport Leaf\n//import Smtp\nimport Queues\nimport QueuesMongoDriver\nimport MongoKitten\n//import JWT\n\nextension String {\n var bytes: [UInt8] { .init(self.utf8) }\n}\n// configures your application\npublic func configure(_ app: Application) throws {\n // uncomment to serve files from /Public folder\n // app.middleware.use(FileMiddleware(publicDirectory: app.directory.publicDirectory))\n \n // app.jwt.signers.use(.hs256(key: \"3Cz30pJzxbqYvLjXqTJjU8VpU5bxvgoNRvq1a+BXOts\"))\n let encoder = JSONEncoder()\n encoder.keyEncodingStrategy = .convertToSnakeCase\n encoder.dateEncodingStrategy = .iso8601\n \n let decoder = JSONDecoder()\n decoder.keyDecodingStrategy = .convertFromSnakeCase\n decoder.dateDecodingStrategy = .iso8601\n\n ContentConfiguration.global.use(encoder: encoder, for: .json)\n ContentConfiguration.global.use(decoder: decoder, for: .json)\n \n// app.jwt.signers.use(.hs256(key: Environment.get(ENV.jwtSecret.key) ?? ENV.jwtSecret.dev_default))\n\n \n app.http.server.configuration.hostname = \"0.0.0.0\"\n app.http.server.configuration.port = 8080\n\n \n try app.databases.use(.mongo(connectionString:Environment.get(ENV.databaseURL.key) ?? ENV.databaseURL.dev_default),\n as: .mongo)\n \n app_migrations.forEach { app.migrations.add($0) }\n \n try app.autoMigrate().wait()\n \n app.views.use(.leaf)\n// app.middleware.use(DBUser.authenticator())\n// app.middleware.use(Token.authenticator())\n\n \n app.middleware.use(ErrorMiddleware.default(environment: app.environment))\n app.passwords.use(.bcrypt)\n\n // Configure multiple allowed origins\n let allowedOrigins: [String] = [\n \"http://localhost\",\n \"http://localhost:3000\",\n \"http://localhost:4000\",\n \"http://localhost:4001\",\n \"http://localhost:5500\",\n \"http://localhost:4500\"\n ]\n\n // Define your CORS configuration\n let corsMiddleware = CustomCORSMiddleware(\n allowedOrigins: allowedOrigins,\n allowedMethods: [.GET, .POST, .PUT, .OPTIONS, .DELETE, .PATCH],\n allowedHeaders: [\n \"Authorization\",\n \"Content-Type\",\n \"Accept\",\n \"Origin\",\n \"X-Requested-With\",\n \"User-Agent\",\n \"sec-ch-ua\",\n \"sec-ch-ua-mobile\",\n \"sec-ch-ua-platform\"\n ],\n allowCredentials: true\n )\n\n // Create the CORS middleware with the configuration\n app.middleware.use(ErrorMiddleware.default(environment: app.environment))\n app.middleware.use(corsMiddleware) // Move this after ErrorMiddleware\n\n // Use the CORS middleware in your application\n app.middleware.use(corsMiddleware, at: .beginning) // Ensure it's the first middleware to run\n// let backgroundManager = BackgroundManager(eventLoop: app.eventLoopGroup.next(), db: app.db, authKey: deepLkey) \n //Environment.get(\"DEEPL_API_KEY\") ?? \"your-deepl-api-key\")\n\n let mongoConnectionString = Environment.get(ENV.databaseURL.key) ?? ENV.databaseURL.dev_default\n let mongoDatabase = try MongoDatabase.connect(mongoConnectionString, on: app.eventLoopGroup.next()).wait()\n\n // Setup Queues with MongoDB driver\n try app.queues.use(.mongodb(mongoDatabase))\n\n globalDB = app.db\n \n let deepLkey = Environment.get(\"DEEPL_API_KEY\") ?? \"DeepL-Auth-Key 054c8386-bc46-48af-a919-1d79960b400f:fx\"\n\n \n // MARK: AI MANAGERS\n \n let ollama = OllamaManager()\n let openAIApikey = \"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\"\n let openAI = OpenAIManager(apiKey: openAIApikey)\n \n globalTranslationManager = TranslationManager(db: app.db, authKey: deepLkey, aiManager: AIManager(ollama: ollama, openAI: openAI, model: .openAI))\n\n app.queues.schedule(TestJob())\n .weekly()\n .on(.monday)\n .at(8,0)\n\n // Start the scheduled jobs\n try app.queues.startScheduledJobs()\n\n // register routes\n try routes(app)\n}\n\nvar globalDB: Database?\n\nstruct TestJob: AsyncScheduledJob {\n func run(context: QueueContext) async throws {\n context.logger.info(\"Test Job is running every second.\")\n print(\"Test Job is running every second.\")\n }\n}\n\n/* struct UnlockPlayerJob: AsyncScheduledJob {\n func run(context: QueueContext) async throws {\n context.logger.info(\"Unlock Job is running.\")\n print(\"Unlock Job is running.\")\n\n // Job logic\n // Get all the players with eligibility Gesperrt, Check if their blockdate has passed, if yes set their eligibility to Spielberechtigt\n let players = try await Player.query(on: context.application.db)\n .filter(\\.$eligibility == .Gesperrt)\n .filter(\\.$blockdate <= Date())\n .all()\n \n for player in players {\n player.eligibility = .Spielberechtigt\n try await player.save(on: context.application.db)\n context.logger.info(\"Player \\(player.name) eligibility updated to Spielberechtigt.\")\n }\n }\n} */\n\n\n"}, "735d333a2d0594d3b66e8dac88d2b905d6b9028c": {"t": 1785757732.3397458, "n": 5035, "h": "7e852222d2faf404", "c": "//\n//\n// Copyright © 2023.\n// Alon Yakobichvili\n// All rights reserved.\n//\n\nimport Vapor\nimport Fluent\nimport FluentMongoDriver\nimport Leaf\n//import Smtp\nimport Queues\nimport QueuesMongoDriver\nimport MongoKitten\n//import JWT\n\nextension String {\n var bytes: [UInt8] { .init(self.utf8) }\n}\n// configures your application\npublic func configure(_ app: Application) throws {\n // uncomment to serve files from /Public folder\n // app.middleware.use(FileMiddleware(publicDirectory: app.directory.publicDirectory))\n \n // app.jwt.signers.use(.hs256(key: \"3Cz30pJzxbqYvLjXqTJjU8VpU5bxvgoNRvq1a+BXOts\"))\n let encoder = JSONEncoder()\n encoder.keyEncodingStrategy = .convertToSnakeCase\n encoder.dateEncodingStrategy = .iso8601\n \n let decoder = JSONDecoder()\n decoder.keyDecodingStrategy = .convertFromSnakeCase\n decoder.dateDecodingStrategy = .iso8601\n\n ContentConfiguration.global.use(encoder: encoder, for: .json)\n ContentConfiguration.global.use(decoder: decoder, for: .json)\n \n// app.jwt.signers.use(.hs256(key: Environment.get(ENV.jwtSecret.key) ?? ENV.jwtSecret.dev_default))\n\n \n app.http.server.configuration.hostname = \"0.0.0.0\"\n app.http.server.configuration.port = 8080\n\n \n try app.databases.use(.mongo(connectionString:Environment.get(ENV.databaseURL.key) ?? ENV.databaseURL.dev_default),\n as: .mongo)\n \n app_migrations.forEach { app.migrations.add($0) }\n \n try app.autoMigrate().wait()\n \n app.views.use(.leaf)\n// app.middleware.use(DBUser.authenticator())\n// app.middleware.use(Token.authenticator())\n\n \n app.middleware.use(ErrorMiddleware.default(environment: app.environment))\n app.passwords.use(.bcrypt)\n\n // Configure multiple allowed origins\n let allowedOrigins: [String] = [\n \"http://localhost\",\n \"http://localhost:3000\",\n \"http://localhost:4000\",\n \"http://localhost:4001\",\n \"http://localhost:5500\",\n \"http://localhost:4500\"\n ]\n\n // Define your CORS configuration\n let corsMiddleware = CustomCORSMiddleware(\n allowedOrigins: allowedOrigins,\n allowedMethods: [.GET, .POST, .PUT, .OPTIONS, .DELETE, .PATCH],\n allowedHeaders: [\n \"Authorization\",\n \"Content-Type\",\n \"Accept\",\n \"Origin\",\n \"X-Requested-With\",\n \"User-Agent\",\n \"sec-ch-ua\",\n \"sec-ch-ua-mobile\",\n \"sec-ch-ua-platform\"\n ],\n allowCredentials: true\n )\n\n // Create the CORS middleware with the configuration\n app.middleware.use(ErrorMiddleware.default(environment: app.environment))\n app.middleware.use(corsMiddleware) // Move this after ErrorMiddleware\n\n // Use the CORS middleware in your application\n app.middleware.use(corsMiddleware, at: .beginning) // Ensure it's the first middleware to run\n// let backgroundManager = BackgroundManager(eventLoop: app.eventLoopGroup.next(), db: app.db, authKey: deepLkey) \n //Environment.get(\"DEEPL_API_KEY\") ?? \"your-deepl-api-key\")\n\n let mongoConnectionString = Environment.get(ENV.databaseURL.key) ?? ENV.databaseURL.dev_default\n let mongoDatabase = try MongoDatabase.connect(mongoConnectionString, on: app.eventLoopGroup.next()).wait()\n\n // Setup Queues with MongoDB driver\n try app.queues.use(.mongodb(mongoDatabase))\n\n globalDB = app.db\n let deepLkey = \"DeepL-Auth-Key 054c8386-bc46-48af-a919-1d79960b400f:fx\"\n\n \n // MARK: AI MANAGERS\n \n let ollama = OllamaManager()\n let openAIApikey = \"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\"\n let openAI = OpenAIManager(apiKey: openAIApikey)\n \n globalTranslationManager = TranslationManager(db: app.db, authKey: deepLkey, aiManager: AIManager(ollama: ollama, openAI: openAI, model: .openAI))\n\n app.queues.schedule(TestJob())\n .weekly()\n .on(.monday)\n .at(8,0)\n\n // Start the scheduled jobs\n try app.queues.startScheduledJobs()\n\n // register routes\n try routes(app)\n}\n\nvar globalDB: Database?\n\nstruct TestJob: AsyncScheduledJob {\n func run(context: QueueContext) async throws {\n context.logger.info(\"Test Job is running every second.\")\n print(\"Test Job is running every second.\")\n }\n}\n\n/* struct UnlockPlayerJob: AsyncScheduledJob {\n func run(context: QueueContext) async throws {\n context.logger.info(\"Unlock Job is running.\")\n print(\"Unlock Job is running.\")\n\n // Job logic\n // Get all the players with eligibility Gesperrt, Check if their blockdate has passed, if yes set their eligibility to Spielberechtigt\n let players = try await Player.query(on: context.application.db)\n .filter(\\.$eligibility == .Gesperrt)\n .filter(\\.$blockdate <= Date())\n .all()\n \n for player in players {\n player.eligibility = .Spielberechtigt\n try await player.save(on: context.application.db)\n context.logger.info(\"Player \\(player.name) eligibility updated to Spielberechtigt.\")\n }\n }\n} */\n\n\n"}, "90ee53603054e2d3f30c2c507b3d920b11a5bd10": {"t": 1785757733.6842024, "n": 2781, "h": "958cfa3befbbf754", "c": "//\n//\n// Copyright © 2023.\n// Alon Yakobichvili\n// All rights reserved.\n//\n\nimport Fluent\nimport FluentMongoDriver\nimport Leaf\nimport Vapor\n//import JWT\n\nextension String {\n var bytes: [UInt8] { .init(self.utf8) }\n}\n// configures your application\npublic func configure(_ app: Application) throws {\n // uncomment to serve files from /Public folder\n // app.middleware.use(FileMiddleware(publicDirectory: app.directory.publicDirectory))\n \n // app.jwt.signers.use(.hs256(key: \"3Cz30pJzxbqYvLjXqTJjU8VpU5bxvgoNRvq1a+BXOts\"))\n let encoder = JSONEncoder()\n encoder.keyEncodingStrategy = .convertToSnakeCase\n encoder.dateEncodingStrategy = .iso8601\n \n let decoder = JSONDecoder()\n decoder.keyDecodingStrategy = .convertFromSnakeCase\n decoder.dateDecodingStrategy = .iso8601\n\n ContentConfiguration.global.use(encoder: encoder, for: .json)\n ContentConfiguration.global.use(decoder: decoder, for: .json)\n \n// app.jwt.signers.use(.hs256(key: Environment.get(ENV.jwtSecret.key) ?? ENV.jwtSecret.dev_default))\n\n \n app.http.server.configuration.hostname = \"0.0.0.0\"\n app.http.server.configuration.port = 8080\n\n \n try app.databases.use(.mongo(connectionString:Environment.get(ENV.databaseURL.key) ?? ENV.databaseURL.dev_default),\n as: .mongo)\n \n app_migrations.forEach { app.migrations.add($0) }\n \n try app.autoMigrate().wait()\n \n app.views.use(.leaf)\n// app.middleware.use(DBUser.authenticator())\n// app.middleware.use(Token.authenticator())\n\n \n app.middleware.use(ErrorMiddleware.default(environment: app.environment))\n app.passwords.use(.bcrypt)\n\n // Define your CORS configuration\n let corsConfiguration = CORSMiddleware.Configuration(\n allowedOrigin: .custom(\"http://localhost:3000\"), // Explicitly allow your React frontend\n allowedMethods: [.GET, .POST, .PUT, .OPTIONS, .DELETE, .PATCH], // Specify allowed methods\n allowedHeaders: [.authorization, .contentType, .accept, .origin, .xRequestedWith], // Specify allowed headers\n allowCredentials: true, // Whether to allow cookies/cross-origin requests\n exposedHeaders: [.authorization, .contentType] // Optional: Specify headers that browsers are allowed to access\n )\n\n // Create the CORS middleware with the configuration\n let corsMiddleware = CORSMiddleware(configuration: corsConfiguration)\n\n // Use the CORS middleware in your application\n app.middleware.use(corsMiddleware, at: .beginning) // Ensure it's the first middleware to run\n let backgroundManager = BackgroundManager(eventLoop: app.eventLoopGroup.next(), db: app.db, authKey: deepLkey) \n //Environment.get(\"DEEPL_API_KEY\") ?? \"your-deepl-api-key\")\n\n // register routes\n try routes(app)\n}\n"}, "ccbae32154f118e5018137c396127bd040214ec2": {"t": 1785757734.875596, "n": 2777, "h": "f7c3fd7f12f8dd2d", "c": "//\n//\n// Copyright © 2023.\n// Alon Yakobichvili\n// All rights reserved.\n//\n\nimport Fluent\nimport FluentMongoDriver\nimport Leaf\nimport Vapor\n//import JWT\n\nextension String {\n var bytes: [UInt8] { .init(self.utf8) }\n}\n// configures your application\npublic func configure(_ app: Application) throws {\n // uncomment to serve files from /Public folder\n // app.middleware.use(FileMiddleware(publicDirectory: app.directory.publicDirectory))\n \n // app.jwt.signers.use(.hs256(key: \"3Cz30pJzxbqYvLjXqTJjU8VpU5bxvgoNRvq1a+BXOts\"))\n let encoder = JSONEncoder()\n encoder.keyEncodingStrategy = .convertToSnakeCase\n encoder.dateEncodingStrategy = .iso8601\n \n let decoder = JSONDecoder()\n decoder.keyDecodingStrategy = .convertFromSnakeCase\n decoder.dateDecodingStrategy = .iso8601\n\n ContentConfiguration.global.use(encoder: encoder, for: .json)\n ContentConfiguration.global.use(decoder: decoder, for: .json)\n \n// app.jwt.signers.use(.hs256(key: Environment.get(ENV.jwtSecret.key) ?? ENV.jwtSecret.dev_default))\n\n \n app.http.server.configuration.hostname = \"0.0.0.0\"\n app.http.server.configuration.port = 8080\n\n \n try app.databases.use(.mongo(connectionString:Environment.get(ENV.databaseURL.key) ?? ENV.databaseURL.dev_default),\n as: .mongo)\n \n app_migrations.forEach { app.migrations.add($0) }\n \n try app.autoMigrate().wait()\n \n app.views.use(.leaf)\n// app.middleware.use(DBUser.authenticator())\n// app.middleware.use(Token.authenticator())\n\n \n app.middleware.use(ErrorMiddleware.default(environment: app.environment))\n app.passwords.use(.bcrypt)\n\n // Define your CORS configuration\n let corsConfiguration = CORSMiddleware.Configuration(\n allowedOrigin: .custom(\"http://localhost:3000\"), // Explicitly allow your React frontend\n allowedMethods: [.GET, .POST, .PUT, .OPTIONS, .DELETE, .PATCH], // Specify allowed methods\n allowedHeaders: [.authorization, .contentType, .accept, .origin, .xRequestedWith], // Specify allowed headers\n allowCredentials: true, // Whether to allow cookies/cross-origin requests\n exposedHeaders: [.authorization, .contentType] // Optional: Specify headers that browsers are allowed to access\n )\n\n // Create the CORS middleware with the configuration\n let corsMiddleware = CORSMiddleware(configuration: corsConfiguration)\n\n // Use the CORS middleware in your application\n app.middleware.use(corsMiddleware, at: .beginning) // Ensure it's the first middleware to run\n let backgroundManager = BackgroundManager(eventLoop: app.eventLoopGroup.next(), db: app.db, authKey: deepLkey) //Environment.get(\"DEEPL_API_KEY\") ?? \"your-deepl-api-key\")\n\n // register routes\n try routes(app)\n}\n"}, "603550dd8a636105b8965450a6ffe457b7d78cee": {"t": 1785757736.202871, "n": 2489, "h": "b52ce0c86a7473d3", "c": "//\n//\n// Copyright © 2023.\n// Alon Yakobichvili\n// All rights reserved.\n//\n\nimport Fluent\nimport FluentMongoDriver\nimport Leaf\nimport Vapor\n//import JWT\n\nextension String {\n var bytes: [UInt8] { .init(self.utf8) }\n}\n// configures your application\npublic func configure(_ app: Application) throws {\n // uncomment to serve files from /Public folder\n // app.middleware.use(FileMiddleware(publicDirectory: app.directory.publicDirectory))\n \n // app.jwt.signers.use(.hs256(key: \"3Cz30pJzxbqYvLjXqTJjU8VpU5bxvgoNRvq1a+BXOts\"))\n let encoder = JSONEncoder()\n encoder.keyEncodingStrategy = .convertToSnakeCase\n encoder.dateEncodingStrategy = .iso8601\n \n let decoder = JSONDecoder()\n decoder.keyDecodingStrategy = .convertFromSnakeCase\n decoder.dateDecodingStrategy = .iso8601\n\n ContentConfiguration.global.use(encoder: encoder, for: .json)\n ContentConfiguration.global.use(decoder: decoder, for: .json)\n \n// app.jwt.signers.use(.hs256(key: Environment.get(ENV.jwtSecret.key) ?? ENV.jwtSecret.dev_default))\n\n try app.databases.use(.mongo(connectionString:Environment.get(ENV.databaseURL.key) ?? ENV.databaseURL.dev_default),\n as: .mongo)\n \n app_migrations.forEach { app.migrations.add($0) }\n \n try app.autoMigrate().wait()\n \n app.views.use(.leaf)\n// app.middleware.use(DBUser.authenticator())\n// app.middleware.use(Token.authenticator())\n\n \n app.middleware.use(ErrorMiddleware.default(environment: app.environment))\n app.passwords.use(.bcrypt)\n\n // Define your CORS configuration\n let corsConfiguration = CORSMiddleware.Configuration(\n allowedOrigin: .custom(\"http://localhost:3000\"), // Explicitly allow your React frontend\n allowedMethods: [.GET, .POST, .PUT, .OPTIONS, .DELETE, .PATCH], // Specify allowed methods\n allowedHeaders: [.authorization, .contentType, .accept, .origin, .xRequestedWith], // Specify allowed headers\n allowCredentials: true, // Whether to allow cookies/cross-origin requests\n exposedHeaders: [.authorization, .contentType] // Optional: Specify headers that browsers are allowed to access\n )\n\n // Create the CORS middleware with the configuration\n let corsMiddleware = CORSMiddleware(configuration: corsConfiguration)\n\n // Use the CORS middleware in your application\n app.middleware.use(corsMiddleware, at: .beginning) // Ensure it's the first middleware to run\n\n // register routes\n try routes(app)\n}\n"}, "f57f05e6a70df4aafeee895dd0512a943699bc52": {"t": 1785757737.5033298, "n": 2116, "h": "2b946b50cfd912c9", "c": "//\n//\n// Copyright © 2023.\n// Alon Yakobichvili\n// All rights reserved.\n//\n\nimport Fluent\nimport FluentMongoDriver\nimport Leaf\nimport Vapor\n//import JWT\n\nextension String {\n var bytes: [UInt8] { .init(self.utf8) }\n}\n// configures your application\npublic func configure(_ app: Application) throws {\n // uncomment to serve files from /Public folder\n // app.middleware.use(FileMiddleware(publicDirectory: app.directory.publicDirectory))\n \n // app.jwt.signers.use(.hs256(key: \"3Cz30pJzxbqYvLjXqTJjU8VpU5bxvgoNRvq1a+BXOts\"))\n let encoder = JSONEncoder()\n encoder.keyEncodingStrategy = .convertToSnakeCase\n encoder.dateEncodingStrategy = .iso8601\n \n let decoder = JSONDecoder()\n decoder.keyDecodingStrategy = .convertFromSnakeCase\n decoder.dateDecodingStrategy = .iso8601\n\n ContentConfiguration.global.use(encoder: encoder, for: .json)\n ContentConfiguration.global.use(decoder: decoder, for: .json)\n \n// app.jwt.signers.use(.hs256(key: Environment.get(ENV.jwtSecret.key) ?? ENV.jwtSecret.dev_default))\n\n try app.databases.use(.mongo(connectionString:Environment.get(ENV.databaseURL.key) ?? ENV.databaseURL.dev_default),\n as: .mongo)\n \n app_migrations.forEach { app.migrations.add($0) }\n \n try app.autoMigrate().wait()\n \n app.views.use(.leaf)\n// app.middleware.use(DBUser.authenticator())\n// app.middleware.use(Token.authenticator())\n\n \n app.middleware.use(ErrorMiddleware.default(environment: app.environment))\n app.passwords.use(.bcrypt)\n\n let corsConfiguration = CORSMiddleware.Configuration(\n allowedOrigin: .originBased, // or use .custom(\"http://localhost:3000\") to allow your frontend specifically\n allowedMethods: [.GET, .POST, .PUT, .OPTIONS, .DELETE, .PATCH], // Add methods as per your requirement\n allowedHeaders: [.authorization, .contentType, .accept, .origin, .xRequestedWith],\n allowCredentials: true\n )\n let corsMiddleware = CORSMiddleware(configuration: corsConfiguration)\n\n app.middleware.use(corsMiddleware)\n\n // register routes\n try routes(app)\n}\n"}, "db1c9b8988287af085524ca4390d30620d34ab2a": {"t": 1785757738.9315832, "n": 1583, "h": "d24d871364e11401", "c": "//\n//\n// Copyright © 2023.\n// Alon Yakobichvili\n// All rights reserved.\n//\n\nimport Fluent\nimport FluentMongoDriver\nimport Leaf\nimport Vapor\n//import JWT\n\nextension String {\n var bytes: [UInt8] { .init(self.utf8) }\n}\n// configures your application\npublic func configure(_ app: Application) throws {\n // uncomment to serve files from /Public folder\n // app.middleware.use(FileMiddleware(publicDirectory: app.directory.publicDirectory))\n \n // app.jwt.signers.use(.hs256(key: \"3Cz30pJzxbqYvLjXqTJjU8VpU5bxvgoNRvq1a+BXOts\"))\n let encoder = JSONEncoder()\n encoder.keyEncodingStrategy = .convertToSnakeCase\n encoder.dateEncodingStrategy = .iso8601\n \n let decoder = JSONDecoder()\n decoder.keyDecodingStrategy = .convertFromSnakeCase\n decoder.dateDecodingStrategy = .iso8601\n\n ContentConfiguration.global.use(encoder: encoder, for: .json)\n ContentConfiguration.global.use(decoder: decoder, for: .json)\n \n// app.jwt.signers.use(.hs256(key: Environment.get(ENV.jwtSecret.key) ?? ENV.jwtSecret.dev_default))\n\n try app.databases.use(.mongo(connectionString:Environment.get(ENV.databaseURL.key) ?? ENV.databaseURL.dev_default),\n as: .mongo)\n \n app_migrations.forEach { app.migrations.add($0) }\n \n try app.autoMigrate().wait()\n \n app.views.use(.leaf)\n// app.middleware.use(DBUser.authenticator())\n// app.middleware.use(Token.authenticator())\n\n app.middleware.use(ErrorMiddleware.default(environment: app.environment))\n app.passwords.use(.bcrypt)\n\n // register routes\n try routes(app)\n}\n"}, "0abae2ea0b9d4262ff64fc91075bec78711f7442": {"t": 1785757740.3735414, "n": 611, "h": "a0ec5d3be9cbfe27", "c": "import NIOSSL\nimport Fluent\nimport FluentMongoDriver\nimport Leaf\nimport Vapor\n\n// configures your application\npublic func configure(_ app: Application) async throws {\n // uncomment to serve files from /Public folder\n // app.middleware.use(FileMiddleware(publicDirectory: app.directory.publicDirectory))\n\n try app.databases.use(DatabaseConfigurationFactory.mongo(\n connectionString: Environment.get(\"DATABASE_URL\") ?? \"mongodb://localhost:27017/vapor_database\"\n ), as: .mongo)\n\n app.migrations.add(CreateTodo())\n\n app.views.use(.leaf)\n\n \n\n // register routes\n try routes(app)\n}\n"}}}} |