-
-
Notifications
You must be signed in to change notification settings - Fork 316
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* tidy up timelines a bit + stub out some endpoints * who's faved and who's boosted, reblog notifs * linting * Update progress with new endpoints
- Loading branch information
1 parent
3d77f81
commit 6ac6f8d
Showing
23 changed files
with
692 additions
and
15 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
/* | ||
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 emoji | ||
|
||
import ( | ||
"net/http" | ||
|
||
"github.com/sirupsen/logrus" | ||
"github.com/superseriousbusiness/gotosocial/internal/api" | ||
"github.com/superseriousbusiness/gotosocial/internal/config" | ||
"github.com/superseriousbusiness/gotosocial/internal/processing" | ||
"github.com/superseriousbusiness/gotosocial/internal/router" | ||
) | ||
|
||
const ( | ||
// BasePath is the base path for serving the emoji API | ||
BasePath = "/api/v1/custom_emojis" | ||
) | ||
|
||
// Module implements the ClientAPIModule interface for everything related to emoji | ||
type Module struct { | ||
config *config.Config | ||
processor processing.Processor | ||
log *logrus.Logger | ||
} | ||
|
||
// New returns a new emoji module | ||
func New(config *config.Config, processor processing.Processor, log *logrus.Logger) api.ClientModule { | ||
return &Module{ | ||
config: config, | ||
processor: processor, | ||
log: log, | ||
} | ||
} | ||
|
||
// Route attaches all routes from this module to the given router | ||
func (m *Module) Route(r router.Router) error { | ||
r.AttachHandler(http.MethodGet, BasePath, m.EmojisGETHandler) | ||
return nil | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
package emoji | ||
|
||
import "github.com/gin-gonic/gin" | ||
|
||
// EmojisGETHandler returns a list of custom emojis enabled on the instance | ||
func (m *Module) EmojisGETHandler(c *gin.Context) { | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
/* | ||
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 filter | ||
|
||
import ( | ||
"net/http" | ||
|
||
"github.com/sirupsen/logrus" | ||
"github.com/superseriousbusiness/gotosocial/internal/api" | ||
"github.com/superseriousbusiness/gotosocial/internal/config" | ||
"github.com/superseriousbusiness/gotosocial/internal/processing" | ||
"github.com/superseriousbusiness/gotosocial/internal/router" | ||
) | ||
|
||
const ( | ||
// BasePath is the base path for serving the filter API | ||
BasePath = "/api/v1/filters" | ||
) | ||
|
||
// Module implements the ClientAPIModule interface for every related to filters | ||
type Module struct { | ||
config *config.Config | ||
processor processing.Processor | ||
log *logrus.Logger | ||
} | ||
|
||
// New returns a new filter module | ||
func New(config *config.Config, processor processing.Processor, log *logrus.Logger) api.ClientModule { | ||
return &Module{ | ||
config: config, | ||
processor: processor, | ||
log: log, | ||
} | ||
} | ||
|
||
// Route attaches all routes from this module to the given router | ||
func (m *Module) Route(r router.Router) error { | ||
r.AttachHandler(http.MethodGet, BasePath, m.FiltersGETHandler) | ||
return nil | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
package filter | ||
|
||
import "github.com/gin-gonic/gin" | ||
|
||
// FiltersGETHandler returns a list of filters set by/for the authed account | ||
func (m *Module) FiltersGETHandler(c *gin.Context) { | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
/* | ||
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 list | ||
|
||
import ( | ||
"net/http" | ||
|
||
"github.com/sirupsen/logrus" | ||
"github.com/superseriousbusiness/gotosocial/internal/api" | ||
"github.com/superseriousbusiness/gotosocial/internal/config" | ||
"github.com/superseriousbusiness/gotosocial/internal/processing" | ||
"github.com/superseriousbusiness/gotosocial/internal/router" | ||
) | ||
|
||
const ( | ||
// BasePath is the base path for serving the lists API | ||
BasePath = "/api/v1/lists" | ||
) | ||
|
||
// Module implements the ClientAPIModule interface for everything related to lists | ||
type Module struct { | ||
config *config.Config | ||
processor processing.Processor | ||
log *logrus.Logger | ||
} | ||
|
||
// New returns a new list module | ||
func New(config *config.Config, processor processing.Processor, log *logrus.Logger) api.ClientModule { | ||
return &Module{ | ||
config: config, | ||
processor: processor, | ||
log: log, | ||
} | ||
} | ||
|
||
// Route attaches all routes from this module to the given router | ||
func (m *Module) Route(r router.Router) error { | ||
r.AttachHandler(http.MethodGet, BasePath, m.ListsGETHandler) | ||
return nil | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
package list | ||
|
||
import "github.com/gin-gonic/gin" | ||
|
||
// ListsGETHandler returns a list of lists created by/for the authed account | ||
func (m *Module) ListsGETHandler(c *gin.Context) { | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
/* | ||
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 status | ||
|
||
import ( | ||
"net/http" | ||
|
||
"github.com/gin-gonic/gin" | ||
"github.com/sirupsen/logrus" | ||
"github.com/superseriousbusiness/gotosocial/internal/oauth" | ||
) | ||
|
||
// StatusBoostedByGETHandler is for serving a list of accounts that have boosted/reblogged a given status | ||
func (m *Module) StatusBoostedByGETHandler(c *gin.Context) { | ||
l := m.log.WithFields(logrus.Fields{ | ||
"func": "StatusBoostedByGETHandler", | ||
"request_uri": c.Request.RequestURI, | ||
"user_agent": c.Request.UserAgent(), | ||
"origin_ip": c.ClientIP(), | ||
}) | ||
l.Debugf("entering function") | ||
|
||
authed, err := oauth.Authed(c, true, true, true, true) // we don't really need an app here but we want everything else | ||
if err != nil { | ||
l.Errorf("error authing status boosted by request: %s", err) | ||
c.JSON(http.StatusBadRequest, gin.H{"error": "not authed"}) | ||
return | ||
} | ||
|
||
targetStatusID := c.Param(IDKey) | ||
if targetStatusID == "" { | ||
c.JSON(http.StatusBadRequest, gin.H{"error": "no status id provided"}) | ||
return | ||
} | ||
|
||
mastoAccounts, err := m.processor.StatusBoostedBy(authed, targetStatusID) | ||
if err != nil { | ||
l.Debugf("error processing status boosted by request: %s", err) | ||
c.JSON(http.StatusBadRequest, gin.H{"error": "bad request"}) | ||
return | ||
} | ||
|
||
c.JSON(http.StatusOK, mastoAccounts) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
/* | ||
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 status | ||
|
||
import ( | ||
"net/http" | ||
|
||
"github.com/gin-gonic/gin" | ||
"github.com/sirupsen/logrus" | ||
"github.com/superseriousbusiness/gotosocial/internal/oauth" | ||
) | ||
|
||
// StatusContextGETHandler returns the context around the given status ID. | ||
func (m *Module) StatusContextGETHandler(c *gin.Context) { | ||
l := m.log.WithFields(logrus.Fields{ | ||
"func": "StatusContextGETHandler", | ||
"request_uri": c.Request.RequestURI, | ||
"user_agent": c.Request.UserAgent(), | ||
"origin_ip": c.ClientIP(), | ||
}) | ||
l.Debugf("entering function") | ||
|
||
authed, err := oauth.Authed(c, true, true, true, true) | ||
if err != nil { | ||
l.Errorf("error authing status context request: %s", err) | ||
c.JSON(http.StatusBadRequest, gin.H{"error": "not authed"}) | ||
return | ||
} | ||
|
||
targetStatusID := c.Param(IDKey) | ||
if targetStatusID == "" { | ||
c.JSON(http.StatusBadRequest, gin.H{"error": "no status id provided"}) | ||
return | ||
} | ||
|
||
statusContext, errWithCode := m.processor.StatusGetContext(authed, targetStatusID) | ||
if errWithCode != nil { | ||
l.Debugf("error getting status context: %s", errWithCode.Error()) | ||
c.JSON(errWithCode.Code(), gin.H{"error": errWithCode.Safe()}) | ||
return | ||
} | ||
|
||
c.JSON(http.StatusOK, statusContext) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.