From 9ffbb353d0fda6a2aba9e67d56ac5ead12ce9047 Mon Sep 17 00:00:00 2001 From: tsmethurst Date: Mon, 1 Mar 2021 15:41:43 +0100 Subject: [PATCH] bits n bobs --- .gitignore | 5 ++- cmd/server/main.go | 26 +++++++-------- internal/ap/api.go | 20 ++++++++++++ internal/api/api.go | 29 ----------------- internal/api/route_statuses.go | 31 ------------------ internal/api/router.go | 54 ------------------------------- internal/client/api.go | 28 ++++++++++++++++ internal/client/route_statuses.go | 31 ++++++++++++++++++ internal/client/router.go | 52 +++++++++++++++++++++++++++++ 9 files changed, 148 insertions(+), 128 deletions(-) create mode 100644 internal/ap/api.go delete mode 100644 internal/api/api.go delete mode 100644 internal/api/route_statuses.go delete mode 100644 internal/api/router.go create mode 100644 internal/client/api.go create mode 100644 internal/client/route_statuses.go create mode 100644 internal/client/router.go diff --git a/.gitignore b/.gitignore index 13b5d5d..32f8a18 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,5 @@ # exclude the compiled binary -/server \ No newline at end of file +/server + +# exclude built documentation, since readthedocs will build it for us anyway +/docs/_build diff --git a/cmd/server/main.go b/cmd/server/main.go index 1d9dba3..622ae94 100644 --- a/cmd/server/main.go +++ b/cmd/server/main.go @@ -1,25 +1,25 @@ /* - GoToSocial - Copyright (C) 2021 GoToSocial Authors admin@gotosocial.org + GoToSocial + Copyright (C) 2021 GoToSocial Authors admin@gotosocial.org - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see . + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . */ package main import ( - "github.com/gotosocial/gotosocial/internal/api" + "github.com/gotosocial/gotosocial/internal/client" ) func main() { diff --git a/internal/ap/api.go b/internal/ap/api.go new file mode 100644 index 0000000..7e56b54 --- /dev/null +++ b/internal/ap/api.go @@ -0,0 +1,20 @@ +/* + GoToSocial + Copyright (C) 2021 GoToSocial Authors admin@gotosocial.org + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +// Package ap provides ActivityPub/federation functionality for GoToSocial +package ap diff --git a/internal/api/api.go b/internal/api/api.go deleted file mode 100644 index 67757a7..0000000 --- a/internal/api/api.go +++ /dev/null @@ -1,29 +0,0 @@ -/* - GoToSocial - Copyright (C) 2021 GoToSocial Authors admin@gotosocial.org - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see . -*/ - -package api - -// API is the API exposed to the outside world for access by front-ends; this is distinct from the federation API -type API interface { - -} - -// api implements Api interface -type api struct { - -} diff --git a/internal/api/route_statuses.go b/internal/api/route_statuses.go deleted file mode 100644 index b6bbe58..0000000 --- a/internal/api/route_statuses.go +++ /dev/null @@ -1,31 +0,0 @@ -/* - GoToSocial - Copyright (C) 2021 GoToSocial Authors admin@gotosocial.org - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see . -*/ - -package api - -import ( - "net/http" - - "github.com/gin-gonic/gin" -) - -func statusGet(c *gin.Context) { - c.HTML(http.StatusOK, "index.tmpl", gin.H{ - "title": "Posts", - }) -} diff --git a/internal/api/router.go b/internal/api/router.go deleted file mode 100644 index 3a44c81..0000000 --- a/internal/api/router.go +++ /dev/null @@ -1,54 +0,0 @@ -/* - GoToSocial - Copyright (C) 2021 GoToSocial Authors admin@gotosocial.org - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see . -*/ - -package api - -import "github.com/gin-gonic/gin" - -// Router provides the http routes used by the API -type Router interface { - Route() -} - -// NewRouter returns a new router -func NewRouter() Router { - return &router{} -} - -// router implements the router interface -type router struct { - -} - -func (r *router) Route() { - ginRouter := gin.Default() - ginRouter.LoadHTMLGlob("web/template/*") - - apiGroup := ginRouter.Group("/api") - { - v1 := apiGroup.Group("/v1") - { - statusesGroup := v1.Group("/statuses") - { - statusesGroup.GET(":id", statusGet) - } - - } - } - ginRouter.Run() -} diff --git a/internal/client/api.go b/internal/client/api.go new file mode 100644 index 0000000..4e6bad8 --- /dev/null +++ b/internal/client/api.go @@ -0,0 +1,28 @@ +/* + GoToSocial + Copyright (C) 2021 GoToSocial Authors admin@gotosocial.org + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +// Package client AAAAAAAAAAAAAAA +package client + +// API is the client API exposed to the outside world for access by front-ends; this is distinct from the federation API +type API interface { +} + +// api implements Api interface +type api struct { +} diff --git a/internal/client/route_statuses.go b/internal/client/route_statuses.go new file mode 100644 index 0000000..d17a81d --- /dev/null +++ b/internal/client/route_statuses.go @@ -0,0 +1,31 @@ +/* + GoToSocial + Copyright (C) 2021 GoToSocial Authors admin@gotosocial.org + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +package client + +import ( + "net/http" + + "github.com/gin-gonic/gin" +) + +func statusGet(c *gin.Context) { + c.HTML(http.StatusOK, "index.tmpl", gin.H{ + "title": "Posts", + }) +} diff --git a/internal/client/router.go b/internal/client/router.go new file mode 100644 index 0000000..a3353df --- /dev/null +++ b/internal/client/router.go @@ -0,0 +1,52 @@ +/* + GoToSocial + Copyright (C) 2021 GoToSocial Authors admin@gotosocial.org + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +package client + +import "github.com/gin-gonic/gin" + +// Router provides the http routes used by the API +type Router interface { + Route() +} + +// NewRouter returns a new router +func NewRouter() Router { + return &router{} +} + +// router implements the router interface +type router struct { +} + +func (r *router) Route() { + ginRouter := gin.Default() + ginRouter.LoadHTMLGlob("web/template/*") + + apiGroup := ginRouter.Group("/api") + { + v1 := apiGroup.Group("/v1", { + statusesGroup := v1.Group("/statuses") + { + statusesGroup.GET(":id", statusGet) + } + + }) + } + ginRouter.Run() +}