public void Configure()

in processing-pipelines/image-v2/filter/csharp/Startup.cs [34:89]


        public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILogger<Startup> logger)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            logger.LogInformation("Service is starting...");

            app.UseRouting();

            var eventReader = new CloudEventReader(logger);

            var configReader = new ConfigReader(logger);
            var projectId = configReader.Read("PROJECT_ID");
            var region = configReader.Read("REGION");
            var workflow = configReader.Read("WORKFLOW_NAME");
            var labelerUrl = configReader.Read("LABELER_URL");
            var resizerUrl = configReader.Read("RESIZER_URL");
            var watermarkerUrl = configReader.Read("WATERMARKER_URL");

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapPost("/", async context =>
                {
                    var (bucket, file) = await eventReader.ReadCloudStorageData(context);

                    var storageUrl = $"gs://{bucket}/{file}";
                    logger.LogInformation($"Storage url: {storageUrl}");

                    var safe = await IsPictureSafe(storageUrl);
                    logger.LogInformation($"Is the picture safe? {safe}");

                    if (!safe)
                    {
                        return;
                    }

                    var args = JsonConvert.SerializeObject(new {
                        bucket = bucket,
                        file = file,
                        urls = new {
                            LABELER_URL = labelerUrl,
                            RESIZER_URL = resizerUrl,
                            WATERMARKER_URL = watermarkerUrl}
                        }
                    );

                    logger.LogInformation($"Creating workflows execution with arg: {args}");

                    var response = await ExecuteWorkflow(projectId, region, workflow, args);

                    logger.LogInformation($"Created workflows execution: {response.Name}");
                });
            });
        }