bits n bobs

This commit is contained in:
tsmethurst 2021-03-01 15:41:43 +01:00
parent bffbdeb534
commit 9ffbb353d0
9 changed files with 148 additions and 128 deletions

3
.gitignore vendored
View file

@ -1,2 +1,5 @@
# exclude the compiled binary
/server
# exclude built documentation, since readthedocs will build it for us anyway
/docs/_build

View file

@ -19,7 +19,7 @@
package main
import (
"github.com/gotosocial/gotosocial/internal/api"
"github.com/gotosocial/gotosocial/internal/client"
)
func main() {

20
internal/ap/api.go Normal file
View file

@ -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 <http://www.gnu.org/licenses/>.
*/
// Package ap provides ActivityPub/federation functionality for GoToSocial
package ap

View file

@ -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 <http://www.gnu.org/licenses/>.
*/
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 {
}

View file

@ -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 <http://www.gnu.org/licenses/>.
*/
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",
})
}

View file

@ -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 <http://www.gnu.org/licenses/>.
*/
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()
}

28
internal/client/api.go Normal file
View file

@ -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 <http://www.gnu.org/licenses/>.
*/
// 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 {
}

View file

@ -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 <http://www.gnu.org/licenses/>.
*/
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",
})
}

52
internal/client/router.go Normal file
View file

@ -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 <http://www.gnu.org/licenses/>.
*/
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()
}