package groups import ( "fmt" "git.macaw.me/inhosin/subhub/activitypub" "git.macaw.me/inhosin/subhub/data" "git.macaw.me/inhosin/subhub/data/models" "git.macaw.me/inhosin/subhub/handlers" "github.com/gin-gonic/gin" "net/http" ) // Get returns a Group // // Expects a `{name}` url variable // in the route: `/api/group/:name` func Get(c *gin.Context) { name := c.Param("name") if name == "" { c.String(http.StatusBadRequest, "Bad request! No name in URL") return } group, err := models.GetGroup(data.GetDB(), name) if err != nil { c.String(http.StatusInternalServerError, err.Error()) return } if group == nil { c.String(http.StatusNotFound, fmt.Sprintf("%s does not exits on server", name)) return } url := handlers.GetFullHostName() + "/activity/group/" + group.Slug actor := activitypub.NewPerson(url) actor.PreferredUsername = group.Name actor.Name = group.Name actor.Summary = group.Note c.JSON(http.StatusOK, actor) }