From 6e52688622b92d7b002c2fd6b3a8a91b19eca996 Mon Sep 17 00:00:00 2001 From: "Daniel J. Summers" Date: Sat, 25 Sep 2021 11:32:54 -0400 Subject: [PATCH] Add API timeout / Fix .NET 6 conversion (#32) * API requests to Mastodon instances now time out after 30 seconds (inspired by #29) * Projects now target .NET 6 (#31) * Minor repo reorg to support single-file deployment (#31) --- .gitignore | 3 --- src/JobsJobsJobs.sln | 4 ++-- src/JobsJobsJobs/App/package.json | 6 +++--- src/JobsJobsJobs/App/vue.config.js | 2 +- .../Domain/{Domain.fsproj => JobsJobsJobs.Domain.fsproj} | 2 +- src/JobsJobsJobs/{Api => Server}/.gitignore | 0 src/JobsJobsJobs/{Api => Server}/App.fs | 0 src/JobsJobsJobs/{Api => Server}/Auth.fs | 5 ++++- src/JobsJobsJobs/{Api => Server}/Data.fs | 0 src/JobsJobsJobs/{Api => Server}/Handlers.fs | 0 .../{Api/Api.fsproj => Server/JobsJobsJobs.Server.fsproj} | 4 ++-- src/JobsJobsJobs/{Api => Server}/appsettings.json | 0 12 files changed, 13 insertions(+), 13 deletions(-) rename src/JobsJobsJobs/Domain/{Domain.fsproj => JobsJobsJobs.Domain.fsproj} (89%) rename src/JobsJobsJobs/{Api => Server}/.gitignore (100%) rename src/JobsJobsJobs/{Api => Server}/App.fs (100%) rename src/JobsJobsJobs/{Api => Server}/Auth.fs (97%) rename src/JobsJobsJobs/{Api => Server}/Data.fs (100%) rename src/JobsJobsJobs/{Api => Server}/Handlers.fs (100%) rename src/JobsJobsJobs/{Api/Api.fsproj => Server/JobsJobsJobs.Server.fsproj} (86%) rename src/JobsJobsJobs/{Api => Server}/appsettings.json (100%) diff --git a/.gitignore b/.gitignore index 2980d57..73822bd 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,3 @@ src/**/bin src/**/obj src/**/appsettings.*.json src/.vs - -## This stores history of every deployment -src/JobsJobsJobs/Server/Properties/PublishProfiles/FolderProfile.pubxml.user diff --git a/src/JobsJobsJobs.sln b/src/JobsJobsJobs.sln index 461c026..b1398c3 100644 --- a/src/JobsJobsJobs.sln +++ b/src/JobsJobsJobs.sln @@ -13,9 +13,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "JobsJobsJobs", "JobsJobsJobs", "{FA833B24-B8F6-4CE6-A044-99257EAC02FF}" EndProject -Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Domain", "JobsJobsJobs\Domain\Domain.fsproj", "{C81278DA-DA97-4E55-AB39-4B88565B615D}" +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Domain", "JobsJobsJobs\Domain\JobsJobsJobs.Domain.fsproj", "{C81278DA-DA97-4E55-AB39-4B88565B615D}" EndProject -Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Api", "JobsJobsJobs\Api\Api.fsproj", "{8F5A3D1E-562B-4F27-9787-6CB14B35E69E}" +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Api", "JobsJobsJobs\Server\JobsJobsJobs.Server.fsproj", "{8F5A3D1E-562B-4F27-9787-6CB14B35E69E}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/src/JobsJobsJobs/App/package.json b/src/JobsJobsJobs/App/package.json index 549b379..160df92 100644 --- a/src/JobsJobsJobs/App/package.json +++ b/src/JobsJobsJobs/App/package.json @@ -1,13 +1,13 @@ { "name": "jobs-jobs-jobs", - "version": "2.2.0", + "version": "2.2.1", "private": true, "scripts": { "serve": "vue-cli-service serve", "build": "vue-cli-service build", "lint": "vue-cli-service lint", - "apiserve": "vue-cli-service build && cd ../Api && dotnet run -c Debug", - "publish": "vue-cli-service build --modern && cd ../Api && dotnet publish -c Release -r linux-x64 --self-contained false" + "apiserve": "vue-cli-service build && cd ../Server && dotnet run -c Debug", + "publish": "vue-cli-service build --modern && cd ../Server && dotnet publish -c Release -r linux-x64 -p:PublishSingleFile=true --self-contained false" }, "dependencies": { "@mdi/js": "^5.9.55", diff --git a/src/JobsJobsJobs/App/vue.config.js b/src/JobsJobsJobs/App/vue.config.js index b80816b..134bf31 100644 --- a/src/JobsJobsJobs/App/vue.config.js +++ b/src/JobsJobsJobs/App/vue.config.js @@ -2,7 +2,7 @@ module.exports = { transpileDependencies: [ 'vuetify' ], - outputDir: '../Api/wwwroot', + outputDir: '../Server/wwwroot', configureWebpack: { module: { rules: [{ diff --git a/src/JobsJobsJobs/Domain/Domain.fsproj b/src/JobsJobsJobs/Domain/JobsJobsJobs.Domain.fsproj similarity index 89% rename from src/JobsJobsJobs/Domain/Domain.fsproj rename to src/JobsJobsJobs/Domain/JobsJobsJobs.Domain.fsproj index dbac946..caeb399 100644 --- a/src/JobsJobsJobs/Domain/Domain.fsproj +++ b/src/JobsJobsJobs/Domain/JobsJobsJobs.Domain.fsproj @@ -1,7 +1,7 @@  - net5.0 + net6.0 true 3390;$(WarnOn) diff --git a/src/JobsJobsJobs/Api/.gitignore b/src/JobsJobsJobs/Server/.gitignore similarity index 100% rename from src/JobsJobsJobs/Api/.gitignore rename to src/JobsJobsJobs/Server/.gitignore diff --git a/src/JobsJobsJobs/Api/App.fs b/src/JobsJobsJobs/Server/App.fs similarity index 100% rename from src/JobsJobsJobs/Api/App.fs rename to src/JobsJobsJobs/Server/App.fs diff --git a/src/JobsJobsJobs/Api/Auth.fs b/src/JobsJobsJobs/Server/Auth.fs similarity index 97% rename from src/JobsJobsJobs/Api/Auth.fs rename to src/JobsJobsJobs/Server/Auth.fs index b430ff3..4ce6218 100644 --- a/src/JobsJobsJobs/Api/Auth.fs +++ b/src/JobsJobsJobs/Server/Auth.fs @@ -29,7 +29,10 @@ open System.Text.Json open JobsJobsJobs.Domain.SharedTypes /// HTTP client to use to communication with Mastodon -let private http = new HttpClient() +let private http = + let h = new HttpClient () + h.Timeout <- TimeSpan.FromSeconds 30. + h /// Verify the authorization code with Mastodon and get the user's profile let verifyWithMastodon (authCode : string) (inst : MastodonInstance) rtnHost (log : ILogger) = task { diff --git a/src/JobsJobsJobs/Api/Data.fs b/src/JobsJobsJobs/Server/Data.fs similarity index 100% rename from src/JobsJobsJobs/Api/Data.fs rename to src/JobsJobsJobs/Server/Data.fs diff --git a/src/JobsJobsJobs/Api/Handlers.fs b/src/JobsJobsJobs/Server/Handlers.fs similarity index 100% rename from src/JobsJobsJobs/Api/Handlers.fs rename to src/JobsJobsJobs/Server/Handlers.fs diff --git a/src/JobsJobsJobs/Api/Api.fsproj b/src/JobsJobsJobs/Server/JobsJobsJobs.Server.fsproj similarity index 86% rename from src/JobsJobsJobs/Api/Api.fsproj rename to src/JobsJobsJobs/Server/JobsJobsJobs.Server.fsproj index c9f6dd6..422f8b4 100644 --- a/src/JobsJobsJobs/Api/Api.fsproj +++ b/src/JobsJobsJobs/Server/JobsJobsJobs.Server.fsproj @@ -2,7 +2,7 @@ Exe - net5.0 + net6.0 3390;$(WarnOn) @@ -14,7 +14,7 @@ - + diff --git a/src/JobsJobsJobs/Api/appsettings.json b/src/JobsJobsJobs/Server/appsettings.json similarity index 100% rename from src/JobsJobsJobs/Api/appsettings.json rename to src/JobsJobsJobs/Server/appsettings.json