diff --git a/.gitignore b/.gitignore index 32bcdf1..cf166ae 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -/test \ No newline at end of file +/test +/gen \ No newline at end of file diff --git a/README.md b/README.md index 432b01d..27ad7c8 100644 --- a/README.md +++ b/README.md @@ -9,23 +9,23 @@ Example: ```go ctx := context.Background() -c, err := lemmy.New("https://lemmy.ml") +c, err := lemmy.New("https://lemmygrad.ml") if err != nil { - panic(err) + panic(err) } -err = c.Login(ctx, types.Login{ - UsernameOrEmail: "email@example.com", - Password: `TestPwd`, +err = c.ClientLogin(ctx, types.Login{ + UsernameOrEmail: "user@example.com", + Password: `TestPwd`, }) if err != nil { - panic(err) + panic(err) } _, err = c.SaveUserSettings(ctx, types.SaveUserSettings{ - BotAccount: types.NewOptional(true), + BotAccount: types.NewOptional(true), }) if err != nil { - panic(err) + panic(err) } ``` \ No newline at end of file diff --git a/admin.go b/admin.go deleted file mode 100644 index 9047fdf..0000000 --- a/admin.go +++ /dev/null @@ -1,128 +0,0 @@ -package lemmy - -import ( - "context" - "net/http" - - "go.arsenm.dev/go-lemmy/types" -) - -func (c *Client) AddAdmin(ctx context.Context, d types.AddAdmin) (*types.AddAdminResponse, error) { - ar := &types.AddAdminResponse{} - res, err := c.req(ctx, http.MethodPost, "/admin/add", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) ApproveRegistrationApplication(ctx context.Context, d types.ApproveRegistrationApplication) (*types.RegistrationApplicationResponse, error) { - ar := &types.RegistrationApplicationResponse{} - res, err := c.req(ctx, http.MethodPut, "/admin/registration_application/approve", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) UnreadRegistrationApplicationCount(ctx context.Context, d types.GetUnreadRegistrationApplicationCount) (*types.GetUnreadRegistrationApplicationCountResponse, error) { - ar := &types.GetUnreadRegistrationApplicationCountResponse{} - res, err := c.getReq(ctx, http.MethodGet, "/admin/registration_application/count", nil, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) RegistrationApplications(ctx context.Context, d types.ListRegistrationApplications) (*types.ListRegistrationApplicationsResponse, error) { - ar := &types.ListRegistrationApplicationsResponse{} - res, err := c.getReq(ctx, http.MethodGet, "/admin/registration_application/list", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) PurgeComment(ctx context.Context, d types.PurgeComment) (*types.PurgeItemResponse, error) { - ar := &types.PurgeItemResponse{} - res, err := c.req(ctx, http.MethodPost, "/admin/purge/comment", nil, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) PurgeCommunity(ctx context.Context, d types.PurgeCommunity) (*types.PurgeItemResponse, error) { - ar := &types.PurgeItemResponse{} - res, err := c.req(ctx, http.MethodPost, "/admin/purge/community", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) PurgePerson(ctx context.Context, d types.PurgePerson) (*types.PurgeItemResponse, error) { - ar := &types.PurgeItemResponse{} - res, err := c.req(ctx, http.MethodPost, "/admin/purge/person", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) PurgePost(ctx context.Context, d types.PurgePost) (*types.PurgeItemResponse, error) { - ar := &types.PurgeItemResponse{} - res, err := c.req(ctx, http.MethodPost, "/admin/purge/post", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} diff --git a/cmd/gen/generator/routes.go b/cmd/gen/generator/routes.go new file mode 100644 index 0000000..fb1ba88 --- /dev/null +++ b/cmd/gen/generator/routes.go @@ -0,0 +1,61 @@ +package generator + +import ( + "io" + "strings" + + "github.com/dave/jennifer/jen" + "go.arsenm.dev/go-lemmy/cmd/gen/parser" +) + +type RoutesGenerator struct { + w io.Writer + PkgName string +} + +func NewRoutes(w io.Writer, pkgName string) *RoutesGenerator { + return &RoutesGenerator{w, pkgName} +} + +func (r *RoutesGenerator) Generate(routes []parser.Route, impls map[string]string) error { + f := jen.NewFile(r.PkgName) + for _, r := range routes { + resStruct := impls[r.Struct] + + f.Func().Params( + jen.Id("c").Id("*Client"), + ).Id(strings.TrimPrefix(r.Struct, "Get")).Params( + jen.Id("ctx").Qual("context", "Context"), + jen.Id("data").Qual("go.arsenm.dev/go-lemmy/types", r.Struct), + ).Params( + jen.Op("*").Qual("go.arsenm.dev/go-lemmy/types", resStruct), + jen.Error(), + ).BlockFunc(func(g *jen.Group) { + g.Id("resData").Op(":=").Op("&").Qual("go.arsenm.dev/go-lemmy/types", resStruct).Block() + + var funcName string + switch r.Method { + case "GET": + funcName = "getReq" + default: + funcName = "req" + } + + g.List(jen.Id("res"), jen.Err()).Op(":=").Id("c").Dot(funcName).Params( + jen.Id("ctx"), jen.Lit(r.Method), jen.Lit(r.Path), jen.Id("data"), jen.Op("&").Id("resData"), + ) + g.If(jen.Err().Op("!=").Nil()).Block( + jen.Return(jen.Nil(), jen.Err()), + ) + + g.Err().Op("=").Id("resError").Params(jen.Id("res"), jen.Id("resData").Dot("LemmyResponse")) + g.If(jen.Err().Op("!=").Nil()).Block( + jen.Return(jen.Nil(), jen.Err()), + ) + + g.Return(jen.Id("resData"), jen.Nil()) + }) + } + + return f.Render(r.w) +} diff --git a/cmd/gen/generator/struct.go b/cmd/gen/generator/struct.go new file mode 100644 index 0000000..7ca7f58 --- /dev/null +++ b/cmd/gen/generator/struct.go @@ -0,0 +1,57 @@ +package generator + +import ( + "io" + "strings" + + "go.arsenm.dev/go-lemmy/cmd/gen/parser" + "github.com/dave/jennifer/jen" +) + +type StructGenerator struct { + w io.Writer + PkgName string +} + +func NewStruct(w io.Writer, pkgName string) *StructGenerator { + return &StructGenerator{w, pkgName} +} + +func (s *StructGenerator) Generate(items []parser.Item) error { + f := jen.NewFile(s.PkgName) + for _, item := range items { + if item.Struct != nil { + st := item.Struct + f.Type().Id(st.Name).StructFunc(func(g *jen.Group) { + for _, field := range st.Fields { + var t jen.Code + if field.Type == "time.Time" { + t = jen.Qual("time", "Time") + } else { + t = jen.Id(field.Type) + } + + g.Id(field.Name).Add(t).Tag(map[string]string{ + "json": field.OrigName + ",omitempty", + "url": field.OrigName + ",omitempty", + }) + } + + if strings.HasSuffix(st.Name, "Response") { + g.Id("LemmyResponse") + } + }) + } else if item.Enum != nil { + e := item.Enum + f.Type().Id(e.Name).String() + + f.Const().DefsFunc(func(g *jen.Group) { + for _, member := range e.Members { + g.Id(e.Name + string(member)).Op("=").Lit(string(member)) + } + }) + } + } + + return f.Render(s.w) +} diff --git a/cmd/gen/main.go b/cmd/gen/main.go new file mode 100644 index 0000000..5f96a40 --- /dev/null +++ b/cmd/gen/main.go @@ -0,0 +1,160 @@ +package main + +import ( + "flag" + "io/fs" + "os" + "path/filepath" + "strconv" + "strings" + + "go.arsenm.dev/go-lemmy/cmd/gen/generator" + "go.arsenm.dev/go-lemmy/cmd/gen/parser" +) + +var implDirs = [...]string{ + "crates/api_crud/src", + "crates/apub/src/api", + "crates/api/src", +} + +var structDirs = [...]string{ + "crates/api_common", + "crates/db_schema/src/source", + "crates/db_views_actor/src/structs.rs", + "crates/db_views/src/structs.rs", + "crates/db_views_moderator/src/structs.rs", + "crates/db_schema/src/aggregates/structs.rs", + "crates/db_schema/src/lib.rs", + "crates/websocket/src/lib.rs", +} + +const routesFile = "src/api_routes.rs" + +func main() { + lemmyDir := flag.String("lemmy-dir", "lemmy", "Path to Lemmy repository") + outDir := flag.String("out-dir", "out", "Directory to write output in") + flag.Parse() + + baseStructDir := filepath.Join(*outDir, "types") + sp := parser.NewStruct(nil) + sp.Skip = []string{"LemmyContext"} + for _, structDir := range structDirs { + dir := filepath.Join(*lemmyDir, structDir) + err := filepath.WalkDir(dir, func(path string, d fs.DirEntry, err error) error { + if err != nil { + return nil + } + + if d.IsDir() { + return nil + } + if filepath.Ext(path) != ".rs" { + return nil + } + + name := d.Name() + if name == "context.rs" || + name == "local_user_language.rs" || + name == "chat_server.rs" { + return nil + } + + fl, err := os.Open(path) + if err != nil { + return err + } + defer fl.Close() + + sp.Reset(fl) + fileStructs, err := sp.Parse() + if err != nil { + return err + } + + nameNoExt := strings.TrimSuffix(d.Name(), ".rs") + goFilePath := filepath.Join(baseStructDir, nameNoExt+".gen.go") + + i := 1 + _, err = os.Stat(goFilePath) + for err == nil { + goFilePath = filepath.Join(baseStructDir, nameNoExt+"."+strconv.Itoa(i)+".gen.go") + _, err = os.Stat(goFilePath) + i++ + } + + outFl, err := os.Create(goFilePath) + if err != nil { + return err + } + defer outFl.Close() + + return generator.NewStruct(outFl, "types").Generate(fileStructs) + }) + if err != nil { + panic(err) + } + } + + ip := parser.NewImpl(nil) + impls := map[string]string{} + for _, implDir := range implDirs { + dir := filepath.Join(*lemmyDir, implDir) + err := filepath.WalkDir(dir, func(path string, d fs.DirEntry, err error) error { + if err != nil { + return nil + } + + if d.IsDir() { + return nil + } + if filepath.Ext(path) != ".rs" { + return nil + } + + fl, err := os.Open(path) + if err != nil { + return err + } + defer fl.Close() + + ip.Reset(fl) + implMap, err := ip.Parse() + if err != nil { + return err + } + + for reqStruct, resStruct := range implMap { + impls[reqStruct] = resStruct + } + + return nil + }) + if err != nil { + panic(err) + } + } + + rf, err := os.Open(filepath.Join(*lemmyDir, routesFile)) + if err != nil { + panic(err) + } + defer rf.Close() + + rp := parser.NewRoutes(rf) + routes, err := rp.Parse() + if err != nil { + panic(err) + } + + orf, err := os.Create(filepath.Join(*outDir, "routes.gen.go")) + if err != nil { + panic(err) + } + defer orf.Close() + + err = generator.NewRoutes(orf, "lemmy").Generate(routes, impls) + if err != nil { + panic(err) + } +} diff --git a/cmd/gen/parser/impl.go b/cmd/gen/parser/impl.go new file mode 100644 index 0000000..f9f7352 --- /dev/null +++ b/cmd/gen/parser/impl.go @@ -0,0 +1,62 @@ +package parser + +import ( + "bufio" + "errors" + "io" + "regexp" +) + +var ( + implRegex = regexp.MustCompile(`impl Perform.* for (.+) {`) + respTypeRegex = regexp.MustCompile(`type Response = (.+);`) +) + +var ErrNoType = errors.New("type line not found") + +type ImplParser struct { + r *bufio.Reader +} + +func NewImpl(r io.Reader) *ImplParser { + return &ImplParser{ + r: bufio.NewReader(r), + } +} + +func (i *ImplParser) Parse() (map[string]string, error) { + out := map[string]string{} + for { + line, err := i.r.ReadString('\n') + if errors.Is(err, io.EOF) { + break + } else if err != nil { + return nil, err + } + + if implRegex.MatchString(line) { + im := implRegex.FindStringSubmatch(line) + + line, err := i.r.ReadString('\n') + if errors.Is(err, io.EOF) { + return nil, io.ErrUnexpectedEOF + } else if err != nil { + return nil, err + } + + if !respTypeRegex.MatchString(line) { + return nil, ErrNoType + } + + rtm := respTypeRegex.FindStringSubmatch(line) + + out[im[1]] = rtm[1] + } + } + + return out, nil +} + +func (i *ImplParser) Reset(r io.Reader) { + i.r.Reset(r) +} diff --git a/cmd/gen/parser/routes.go b/cmd/gen/parser/routes.go new file mode 100644 index 0000000..eb7c7d6 --- /dev/null +++ b/cmd/gen/parser/routes.go @@ -0,0 +1,121 @@ +package parser + +import ( + "bufio" + "errors" + "io" + "net/url" + "regexp" + "strings" +) + +var ( + scopeRegex = regexp.MustCompile(`web::(?:scope|resource)\("(.*)"\)\n`) + routeRegex = regexp.MustCompile(`\.route\(\n?\s*(?:"(.*)",[ \n])?\s*web::(.+)\(\)\.to\(route_.*::<(.+)>`) +) + +type Route struct { + Path string + Method string + Struct string +} + +type RoutesParser struct { + r *bufio.Reader +} + +func NewRoutes(r io.Reader) *RoutesParser { + return &RoutesParser{ + r: bufio.NewReader(r), + } +} + +func (r *RoutesParser) Parse() ([]Route, error) { + var out []Route + for { + line, err := r.r.ReadString('\n') + if errors.Is(err, io.EOF) { + break + } else if err != nil { + return nil, err + } + + if scopeRegex.MatchString(line) { + scopePath := scopeRegex.FindStringSubmatch(line)[1] + if scopePath == "/api/v3" { + continue + } + + routes, err := r.parseRoutes() + if err != nil { + return nil, err + } + + for i := range routes { + path, err := url.JoinPath(scopePath, routes[i].Path) + if err != nil { + return nil, err + } + routes[i].Path = path + } + + out = append(out, routes...) + } + } + return out, nil +} + +func (r *RoutesParser) parseRoutes() ([]Route, error) { + var out []Route + for { + line, err := r.r.ReadString('\n') + if errors.Is(err, io.EOF) { + if strings.TrimSpace(line)[:1] == ")" { + return out, nil + } else { + return nil, io.ErrUnexpectedEOF + } + } else if err != nil { + return nil, err + } + + if strings.TrimSpace(line) == ".route(" { + lines, err := r.readLines(3) + if err != nil { + return nil, err + } + line += lines + } + + if strings.TrimSpace(line)[:1] == ")" { + return out, nil + } else if strings.HasPrefix(line, "//") { + continue + } else if !routeRegex.MatchString(line) { + continue + } + + sm := routeRegex.FindStringSubmatch(line) + out = append(out, Route{ + Path: sm[1], + Method: strings.ToUpper(sm[2]), + Struct: sm[3], + }) + } +} + +func (r *RoutesParser) readLines(n int) (string, error) { + out := "" + for i := 0; i < n; i++ { + line, err := r.r.ReadString('\n') + if err != nil { + return "", err + } + out += line + } + return out, nil +} + +func (r *RoutesParser) Reset(rd io.Reader) { + r.r.Reset(rd) +} diff --git a/cmd/gen/parser/struct.go b/cmd/gen/parser/struct.go new file mode 100644 index 0000000..3845b1b --- /dev/null +++ b/cmd/gen/parser/struct.go @@ -0,0 +1,259 @@ +package parser + +import ( + "bufio" + "errors" + "io" + "regexp" + "strings" + + "golang.org/x/exp/slices" +) + +var ( + structRegex = regexp.MustCompile(`pub struct (.+) \{`) + fieldRegex = regexp.MustCompile(`(?U) {1,1}([^ ]+): (.+),`) + + enumRegex = regexp.MustCompile(`pub enum (.+) \{`) + memberRegex = regexp.MustCompile(` ([^ #]+),\n`) +) + +type Item struct { + Struct *Struct + Enum *Enum +} + +type Struct struct { + Name string + Fields []Field +} + +type Field struct { + OrigName string + Name string + Type string +} + +type Enum struct { + Name string + Members []Member +} + +type Member string + +type StructParser struct { + r *bufio.Reader + Skip []string + TransformName func(string) string + TransformType func(string) string +} + +func NewStruct(r io.Reader) *StructParser { + return &StructParser{ + r: bufio.NewReader(r), + TransformName: TransformNameGo, + TransformType: TransformTypeGo, + } +} + +func (s *StructParser) Parse() ([]Item, error) { + var out []Item + for { + line, err := s.r.ReadString('\n') + if errors.Is(err, io.EOF) { + break + } else if err != nil { + return nil, err + } + + if structRegex.MatchString(line) { + structName := structRegex.FindStringSubmatch(line)[1] + if slices.Contains(s.Skip, structName) { + continue + } + + // If the line ends with "}", this is a struct with no fields + if strings.HasSuffix(line, "}\n") { + out = append(out, Item{ + Struct: &Struct{ + Name: structRegex.FindStringSubmatch(line)[1], + }, + }) + continue + } + + fields, err := s.parseStructFields() + if err != nil { + return nil, err + } + + out = append(out, Item{ + Struct: &Struct{ + Name: structName, + Fields: fields, + }, + }) + } else if enumRegex.MatchString(line) { + enumName := enumRegex.FindStringSubmatch(line)[1] + if slices.Contains(s.Skip, enumName) { + continue + + } + members, err := s.parseEnumMemebers() + if err != nil { + return nil, err + } + + out = append(out, Item{ + Enum: &Enum{ + Name: enumName, + Members: members, + }, + }) + } + } + return out, nil +} + +func (s *StructParser) parseStructFields() ([]Field, error) { + var out []Field + for { + line, err := s.r.ReadString('\n') + if errors.Is(err, io.EOF) { + if strings.HasPrefix(line, "}") { + return out, nil + } else { + return nil, io.ErrUnexpectedEOF + } + } else if err != nil { + return nil, err + } + + if strings.HasPrefix(line, "}") { + return out, nil + } else if strings.HasPrefix(line, "//") { + continue + } else if !fieldRegex.MatchString(line) { + continue + } + + sm := fieldRegex.FindStringSubmatch(line) + if sm[1] == "Example" { + continue + } + + out = append(out, Field{ + OrigName: sm[1], + Name: s.TransformName(sm[1]), + Type: s.TransformType(sm[2]), + }) + } +} + +func (s *StructParser) parseEnumMemebers() ([]Member, error) { + var out []Member + for { + line, err := s.r.ReadString('\n') + if errors.Is(err, io.EOF) { + if strings.HasPrefix(line, "}") { + return out, nil + } else { + return nil, io.ErrUnexpectedEOF + } + } else if err != nil { + return nil, err + } + + if strings.HasPrefix(line, "}") { + return out, nil + } else if strings.HasPrefix(line, "//") { + continue + } else if !memberRegex.MatchString(line) { + continue + } + + sm := memberRegex.FindStringSubmatch(line) + + out = append(out, Member(sm[1])) + } +} + +// TransformTypeGo transforms Rust types to Go +// +// Example: TransformTypeGo("Option>") // returns "Optional[[]int64]" +func TransformTypeGo(t string) string { + prefix := "" + suffix := "" + + for strings.HasPrefix(t, "Option<") { + t = strings.TrimPrefix(strings.TrimSuffix(t, ">"), "Option<") + prefix += "Optional[" + suffix += "]" + } + + for strings.HasPrefix(t, "Vec<") { + t = strings.TrimPrefix(strings.TrimSuffix(t, ">"), "Vec<") + prefix += "[]" + } + + for strings.HasPrefix(t, "Sensitive<") { + t = strings.TrimPrefix(strings.TrimSuffix(t, ">"), "Sensitive<") + } + + if strings.HasSuffix(t, "Id") { + t = "int" + } + + switch t { + case "String", "Url", "DbUrl", "Ltree": + t = "string" + case "usize": + t = "uint" + case "i64": + t = "int64" + case "i32": + t = "int32" + case "i16": + t = "int16" + case "i8": + t = "int8" + case "chrono::NaiveDateTime": + return "time.Time" + case "Value": + return "any" + } + + return prefix + t + suffix +} + +// TransformNameGo transforms conventional Rust naming to +// conventional Go naming. +// +// Example: TransformNameGo("post_id") // returns "PostID" +func TransformNameGo(s string) string { + out := "" + + splitName := strings.Split(s, "_") + for _, segment := range splitName { + switch segment { + case "id": + out += "ID" + case "url": + out += "URL" + case "nsfw": + out += "NSFW" + default: + if len(segment) == 0 { + continue + } + + out += strings.ToUpper(segment[:1]) + segment[1:] + } + } + + return out +} + +func (s *StructParser) Reset(r io.Reader) { + s.r.Reset(r) +} diff --git a/cmd/gen/parser/struct_test.go b/cmd/gen/parser/struct_test.go new file mode 100644 index 0000000..de23411 --- /dev/null +++ b/cmd/gen/parser/struct_test.go @@ -0,0 +1,49 @@ +package parser + +import "testing" + +func TestTransformNameGo(t *testing.T) { + type testcase struct { + name string + expect string + } + + cases := []testcase{ + {"post_id", "PostID"}, + {"nsfw", "NSFW"}, + {"test_url", "TestURL"}, + {"some_complex_name_with_id_and_nsfw_and_url", "SomeComplexNameWithIDAndNSFWAndURL"}, + } + + for _, testcase := range cases { + t.Run(testcase.name, func(t *testing.T) { + got := TransformNameGo(testcase.name) + if got != testcase.expect { + t.Errorf("Expected %s, got %s", testcase.expect, got) + } + }) + } +} + +func TestTransformTypeGo(t *testing.T) { + type testcase struct { + typeName string + expect string + } + + cases := []testcase{ + {"i16", "int16"}, + {"Option>", "Optional[[]int64]"}, + {"Url", "string"}, + {"Sensitive", "string"}, + } + + for _, testcase := range cases { + t.Run(testcase.typeName, func(t *testing.T) { + got := TransformTypeGo(testcase.typeName) + if got != testcase.expect { + t.Errorf("Expected %s, got %s", testcase.expect, got) + } + }) + } +} diff --git a/comment.go b/comment.go deleted file mode 100644 index b6f116e..0000000 --- a/comment.go +++ /dev/null @@ -1,158 +0,0 @@ -package lemmy - -import ( - "context" - "net/http" - - "go.arsenm.dev/go-lemmy/types" -) - -func (c *Client) Comments(ctx context.Context, d types.GetComments) (*types.GetCommentsResponse, error) { - ar := &types.GetCommentsResponse{} - res, err := c.getReq(ctx, http.MethodGet, "/comment/list", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) CreateComment(ctx context.Context, d types.CreateComment) (*types.CommentResponse, error) { - ar := &types.CommentResponse{} - res, err := c.req(ctx, http.MethodPost, "/comment", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) CreateCommentReport(ctx context.Context, d types.CreateCommentReport) (*types.CommentReportResponse, error) { - ar := &types.CommentReportResponse{} - res, err := c.req(ctx, http.MethodPost, "/comment/report", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) DeleteComment(ctx context.Context, d types.DeleteComment) (*types.CommentResponse, error) { - ar := &types.CommentResponse{} - res, err := c.req(ctx, http.MethodPost, "/comment/delete", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) RemoveComment(ctx context.Context, d types.RemoveComment) (*types.CommentResponse, error) { - ar := &types.CommentResponse{} - res, err := c.req(ctx, http.MethodPost, "/comment/remove", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) EditComment(ctx context.Context, d types.EditComment) (*types.CommentResponse, error) { - ar := &types.CommentResponse{} - res, err := c.req(ctx, http.MethodPut, "/comment", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) LikeComment(ctx context.Context, d types.CreateCommentLike) (*types.CommentResponse, error) { - ar := &types.CommentResponse{} - res, err := c.req(ctx, http.MethodPost, "/comment/like", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) CommentReports(ctx context.Context, d types.ListCommentReports) (*types.ListCommentReportsResponse, error) { - ar := &types.ListCommentReportsResponse{} - res, err := c.getReq(ctx, http.MethodGet, "/comments/report/list", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) MarkCommentReplyAsRead(ctx context.Context, d types.MarkCommentReplyAsRead) (*types.CommentResponse, error) { - ar := &types.CommentResponse{} - res, err := c.req(ctx, http.MethodPost, "/comment/mark_as_read", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) SaveComment(ctx context.Context, d types.SaveComment) (*types.CommentResponse, error) { - ar := &types.CommentResponse{} - res, err := c.req(ctx, http.MethodPut, "/comment/save", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} diff --git a/community.go b/community.go deleted file mode 100644 index 743ff10..0000000 --- a/community.go +++ /dev/null @@ -1,173 +0,0 @@ -package lemmy - -import ( - "context" - "net/http" - - "go.arsenm.dev/go-lemmy/types" -) - -func (c *Client) AddModToCommunity(ctx context.Context, d types.AddModToCommunity) (*types.AddModToCommunityResponse, error) { - ar := &types.AddModToCommunityResponse{} - res, err := c.req(ctx, http.MethodPost, "/community/mod", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) BanFromCommunity(ctx context.Context, d types.BanFromCommunity) (*types.BanFromCommunityResponse, error) { - ar := &types.BanFromCommunityResponse{} - res, err := c.req(ctx, http.MethodPost, "/community/ban_user", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) BlockCommunity(ctx context.Context, d types.BlockCommunity) (*types.BlockCommunityResponse, error) { - ar := &types.BlockCommunityResponse{} - res, err := c.req(ctx, http.MethodPost, "/community/block", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) CreateCommunity(ctx context.Context, d types.CreateCommunity) (*types.CommunityResponse, error) { - ar := &types.CommunityResponse{} - res, err := c.req(ctx, http.MethodPost, "/community", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) EditCommunity(ctx context.Context, d types.EditCommunity) (*types.CommunityResponse, error) { - ar := &types.CommunityResponse{} - res, err := c.req(ctx, http.MethodPut, "/community", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) FollowCommunity(ctx context.Context, d types.FollowCommunity) (*types.CommunityResponse, error) { - ar := &types.CommunityResponse{} - res, err := c.req(ctx, http.MethodPost, "/community/follow", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) DeleteCommunity(ctx context.Context, d types.DeleteCommunity) (*types.CommunityResponse, error) { - ar := &types.CommunityResponse{} - res, err := c.req(ctx, http.MethodPost, "/community/delete", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) RemoveCommunity(ctx context.Context, d types.RemoveCommunity) (*types.CommunityResponse, error) { - ar := &types.CommunityResponse{} - res, err := c.req(ctx, http.MethodPost, "/community/remove", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) Community(ctx context.Context, d types.GetCommunity) (*types.GetCommunityResponse, error) { - ar := &types.GetCommunityResponse{} - res, err := c.getReq(ctx, http.MethodGet, "/community", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) Communities(ctx context.Context, d types.ListCommunities) (*types.ListCommunitiesResponse, error) { - ar := &types.ListCommunitiesResponse{} - res, err := c.getReq(ctx, http.MethodGet, "/community/list", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) TransferCommunity(ctx context.Context, d types.TransferCommunity) (*types.GetCommunityResponse, error) { - ar := &types.GetCommunityResponse{} - res, err := c.req(ctx, http.MethodPost, "/community/transfer", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} diff --git a/go.mod b/go.mod index dff3ce3..1516db6 100644 --- a/go.mod +++ b/go.mod @@ -3,6 +3,8 @@ module go.arsenm.dev/go-lemmy go 1.19 require ( + github.com/dave/jennifer v1.6.0 github.com/google/go-querystring v1.1.0 github.com/gorilla/websocket v1.4.2 + golang.org/x/exp v0.0.0-20230105000112-eab7a2c85304 ) diff --git a/go.sum b/go.sum index 1189afa..99a9128 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,11 @@ -github.com/google/go-cmp v0.5.2 h1:X2ev0eStA3AbceY54o37/0PQ/UWqKEiiO2dKL5OPaFM= +github.com/dave/jennifer v1.6.0 h1:MQ/6emI2xM7wt0tJzJzyUik2Q3Tcn2eE0vtYgh4GPVI= +github.com/dave/jennifer v1.6.0/go.mod h1:AxTG893FiZKqxy3FP1kL80VMshSMuz2G+EgvszgGRnk= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8= github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU= github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +golang.org/x/exp v0.0.0-20230105000112-eab7a2c85304 h1:YUqj+XKtfrn3kXjFIiZ8jwKROD7ioAOOHUuo3ZZ2opc= +golang.org/x/exp v0.0.0-20230105000112-eab7a2c85304/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/lemmy.go b/lemmy.go index 6ee38f8..ab853ea 100644 --- a/lemmy.go +++ b/lemmy.go @@ -36,23 +36,16 @@ func NewWithClient(baseURL string, client *http.Client) (*Client, error) { return &Client{baseURL: u, client: client}, nil } -// Login logs in to Lemmy by sending an HTTP request to the +// ClientLogin logs in to Lemmy by sending an HTTP request to the // login endpoint. It stores the returned token in the client // for future use. -func (c *Client) Login(ctx context.Context, l types.Login) error { - var lr types.LoginResponse - res, err := c.req(ctx, http.MethodPost, "/user/login", l, &lr) +func (c *Client) ClientLogin(ctx context.Context, l types.Login) error { + lr, err := c.Login(ctx, l) if err != nil { return err } - err = resError(res, lr.LemmyResponse) - if err != nil { - return err - } - - c.Token = lr.JWT.MustValue() - + c.Token = lr.Jwt.MustValue() return nil } diff --git a/person.go b/person.go deleted file mode 100644 index 386447e..0000000 --- a/person.go +++ /dev/null @@ -1,301 +0,0 @@ -package lemmy - -import ( - "context" - "net/http" - - "go.arsenm.dev/go-lemmy/types" -) - -func (c *Client) BanPerson(ctx context.Context, d types.BanPerson) (*types.BanPersonResponse, error) { - ar := &types.BanPersonResponse{} - res, err := c.req(ctx, http.MethodPost, "/user/ban", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) BlockPerson(ctx context.Context, d types.BlockPerson) (*types.BlockPersonResponse, error) { - ar := &types.BlockPersonResponse{} - res, err := c.req(ctx, http.MethodPost, "/user/block", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) ChangePassword(ctx context.Context, d types.ChangePassword) (*types.LoginResponse, error) { - ar := &types.LoginResponse{} - res, err := c.req(ctx, http.MethodPut, "/user/change_password", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - c.Token = ar.JWT.MustValue() - - return ar, nil -} - -func (c *Client) DeleteAccount(ctx context.Context, d types.DeleteAccount) (*types.DeleteAccountResponse, error) { - ar := &types.DeleteAccountResponse{} - res, err := c.req(ctx, http.MethodPost, "/user/delete_account", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) BannedPersons(ctx context.Context, d types.GetBannedPersons) (*types.BannedPersonsResponse, error) { - ar := &types.BannedPersonsResponse{} - res, err := c.getReq(ctx, http.MethodGet, "/user/banned", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) Captcha(ctx context.Context, d types.GetCaptcha) (*types.CaptchaResponse, error) { - ar := &types.CaptchaResponse{} - res, err := c.getReq(ctx, http.MethodGet, "/user/get_captcha", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) PersonDetails(ctx context.Context, d types.GetPersonDetails) (*types.GetPersonDetailsResponse, error) { - ar := &types.GetPersonDetailsResponse{} - res, err := c.getReq(ctx, http.MethodGet, "/user", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) PersonMentions(ctx context.Context, d types.GetPersonMentions) (*types.GetPersonMentionsResponse, error) { - ar := &types.GetPersonMentionsResponse{} - res, err := c.getReq(ctx, http.MethodGet, "/user/mention", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) Replies(ctx context.Context, d types.GetReplies) (*types.GetRepliesResponse, error) { - ar := &types.GetRepliesResponse{} - res, err := c.getReq(ctx, http.MethodGet, "/user/replies", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) ReportCount(ctx context.Context, d types.GetReportCount) (*types.GetReportCountResponse, error) { - ar := &types.GetReportCountResponse{} - res, err := c.getReq(ctx, http.MethodGet, "/user/report_count", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) UnreadCount(ctx context.Context, d types.GetUnreadCount) (*types.GetUnreadCountResponse, error) { - ar := &types.GetUnreadCountResponse{} - res, err := c.getReq(ctx, http.MethodGet, "/user/unread_count", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) LeaveAdmin(ctx context.Context, d types.LeaveAdmin) (*types.GetSiteResponse, error) { - ar := &types.GetSiteResponse{} - res, err := c.req(ctx, http.MethodPost, "/user/leave_admin", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) MarkAllAsRead(ctx context.Context, d types.MarkAllAsRead) (*types.GetRepliesResponse, error) { - ar := &types.GetRepliesResponse{} - res, err := c.req(ctx, http.MethodPost, "/user/mark_all_as_read", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) MarkPersonMentionAsRead(ctx context.Context, d types.MarkPersonMentionAsRead) (*types.PersonMentionResponse, error) { - ar := &types.PersonMentionResponse{} - res, err := c.req(ctx, http.MethodPost, "/user/mention/mark_as_read", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) PasswordChange(ctx context.Context, d types.PasswordChange) (*types.LoginResponse, error) { - ar := &types.LoginResponse{} - res, err := c.req(ctx, http.MethodPost, "/user/password_change", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - c.Token = ar.JWT.MustValue() - - return ar, nil -} - -func (c *Client) PasswordReset(ctx context.Context, d types.PasswordReset) (*types.PasswordResetResponse, error) { - ar := &types.PasswordResetResponse{} - res, err := c.req(ctx, http.MethodPost, "/user/password_reset", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) Register(ctx context.Context, d types.Register) (*types.LoginResponse, error) { - ar := &types.LoginResponse{} - res, err := c.req(ctx, http.MethodPost, "/user/register", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - c.Token = ar.JWT.MustValue() - - return ar, nil -} - -func (c *Client) SaveUserSettings(ctx context.Context, d types.SaveUserSettings) (*types.LoginResponse, error) { - ar := &types.LoginResponse{} - res, err := c.req(ctx, http.MethodPut, "/user/save_user_settings", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - c.Token = ar.JWT.MustValue() - - return ar, nil -} - -func (c *Client) VerifyEmail(ctx context.Context, d types.VerifyEmail) (*types.VerifyEmailResponse, error) { - ar := &types.VerifyEmailResponse{} - res, err := c.req(ctx, http.MethodPut, "/user/verify_email", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} diff --git a/post.go b/post.go deleted file mode 100644 index 8a5efc8..0000000 --- a/post.go +++ /dev/null @@ -1,233 +0,0 @@ -package lemmy - -import ( - "context" - "net/http" - - "go.arsenm.dev/go-lemmy/types" -) - -func (c *Client) CreatePost(ctx context.Context, d types.CreatePost) (*types.PostResponse, error) { - ar := &types.PostResponse{} - res, err := c.req(ctx, http.MethodPost, "/post", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) EditPost(ctx context.Context, d types.EditPost) (*types.PostResponse, error) { - ar := &types.PostResponse{} - res, err := c.req(ctx, http.MethodPut, "/post", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) Post(ctx context.Context, d types.GetPost) (*types.GetPostResponse, error) { - ar := &types.GetPostResponse{} - res, err := c.getReq(ctx, http.MethodGet, "/post", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) CreatePostReport(ctx context.Context, d types.CreatePostReport) (*types.PostReportResponse, error) { - ar := &types.PostReportResponse{} - res, err := c.req(ctx, http.MethodPost, "/post/report", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) DeletePost(ctx context.Context, d types.DeletePost) (*types.PostResponse, error) { - ar := &types.PostResponse{} - res, err := c.req(ctx, http.MethodPost, "/post/delete", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) RemovePost(ctx context.Context, d types.RemovePost) (*types.PostResponse, error) { - ar := &types.PostResponse{} - res, err := c.req(ctx, http.MethodPost, "/post/remove", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) Posts(ctx context.Context, d types.GetPosts) (*types.GetPostsResponse, error) { - ar := &types.GetPostsResponse{} - res, err := c.getReq(ctx, http.MethodGet, "/post/list", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) SiteMetadata(ctx context.Context, d types.GetSiteMetadata) (*types.GetSiteMetadataResponse, error) { - ar := &types.GetSiteMetadataResponse{} - res, err := c.getReq(ctx, http.MethodGet, "/post/site_metadata", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) LikePost(ctx context.Context, d types.CreatePostLike) (*types.PostResponse, error) { - ar := &types.PostResponse{} - res, err := c.req(ctx, http.MethodPost, "/post/like", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) PostReports(ctx context.Context, d types.ListPostReports) (*types.ListPostReportsResponse, error) { - ar := &types.ListPostReportsResponse{} - res, err := c.getReq(ctx, http.MethodGet, "/post/report/list", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) LockPost(ctx context.Context, d types.LockPost) (*types.PostResponse, error) { - ar := &types.PostResponse{} - res, err := c.req(ctx, http.MethodPost, "/post/lock", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) MarkPostAsRead(ctx context.Context, d types.MarkPostAsRead) (*types.PostResponse, error) { - ar := &types.PostResponse{} - res, err := c.req(ctx, http.MethodPost, "/post/mark_as_read", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) ResolvePostReport(ctx context.Context, d types.ResolvePostReport) (*types.PostReportResponse, error) { - ar := &types.PostReportResponse{} - res, err := c.req(ctx, http.MethodPut, "/post/report/resolve", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) SavePost(ctx context.Context, d types.SavePost) (*types.PostResponse, error) { - ar := &types.PostResponse{} - res, err := c.req(ctx, http.MethodPut, "/post/save", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) StickyPost(ctx context.Context, d types.StickyPost) (*types.PostResponse, error) { - ar := &types.PostResponse{} - res, err := c.req(ctx, http.MethodPost, "/post/sticky", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} diff --git a/privateMessage.go b/privateMessage.go deleted file mode 100644 index 9eb396e..0000000 --- a/privateMessage.go +++ /dev/null @@ -1,128 +0,0 @@ -package lemmy - -import ( - "context" - "net/http" - - "go.arsenm.dev/go-lemmy/types" -) - -func (c *Client) CreatePrivateMessage(ctx context.Context, d types.CreatePrivateMessage) (*types.PrivateMessageResponse, error) { - ar := &types.PrivateMessageResponse{} - res, err := c.req(ctx, http.MethodPost, "/private_message", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) CreatePrivateMessageReport(ctx context.Context, d types.CreatePrivateMessageReport) (*types.PrivateMessageReportResponse, error) { - ar := &types.PrivateMessageReportResponse{} - res, err := c.req(ctx, http.MethodPost, "/private_message/report", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) DeletePrivateMessage(ctx context.Context, d types.DeletePrivateMessage) (*types.PrivateMessageResponse, error) { - ar := &types.PrivateMessageResponse{} - res, err := c.req(ctx, http.MethodPost, "/private_message/delete", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) EditPrivateMessage(ctx context.Context, d types.EditPrivateMessage) (*types.PrivateMessageResponse, error) { - ar := &types.PrivateMessageResponse{} - res, err := c.req(ctx, http.MethodPut, "/private_message", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) PrivateMessages(ctx context.Context, d types.GetPrivateMessages) (*types.PrivateMessagesResponse, error) { - ar := &types.PrivateMessagesResponse{} - res, err := c.getReq(ctx, http.MethodGet, "/private_message/list", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) PrivateMessageReports(ctx context.Context, d types.ListPrivateMessageReports) (*types.ListPrivateMessageReportsResponse, error) { - ar := &types.ListPrivateMessageReportsResponse{} - res, err := c.getReq(ctx, http.MethodGet, "/private_message/report/list", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) MarkPrivateMessageAsRead(ctx context.Context, d types.MarkPrivateMessageAsRead) (*types.PrivateMessageResponse, error) { - ar := &types.PrivateMessageResponse{} - res, err := c.req(ctx, http.MethodPost, "/private_message/mark_as_read", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) ResolvePrivateMessageReport(ctx context.Context, d types.ResolvePrivateMessageReport) (*types.PrivateMessageReportResponse, error) { - ar := &types.PrivateMessageReportResponse{} - res, err := c.req(ctx, http.MethodPut, "/private_message/report/resolve", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} diff --git a/routes.gen.go b/routes.gen.go new file mode 100644 index 0000000..b36c5e5 --- /dev/null +++ b/routes.gen.go @@ -0,0 +1,967 @@ +package lemmy + +import ( + "context" + types "go.arsenm.dev/go-lemmy/types" +) + +func (c *Client) Site(ctx context.Context, data types.GetSite) (*types.GetSiteResponse, error) { + resData := &types.GetSiteResponse{} + res, err := c.getReq(ctx, "GET", "/site", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) CreateSite(ctx context.Context, data types.CreateSite) (*types.SiteResponse, error) { + resData := &types.SiteResponse{} + res, err := c.req(ctx, "POST", "/site", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) EditSite(ctx context.Context, data types.EditSite) (*types.SiteResponse, error) { + resData := &types.SiteResponse{} + res, err := c.req(ctx, "PUT", "/site", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) SiteConfig(ctx context.Context, data types.GetSiteConfig) (*types.GetSiteConfigResponse, error) { + resData := &types.GetSiteConfigResponse{} + res, err := c.getReq(ctx, "GET", "/site/config", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) SaveSiteConfig(ctx context.Context, data types.SaveSiteConfig) (*types.GetSiteConfigResponse, error) { + resData := &types.GetSiteConfigResponse{} + res, err := c.req(ctx, "PUT", "/site/config", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) Modlog(ctx context.Context, data types.GetModlog) (*types.GetModlogResponse, error) { + resData := &types.GetModlogResponse{} + res, err := c.getReq(ctx, "GET", "/modlog", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) Search(ctx context.Context, data types.Search) (*types.SearchResponse, error) { + resData := &types.SearchResponse{} + res, err := c.getReq(ctx, "GET", "/search", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) ResolveObject(ctx context.Context, data types.ResolveObject) (*types.ResolveObjectResponse, error) { + resData := &types.ResolveObjectResponse{} + res, err := c.getReq(ctx, "GET", "/resolve_object", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) CreateCommunity(ctx context.Context, data types.CreateCommunity) (*types.CommunityResponse, error) { + resData := &types.CommunityResponse{} + res, err := c.req(ctx, "POST", "/community", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) Community(ctx context.Context, data types.GetCommunity) (*types.GetCommunityResponse, error) { + resData := &types.GetCommunityResponse{} + res, err := c.getReq(ctx, "GET", "/community", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) EditCommunity(ctx context.Context, data types.EditCommunity) (*types.CommunityResponse, error) { + resData := &types.CommunityResponse{} + res, err := c.req(ctx, "PUT", "/community", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) HideCommunity(ctx context.Context, data types.HideCommunity) (*types.CommunityResponse, error) { + resData := &types.CommunityResponse{} + res, err := c.req(ctx, "PUT", "/community/hide", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) ListCommunities(ctx context.Context, data types.ListCommunities) (*types.ListCommunitiesResponse, error) { + resData := &types.ListCommunitiesResponse{} + res, err := c.getReq(ctx, "GET", "/community/list", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) FollowCommunity(ctx context.Context, data types.FollowCommunity) (*types.CommunityResponse, error) { + resData := &types.CommunityResponse{} + res, err := c.req(ctx, "POST", "/community/follow", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) BlockCommunity(ctx context.Context, data types.BlockCommunity) (*types.BlockCommunityResponse, error) { + resData := &types.BlockCommunityResponse{} + res, err := c.req(ctx, "POST", "/community/block", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) DeleteCommunity(ctx context.Context, data types.DeleteCommunity) (*types.CommunityResponse, error) { + resData := &types.CommunityResponse{} + res, err := c.req(ctx, "POST", "/community/delete", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) RemoveCommunity(ctx context.Context, data types.RemoveCommunity) (*types.CommunityResponse, error) { + resData := &types.CommunityResponse{} + res, err := c.req(ctx, "POST", "/community/remove", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) TransferCommunity(ctx context.Context, data types.TransferCommunity) (*types.GetCommunityResponse, error) { + resData := &types.GetCommunityResponse{} + res, err := c.req(ctx, "POST", "/community/transfer", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) BanFromCommunity(ctx context.Context, data types.BanFromCommunity) (*types.BanFromCommunityResponse, error) { + resData := &types.BanFromCommunityResponse{} + res, err := c.req(ctx, "POST", "/community/ban_user", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) AddModToCommunity(ctx context.Context, data types.AddModToCommunity) (*types.AddModToCommunityResponse, error) { + resData := &types.AddModToCommunityResponse{} + res, err := c.req(ctx, "POST", "/community/mod", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) CommunityJoin(ctx context.Context, data types.CommunityJoin) (*types.CommunityJoinResponse, error) { + resData := &types.CommunityJoinResponse{} + res, err := c.req(ctx, "POST", "/community/join", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) ModJoin(ctx context.Context, data types.ModJoin) (*types.ModJoinResponse, error) { + resData := &types.ModJoinResponse{} + res, err := c.req(ctx, "POST", "/community/mod/join", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) CreatePost(ctx context.Context, data types.CreatePost) (*types.PostResponse, error) { + resData := &types.PostResponse{} + res, err := c.req(ctx, "POST", "/post", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) Post(ctx context.Context, data types.GetPost) (*types.GetPostResponse, error) { + resData := &types.GetPostResponse{} + res, err := c.getReq(ctx, "GET", "/post", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) EditPost(ctx context.Context, data types.EditPost) (*types.PostResponse, error) { + resData := &types.PostResponse{} + res, err := c.req(ctx, "PUT", "/post", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) DeletePost(ctx context.Context, data types.DeletePost) (*types.PostResponse, error) { + resData := &types.PostResponse{} + res, err := c.req(ctx, "POST", "/post/delete", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) RemovePost(ctx context.Context, data types.RemovePost) (*types.PostResponse, error) { + resData := &types.PostResponse{} + res, err := c.req(ctx, "POST", "/post/remove", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) MarkPostAsRead(ctx context.Context, data types.MarkPostAsRead) (*types.PostResponse, error) { + resData := &types.PostResponse{} + res, err := c.req(ctx, "POST", "/post/mark_as_read", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) LockPost(ctx context.Context, data types.LockPost) (*types.PostResponse, error) { + resData := &types.PostResponse{} + res, err := c.req(ctx, "POST", "/post/lock", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) StickyPost(ctx context.Context, data types.StickyPost) (*types.PostResponse, error) { + resData := &types.PostResponse{} + res, err := c.req(ctx, "POST", "/post/sticky", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) Posts(ctx context.Context, data types.GetPosts) (*types.GetPostsResponse, error) { + resData := &types.GetPostsResponse{} + res, err := c.getReq(ctx, "GET", "/post/list", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) CreatePostLike(ctx context.Context, data types.CreatePostLike) (*types.PostResponse, error) { + resData := &types.PostResponse{} + res, err := c.req(ctx, "POST", "/post/like", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) SavePost(ctx context.Context, data types.SavePost) (*types.PostResponse, error) { + resData := &types.PostResponse{} + res, err := c.req(ctx, "PUT", "/post/save", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) PostJoin(ctx context.Context, data types.PostJoin) (*types.PostJoinResponse, error) { + resData := &types.PostJoinResponse{} + res, err := c.req(ctx, "POST", "/post/join", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) CreatePostReport(ctx context.Context, data types.CreatePostReport) (*types.PostReportResponse, error) { + resData := &types.PostReportResponse{} + res, err := c.req(ctx, "POST", "/post/report", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) ResolvePostReport(ctx context.Context, data types.ResolvePostReport) (*types.PostReportResponse, error) { + resData := &types.PostReportResponse{} + res, err := c.req(ctx, "PUT", "/post/report/resolve", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) ListPostReports(ctx context.Context, data types.ListPostReports) (*types.ListPostReportsResponse, error) { + resData := &types.ListPostReportsResponse{} + res, err := c.getReq(ctx, "GET", "/post/report/list", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) SiteMetadata(ctx context.Context, data types.GetSiteMetadata) (*types.GetSiteMetadataResponse, error) { + resData := &types.GetSiteMetadataResponse{} + res, err := c.getReq(ctx, "GET", "/post/site_metadata", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) CreateComment(ctx context.Context, data types.CreateComment) (*types.CommentResponse, error) { + resData := &types.CommentResponse{} + res, err := c.req(ctx, "POST", "/comment", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) Comment(ctx context.Context, data types.GetComment) (*types.CommentResponse, error) { + resData := &types.CommentResponse{} + res, err := c.getReq(ctx, "GET", "/comment", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) EditComment(ctx context.Context, data types.EditComment) (*types.CommentResponse, error) { + resData := &types.CommentResponse{} + res, err := c.req(ctx, "PUT", "/comment", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) DeleteComment(ctx context.Context, data types.DeleteComment) (*types.CommentResponse, error) { + resData := &types.CommentResponse{} + res, err := c.req(ctx, "POST", "/comment/delete", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) RemoveComment(ctx context.Context, data types.RemoveComment) (*types.CommentResponse, error) { + resData := &types.CommentResponse{} + res, err := c.req(ctx, "POST", "/comment/remove", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) MarkCommentAsRead(ctx context.Context, data types.MarkCommentAsRead) (*types.CommentResponse, error) { + resData := &types.CommentResponse{} + res, err := c.req(ctx, "POST", "/comment/mark_as_read", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) CreateCommentLike(ctx context.Context, data types.CreateCommentLike) (*types.CommentResponse, error) { + resData := &types.CommentResponse{} + res, err := c.req(ctx, "POST", "/comment/like", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) SaveComment(ctx context.Context, data types.SaveComment) (*types.CommentResponse, error) { + resData := &types.CommentResponse{} + res, err := c.req(ctx, "PUT", "/comment/save", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) Comments(ctx context.Context, data types.GetComments) (*types.GetCommentsResponse, error) { + resData := &types.GetCommentsResponse{} + res, err := c.getReq(ctx, "GET", "/comment/list", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) CreateCommentReport(ctx context.Context, data types.CreateCommentReport) (*types.CommentReportResponse, error) { + resData := &types.CommentReportResponse{} + res, err := c.req(ctx, "POST", "/comment/report", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) ResolveCommentReport(ctx context.Context, data types.ResolveCommentReport) (*types.CommentReportResponse, error) { + resData := &types.CommentReportResponse{} + res, err := c.req(ctx, "PUT", "/comment/report/resolve", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) ListCommentReports(ctx context.Context, data types.ListCommentReports) (*types.ListCommentReportsResponse, error) { + resData := &types.ListCommentReportsResponse{} + res, err := c.getReq(ctx, "GET", "/comment/report/list", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) PrivateMessages(ctx context.Context, data types.GetPrivateMessages) (*types.PrivateMessagesResponse, error) { + resData := &types.PrivateMessagesResponse{} + res, err := c.getReq(ctx, "GET", "/private_message/list", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) CreatePrivateMessage(ctx context.Context, data types.CreatePrivateMessage) (*types.PrivateMessageResponse, error) { + resData := &types.PrivateMessageResponse{} + res, err := c.req(ctx, "POST", "/private_message", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) EditPrivateMessage(ctx context.Context, data types.EditPrivateMessage) (*types.PrivateMessageResponse, error) { + resData := &types.PrivateMessageResponse{} + res, err := c.req(ctx, "PUT", "/private_message", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) DeletePrivateMessage(ctx context.Context, data types.DeletePrivateMessage) (*types.PrivateMessageResponse, error) { + resData := &types.PrivateMessageResponse{} + res, err := c.req(ctx, "POST", "/private_message/delete", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) MarkPrivateMessageAsRead(ctx context.Context, data types.MarkPrivateMessageAsRead) (*types.PrivateMessageResponse, error) { + resData := &types.PrivateMessageResponse{} + res, err := c.req(ctx, "POST", "/private_message/mark_as_read", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) Register(ctx context.Context, data types.Register) (*types.LoginResponse, error) { + resData := &types.LoginResponse{} + res, err := c.req(ctx, "POST", "/user/register", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) Captcha(ctx context.Context, data types.GetCaptcha) (*types.GetCaptchaResponse, error) { + resData := &types.GetCaptchaResponse{} + res, err := c.getReq(ctx, "GET", "/user/get_captcha", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) PersonDetails(ctx context.Context, data types.GetPersonDetails) (*types.GetPersonDetailsResponse, error) { + resData := &types.GetPersonDetailsResponse{} + res, err := c.getReq(ctx, "GET", "/user", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) PersonMentions(ctx context.Context, data types.GetPersonMentions) (*types.GetPersonMentionsResponse, error) { + resData := &types.GetPersonMentionsResponse{} + res, err := c.getReq(ctx, "GET", "/user/mention", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) MarkPersonMentionAsRead(ctx context.Context, data types.MarkPersonMentionAsRead) (*types.PersonMentionResponse, error) { + resData := &types.PersonMentionResponse{} + res, err := c.req(ctx, "POST", "/user/mention/mark_as_read", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) Replies(ctx context.Context, data types.GetReplies) (*types.GetRepliesResponse, error) { + resData := &types.GetRepliesResponse{} + res, err := c.getReq(ctx, "GET", "/user/replies", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) UserJoin(ctx context.Context, data types.UserJoin) (*types.UserJoinResponse, error) { + resData := &types.UserJoinResponse{} + res, err := c.req(ctx, "POST", "/user/join", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) BanPerson(ctx context.Context, data types.BanPerson) (*types.BanPersonResponse, error) { + resData := &types.BanPersonResponse{} + res, err := c.req(ctx, "POST", "/user/ban", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) BannedPersons(ctx context.Context, data types.GetBannedPersons) (*types.BannedPersonsResponse, error) { + resData := &types.BannedPersonsResponse{} + res, err := c.getReq(ctx, "GET", "/user/banned", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) BlockPerson(ctx context.Context, data types.BlockPerson) (*types.BlockPersonResponse, error) { + resData := &types.BlockPersonResponse{} + res, err := c.req(ctx, "POST", "/user/block", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) Login(ctx context.Context, data types.Login) (*types.LoginResponse, error) { + resData := &types.LoginResponse{} + res, err := c.req(ctx, "POST", "/user/login", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) DeleteAccount(ctx context.Context, data types.DeleteAccount) (*types.DeleteAccountResponse, error) { + resData := &types.DeleteAccountResponse{} + res, err := c.req(ctx, "POST", "/user/delete_account", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) PasswordReset(ctx context.Context, data types.PasswordReset) (*types.PasswordResetResponse, error) { + resData := &types.PasswordResetResponse{} + res, err := c.req(ctx, "POST", "/user/password_reset", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) PasswordChangeAfterReset(ctx context.Context, data types.PasswordChangeAfterReset) (*types.LoginResponse, error) { + resData := &types.LoginResponse{} + res, err := c.req(ctx, "POST", "/user/password_change", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) MarkAllAsRead(ctx context.Context, data types.MarkAllAsRead) (*types.GetRepliesResponse, error) { + resData := &types.GetRepliesResponse{} + res, err := c.req(ctx, "POST", "/user/mark_all_as_read", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) SaveUserSettings(ctx context.Context, data types.SaveUserSettings) (*types.LoginResponse, error) { + resData := &types.LoginResponse{} + res, err := c.req(ctx, "PUT", "/user/save_user_settings", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) ChangePassword(ctx context.Context, data types.ChangePassword) (*types.LoginResponse, error) { + resData := &types.LoginResponse{} + res, err := c.req(ctx, "PUT", "/user/change_password", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) ReportCount(ctx context.Context, data types.GetReportCount) (*types.GetReportCountResponse, error) { + resData := &types.GetReportCountResponse{} + res, err := c.getReq(ctx, "GET", "/user/report_count", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) UnreadCount(ctx context.Context, data types.GetUnreadCount) (*types.GetUnreadCountResponse, error) { + resData := &types.GetUnreadCountResponse{} + res, err := c.getReq(ctx, "GET", "/user/unread_count", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) VerifyEmail(ctx context.Context, data types.VerifyEmail) (*types.VerifyEmailResponse, error) { + resData := &types.VerifyEmailResponse{} + res, err := c.req(ctx, "POST", "/user/verify_email", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) LeaveAdmin(ctx context.Context, data types.LeaveAdmin) (*types.GetSiteResponse, error) { + resData := &types.GetSiteResponse{} + res, err := c.req(ctx, "POST", "/user/leave_admin", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) AddAdmin(ctx context.Context, data types.AddAdmin) (*types.AddAdminResponse, error) { + resData := &types.AddAdminResponse{} + res, err := c.req(ctx, "POST", "/admin/add", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) UnreadRegistrationApplicationCount(ctx context.Context, data types.GetUnreadRegistrationApplicationCount) (*types.GetUnreadRegistrationApplicationCountResponse, error) { + resData := &types.GetUnreadRegistrationApplicationCountResponse{} + res, err := c.getReq(ctx, "GET", "/admin/registration_application/count", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) ListRegistrationApplications(ctx context.Context, data types.ListRegistrationApplications) (*types.ListRegistrationApplicationsResponse, error) { + resData := &types.ListRegistrationApplicationsResponse{} + res, err := c.getReq(ctx, "GET", "/admin/registration_application/list", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} +func (c *Client) ApproveRegistrationApplication(ctx context.Context, data types.ApproveRegistrationApplication) (*types.RegistrationApplicationResponse, error) { + resData := &types.RegistrationApplicationResponse{} + res, err := c.req(ctx, "PUT", "/admin/registration_application/approve", data, &resData) + if err != nil { + return nil, err + } + err = resError(res, resData.LemmyResponse) + if err != nil { + return nil, err + } + return resData, nil +} diff --git a/search.go b/search.go deleted file mode 100644 index df88ddc..0000000 --- a/search.go +++ /dev/null @@ -1,23 +0,0 @@ -package lemmy - -import ( - "context" - "net/http" - - "go.arsenm.dev/go-lemmy/types" -) - -func (c *Client) Search(ctx context.Context, d types.Search) (*types.SearchResponse, error) { - ar := &types.SearchResponse{} - res, err := c.getReq(ctx, http.MethodGet, "/search", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} diff --git a/site.go b/site.go deleted file mode 100644 index e9d08a2..0000000 --- a/site.go +++ /dev/null @@ -1,53 +0,0 @@ -package lemmy - -import ( - "context" - "net/http" - - "go.arsenm.dev/go-lemmy/types" -) - -func (c *Client) CreateSite(ctx context.Context, d types.CreateSite) (*types.SiteResponse, error) { - ar := &types.SiteResponse{} - res, err := c.req(ctx, http.MethodPost, "/site", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) EditSite(ctx context.Context, d types.EditSite) (*types.SiteResponse, error) { - ar := &types.SiteResponse{} - res, err := c.req(ctx, http.MethodPut, "/site", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} - -func (c *Client) Site(ctx context.Context, d types.GetSite) (*types.GetSiteResponse, error) { - ar := &types.GetSiteResponse{} - res, err := c.getReq(ctx, http.MethodGet, "/site", d, &ar) - if err != nil { - return nil, err - } - - err = resError(res, ar.LemmyResponse) - if err != nil { - return nil, err - } - - return ar, nil -} diff --git a/types/activity.gen.go b/types/activity.gen.go new file mode 100644 index 0000000..d0efd6c --- /dev/null +++ b/types/activity.gen.go @@ -0,0 +1,20 @@ +package types + +import "time" + +type Activity struct { + ID int32 `json:"id,omitempty" url:"id,omitempty"` + Data any `json:"data,omitempty" url:"data,omitempty"` + Local bool `json:"local,omitempty" url:"local,omitempty"` + Published time.Time `json:"published,omitempty" url:"published,omitempty"` + Updated time.Time `json:"updated,omitempty" url:"updated,omitempty"` + ApID string `json:"ap_id,omitempty" url:"ap_id,omitempty"` + Sensitive Optional[bool] `json:"sensitive,omitempty" url:"sensitive,omitempty"` +} +type ActivityForm struct { + Data any `json:"data,omitempty" url:"data,omitempty"` + Local Optional[bool] `json:"local,omitempty" url:"local,omitempty"` + Updated time.Time `json:"updated,omitempty" url:"updated,omitempty"` + ApID string `json:"ap_id,omitempty" url:"ap_id,omitempty"` + Sensitive bool `json:"sensitive,omitempty" url:"sensitive,omitempty"` +} diff --git a/types/aggregates.go b/types/aggregates.go deleted file mode 100644 index b98b839..0000000 --- a/types/aggregates.go +++ /dev/null @@ -1,55 +0,0 @@ -package types - -type PersonAggregates struct { - ID int `json:"id" url:"id,omitempty"` - PersonID int `json:"person_id" url:"person_id,omitempty"` - PostCount int `json:"post_count" url:"post_count,omitempty"` - PostScore int `json:"post_score" url:"post_score,omitempty"` - CommentCount int `json:"comment_count" url:"comment_count,omitempty"` - CommentScore int `json:"comment_score" url:"comment_score,omitempty"` -} - -type SiteAggregates struct { - ID int `json:"id" url:"id,omitempty"` - SiteID int `json:"site_id" url:"site_id,omitempty"` - Users int `json:"users" url:"users,omitempty"` - Posts int `json:"posts" url:"posts,omitempty"` - Comments int `json:"comments" url:"comments,omitempty"` - Communities int `json:"communities" url:"communities,omitempty"` - UsersActiveDay int `json:"users_active_day" url:"users_active_day,omitempty"` - UsersActiveWeek int `json:"users_active_week" url:"users_active_week,omitempty"` - UsersActiveMonth int `json:"users_active_month" url:"users_active_month,omitempty"` - UsersActiveHalfYear int `json:"users_active_half_year" url:"users_active_half_year,omitempty"` -} - -type PostAggregates struct { - ID int `json:"id" url:"id,omitempty"` - PostID int `json:"post_id" url:"post_id,omitempty"` - Comments int `json:"comments" url:"comments,omitempty"` - Score int `json:"score" url:"score,omitempty"` - Upvotes int `json:"upvotes" url:"upvotes,omitempty"` - Downvotes int `json:"downvotes" url:"downvotes,omitempty"` - NewestCommentTimeNecro string `json:"newest_comment_time_necro" url:"newest_comment_time_necro,omitempty"` - NewestCommentTime string `json:"newest_comment_time" url:"newest_comment_time,omitempty"` -} - -type CommunityAggregates struct { - ID int `json:"id" url:"id,omitempty"` - CommunityID int `json:"community_id" url:"community_id,omitempty"` - Subscribers int `json:"subscribers" url:"subscribers,omitempty"` - Posts int `json:"posts" url:"posts,omitempty"` - Comments int `json:"comments" url:"comments,omitempty"` - UsersActiveDay int `json:"users_active_day" url:"users_active_day,omitempty"` - UsersActiveWeek int `json:"users_active_week" url:"users_active_week,omitempty"` - UsersActiveMonth int `json:"users_active_month" url:"users_active_month,omitempty"` - UsersActiveHalfYear int `json:"users_active_half_year" url:"users_active_half_year,omitempty"` -} - -type CommentAggregates struct { - ID int `json:"id" url:"id,omitempty"` - CommentID int `json:"comment_id" url:"comment_id,omitempty"` - Score int `json:"score" url:"score,omitempty"` - Upvotes int `json:"upvotes" url:"upvotes,omitempty"` - Downvotes int `json:"downvotes" url:"downvotes,omitempty"` - ChildCount int `json:"child_count" url:"child_count,omitempty"` -} diff --git a/types/comment.1.gen.go b/types/comment.1.gen.go new file mode 100644 index 0000000..61d3a0f --- /dev/null +++ b/types/comment.1.gen.go @@ -0,0 +1,69 @@ +package types + +import "time" + +type Comment struct { + ID int `json:"id,omitempty" url:"id,omitempty"` + CreatorID int `json:"creator_id,omitempty" url:"creator_id,omitempty"` + PostID int `json:"post_id,omitempty" url:"post_id,omitempty"` + ParentID Optional[int] `json:"parent_id,omitempty" url:"parent_id,omitempty"` + Content string `json:"content,omitempty" url:"content,omitempty"` + Removed bool `json:"removed,omitempty" url:"removed,omitempty"` + Read bool `json:"read,omitempty" url:"read,omitempty"` + Published time.Time `json:"published,omitempty" url:"published,omitempty"` + Updated time.Time `json:"updated,omitempty" url:"updated,omitempty"` + Deleted bool `json:"deleted,omitempty" url:"deleted,omitempty"` + ApID string `json:"ap_id,omitempty" url:"ap_id,omitempty"` + Local bool `json:"local,omitempty" url:"local,omitempty"` +} +type CommentAlias1 struct { + ID int `json:"id,omitempty" url:"id,omitempty"` + CreatorID int `json:"creator_id,omitempty" url:"creator_id,omitempty"` + PostID int `json:"post_id,omitempty" url:"post_id,omitempty"` + ParentID Optional[int] `json:"parent_id,omitempty" url:"parent_id,omitempty"` + Content string `json:"content,omitempty" url:"content,omitempty"` + Removed bool `json:"removed,omitempty" url:"removed,omitempty"` + Read bool `json:"read,omitempty" url:"read,omitempty"` + Published time.Time `json:"published,omitempty" url:"published,omitempty"` + Updated time.Time `json:"updated,omitempty" url:"updated,omitempty"` + Deleted bool `json:"deleted,omitempty" url:"deleted,omitempty"` + ApID string `json:"ap_id,omitempty" url:"ap_id,omitempty"` + Local bool `json:"local,omitempty" url:"local,omitempty"` +} +type CommentForm struct { + CreatorID int `json:"creator_id,omitempty" url:"creator_id,omitempty"` + PostID int `json:"post_id,omitempty" url:"post_id,omitempty"` + Content string `json:"content,omitempty" url:"content,omitempty"` + ParentID Optional[int] `json:"parent_id,omitempty" url:"parent_id,omitempty"` + Removed Optional[bool] `json:"removed,omitempty" url:"removed,omitempty"` + Read Optional[bool] `json:"read,omitempty" url:"read,omitempty"` + Published time.Time `json:"published,omitempty" url:"published,omitempty"` + Updated time.Time `json:"updated,omitempty" url:"updated,omitempty"` + Deleted Optional[bool] `json:"deleted,omitempty" url:"deleted,omitempty"` + ApID Optional[string] `json:"ap_id,omitempty" url:"ap_id,omitempty"` + Local Optional[bool] `json:"local,omitempty" url:"local,omitempty"` +} +type CommentLike struct { + ID int32 `json:"id,omitempty" url:"id,omitempty"` + PersonID int `json:"person_id,omitempty" url:"person_id,omitempty"` + CommentID int `json:"comment_id,omitempty" url:"comment_id,omitempty"` + PostID int `json:"post_id,omitempty" url:"post_id,omitempty"` + Score int16 `json:"score,omitempty" url:"score,omitempty"` + Published time.Time `json:"published,omitempty" url:"published,omitempty"` +} +type CommentLikeForm struct { + PersonID int `json:"person_id,omitempty" url:"person_id,omitempty"` + CommentID int `json:"comment_id,omitempty" url:"comment_id,omitempty"` + PostID int `json:"post_id,omitempty" url:"post_id,omitempty"` + Score int16 `json:"score,omitempty" url:"score,omitempty"` +} +type CommentSaved struct { + ID int32 `json:"id,omitempty" url:"id,omitempty"` + CommentID int `json:"comment_id,omitempty" url:"comment_id,omitempty"` + PersonID int `json:"person_id,omitempty" url:"person_id,omitempty"` + Published time.Time `json:"published,omitempty" url:"published,omitempty"` +} +type CommentSavedForm struct { + CommentID int `json:"comment_id,omitempty" url:"comment_id,omitempty"` + PersonID int `json:"person_id,omitempty" url:"person_id,omitempty"` +} diff --git a/types/comment.gen.go b/types/comment.gen.go new file mode 100644 index 0000000..f4d12d6 --- /dev/null +++ b/types/comment.gen.go @@ -0,0 +1,90 @@ +package types + +type CreateComment struct { + Content string `json:"content,omitempty" url:"content,omitempty"` + PostID int `json:"post_id,omitempty" url:"post_id,omitempty"` + ParentID Optional[int] `json:"parent_id,omitempty" url:"parent_id,omitempty"` + FormID Optional[string] `json:"form_id,omitempty" url:"form_id,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type GetComment struct { + ID int `json:"id,omitempty" url:"id,omitempty"` + Auth Optional[string] `json:"auth,omitempty" url:"auth,omitempty"` +} +type EditComment struct { + Content string `json:"content,omitempty" url:"content,omitempty"` + CommentID int `json:"comment_id,omitempty" url:"comment_id,omitempty"` + FormID Optional[string] `json:"form_id,omitempty" url:"form_id,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type DeleteComment struct { + CommentID int `json:"comment_id,omitempty" url:"comment_id,omitempty"` + Deleted bool `json:"deleted,omitempty" url:"deleted,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type RemoveComment struct { + CommentID int `json:"comment_id,omitempty" url:"comment_id,omitempty"` + Removed bool `json:"removed,omitempty" url:"removed,omitempty"` + Reason Optional[string] `json:"reason,omitempty" url:"reason,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type MarkCommentAsRead struct { + CommentID int `json:"comment_id,omitempty" url:"comment_id,omitempty"` + Read bool `json:"read,omitempty" url:"read,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type SaveComment struct { + CommentID int `json:"comment_id,omitempty" url:"comment_id,omitempty"` + Save bool `json:"save,omitempty" url:"save,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type CommentResponse struct { + CommentView CommentView `json:"comment_view,omitempty" url:"comment_view,omitempty"` + RecipientIds []int `json:"recipient_ids,omitempty" url:"recipient_ids,omitempty"` + FormID Optional[string] `json:"form_id,omitempty" url:"form_id,omitempty"` + LemmyResponse +} +type CreateCommentLike struct { + CommentID int `json:"comment_id,omitempty" url:"comment_id,omitempty"` + Score int16 `json:"score,omitempty" url:"score,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type GetComments struct { + Type Optional[ListingType] `json:"type_,omitempty" url:"type_,omitempty"` + Sort Optional[SortType] `json:"sort,omitempty" url:"sort,omitempty"` + Page Optional[int64] `json:"page,omitempty" url:"page,omitempty"` + Limit Optional[int64] `json:"limit,omitempty" url:"limit,omitempty"` + CommunityID Optional[int] `json:"community_id,omitempty" url:"community_id,omitempty"` + CommunityName Optional[string] `json:"community_name,omitempty" url:"community_name,omitempty"` + SavedOnly Optional[bool] `json:"saved_only,omitempty" url:"saved_only,omitempty"` + Auth Optional[string] `json:"auth,omitempty" url:"auth,omitempty"` +} +type GetCommentsResponse struct { + Comments []CommentView `json:"comments,omitempty" url:"comments,omitempty"` + LemmyResponse +} +type CreateCommentReport struct { + CommentID int `json:"comment_id,omitempty" url:"comment_id,omitempty"` + Reason string `json:"reason,omitempty" url:"reason,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type CommentReportResponse struct { + CommentReportView CommentReportView `json:"comment_report_view,omitempty" url:"comment_report_view,omitempty"` + LemmyResponse +} +type ResolveCommentReport struct { + ReportID int `json:"report_id,omitempty" url:"report_id,omitempty"` + Resolved bool `json:"resolved,omitempty" url:"resolved,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type ListCommentReports struct { + Page Optional[int64] `json:"page,omitempty" url:"page,omitempty"` + Limit Optional[int64] `json:"limit,omitempty" url:"limit,omitempty"` + UnresolvedOnly Optional[bool] `json:"unresolved_only,omitempty" url:"unresolved_only,omitempty"` + CommunityID Optional[int] `json:"community_id,omitempty" url:"community_id,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type ListCommentReportsResponse struct { + CommentReports []CommentReportView `json:"comment_reports,omitempty" url:"comment_reports,omitempty"` + LemmyResponse +} diff --git a/types/comment.go b/types/comment.go deleted file mode 100644 index 1c78ea2..0000000 --- a/types/comment.go +++ /dev/null @@ -1,105 +0,0 @@ -package types - -type CreateComment struct { - Content string `json:"content" url:"content,omitempty"` - PostID int `json:"post_id" url:"post_id,omitempty"` - ParentID Optional[int] `json:"parent_id" url:"parent_id,omitempty"` - LanguageID Optional[int] `json:"language_id" url:"language_id,omitempty"` - FormID Optional[string] `json:"form_id" url:"form_id,omitempty"` - Auth string `json:"auth" url:"auth,omitempty"` -} - -type GetComment struct { - ID int `json:"id" url:"id,omitempty"` - Auth Optional[string] `json:"auth" url:"auth,omitempty"` -} - -type EditComment struct { - CommentID int `json:"comment_id" url:"comment_id,omitempty"` - Content Optional[string] `json:"content" url:"content,omitempty"` - Distinguished Optional[bool] `json:"distinguished" url:"distinguished,omitempty"` - LanguageID Optional[int] `json:"language_id" url:"language_id,omitempty"` - FormID Optional[string] `json:"form_id" url:"form_id,omitempty"` - Auth string `json:"auth" url:"auth,omitempty"` -} - -type DeleteComment struct { - CommentID int `json:"comment_id" url:"comment_id,omitempty"` - Deleted bool `json:"deleted" url:"deleted,omitempty"` - Auth string `json:"auth" url:"auth,omitempty"` -} - -type RemoveComment struct { - CommentID int `json:"comment_id" url:"comment_id,omitempty"` - Removed bool `json:"removed" url:"removed,omitempty"` - Reason Optional[string] `json:"reason" url:"reason,omitempty"` - Auth string `json:"auth" url:"auth,omitempty"` -} - -type SaveComment struct { - CommentID int `json:"comment_id" url:"comment_id,omitempty"` - Save bool `json:"save" url:"save,omitempty"` - Auth string `json:"auth" url:"auth,omitempty"` -} - -type CommentResponse struct { - CommentView CommentView `json:"comment_view" url:"comment_view,omitempty"` - RecipientIDs []int `json:"recipient_i_ds" url:"recipient_i_ds,omitempty"` - FormID Optional[string] `json:"form_id" url:"form_id,omitempty"` - LemmyResponse -} - -type CreateCommentLike struct { - CommentID int `json:"comment_id" url:"comment_id,omitempty"` - Score int16 `json:"score" url:"score,omitempty"` - Auth string `json:"auth" url:"auth,omitempty"` -} - -type GetComments struct { - Type Optional[ListingType] `json:"type" url:"type,omitempty"` - Sort Optional[CommentSortType] `json:"sort" url:"sort,omitempty"` - MaxDepth Optional[int] `json:"max_depth" url:"max_depth,omitempty"` - Page Optional[int] `json:"page" url:"page,omitempty"` - Limit Optional[int] `json:"limit" url:"limit,omitempty"` - CommunityID Optional[int] `json:"community_id" url:"community_id,omitempty"` - CommunityName Optional[string] `json:"community_name" url:"community_name,omitempty"` - PostID Optional[int] `json:"post_id" url:"post_id,omitempty"` - ParentID Optional[int] `json:"parent_id" url:"parent_id,omitempty"` - SavedOnly Optional[bool] `json:"saved_only" url:"saved_only,omitempty"` - Auth Optional[string] `json:"auth" url:"auth,omitempty"` -} - -type GetCommentsResponse struct { - Comments []CommentView `json:"comments" url:"comments,omitempty"` - LemmyResponse -} - -type CreateCommentReport struct { - CommentID int `json:"comment_id" url:"comment_id,omitempty"` - Reason string `json:"reason" url:"reason,omitempty"` - Auth string `json:"auth" url:"auth,omitempty"` -} - -type CommentReportResponse struct { - CommentReportView CommentReportView `json:"comment_report_view" url:"comment_report_view,omitempty"` - LemmyResponse -} - -type ResolveCommentReport struct { - ReportID int `json:"report_id" url:"report_id,omitempty"` - Resolved bool `json:"resolved" url:"resolved,omitempty"` - Auth string `json:"auth" url:"auth,omitempty"` -} - -type ListCommentReports struct { - Page Optional[int] `json:"page" url:"page,omitempty"` - Limit Optional[int] `json:"limit" url:"limit,omitempty"` - UnresolvedOnly Optional[bool] `json:"unresolved_only" url:"unresolved_only,omitempty"` - CommunityID Optional[int] `json:"community_id" url:"community_id,omitempty"` - Auth string `json:"auth" url:"auth,omitempty"` -} - -type ListCommentReportsResponse struct { - CommentReports []CommentReportView `json:"comment_reports" url:"comment_reports,omitempty"` - LemmyResponse -} diff --git a/types/comment_report.gen.go b/types/comment_report.gen.go new file mode 100644 index 0000000..87a9d3b --- /dev/null +++ b/types/comment_report.gen.go @@ -0,0 +1,21 @@ +package types + +import "time" + +type CommentReport struct { + ID int `json:"id,omitempty" url:"id,omitempty"` + CreatorID int `json:"creator_id,omitempty" url:"creator_id,omitempty"` + CommentID int `json:"comment_id,omitempty" url:"comment_id,omitempty"` + OriginalCommentText string `json:"original_comment_text,omitempty" url:"original_comment_text,omitempty"` + Reason string `json:"reason,omitempty" url:"reason,omitempty"` + Resolved bool `json:"resolved,omitempty" url:"resolved,omitempty"` + ResolverID Optional[int] `json:"resolver_id,omitempty" url:"resolver_id,omitempty"` + Published time.Time `json:"published,omitempty" url:"published,omitempty"` + Updated time.Time `json:"updated,omitempty" url:"updated,omitempty"` +} +type CommentReportForm struct { + CreatorID int `json:"creator_id,omitempty" url:"creator_id,omitempty"` + CommentID int `json:"comment_id,omitempty" url:"comment_id,omitempty"` + OriginalCommentText string `json:"original_comment_text,omitempty" url:"original_comment_text,omitempty"` + Reason string `json:"reason,omitempty" url:"reason,omitempty"` +} diff --git a/types/community.1.gen.go b/types/community.1.gen.go new file mode 100644 index 0000000..822fde6 --- /dev/null +++ b/types/community.1.gen.go @@ -0,0 +1,100 @@ +package types + +import "time" + +type Community struct { + ID int `json:"id,omitempty" url:"id,omitempty"` + Name string `json:"name,omitempty" url:"name,omitempty"` + Title string `json:"title,omitempty" url:"title,omitempty"` + Description Optional[string] `json:"description,omitempty" url:"description,omitempty"` + Removed bool `json:"removed,omitempty" url:"removed,omitempty"` + Published time.Time `json:"published,omitempty" url:"published,omitempty"` + Updated time.Time `json:"updated,omitempty" url:"updated,omitempty"` + Deleted bool `json:"deleted,omitempty" url:"deleted,omitempty"` + NSFW bool `json:"nsfw,omitempty" url:"nsfw,omitempty"` + ActorID string `json:"actor_id,omitempty" url:"actor_id,omitempty"` + Local bool `json:"local,omitempty" url:"local,omitempty"` + PrivateKey Optional[string] `json:"private_key,omitempty" url:"private_key,omitempty"` + PublicKey string `json:"public_key,omitempty" url:"public_key,omitempty"` + LastRefreshedAt time.Time `json:"last_refreshed_at,omitempty" url:"last_refreshed_at,omitempty"` + Icon Optional[string] `json:"icon,omitempty" url:"icon,omitempty"` + Banner Optional[string] `json:"banner,omitempty" url:"banner,omitempty"` + FollowersURL string `json:"followers_url,omitempty" url:"followers_url,omitempty"` + InboxURL string `json:"inbox_url,omitempty" url:"inbox_url,omitempty"` + SharedInboxURL Optional[string] `json:"shared_inbox_url,omitempty" url:"shared_inbox_url,omitempty"` + Hidden bool `json:"hidden,omitempty" url:"hidden,omitempty"` + PostingRestrictedToMods bool `json:"posting_restricted_to_mods,omitempty" url:"posting_restricted_to_mods,omitempty"` +} +type CommunitySafe struct { + ID int `json:"id,omitempty" url:"id,omitempty"` + Name string `json:"name,omitempty" url:"name,omitempty"` + Title string `json:"title,omitempty" url:"title,omitempty"` + Description Optional[string] `json:"description,omitempty" url:"description,omitempty"` + Removed bool `json:"removed,omitempty" url:"removed,omitempty"` + Published time.Time `json:"published,omitempty" url:"published,omitempty"` + Updated time.Time `json:"updated,omitempty" url:"updated,omitempty"` + Deleted bool `json:"deleted,omitempty" url:"deleted,omitempty"` + NSFW bool `json:"nsfw,omitempty" url:"nsfw,omitempty"` + ActorID string `json:"actor_id,omitempty" url:"actor_id,omitempty"` + Local bool `json:"local,omitempty" url:"local,omitempty"` + Icon Optional[string] `json:"icon,omitempty" url:"icon,omitempty"` + Banner Optional[string] `json:"banner,omitempty" url:"banner,omitempty"` + Hidden bool `json:"hidden,omitempty" url:"hidden,omitempty"` + PostingRestrictedToMods bool `json:"posting_restricted_to_mods,omitempty" url:"posting_restricted_to_mods,omitempty"` +} +type CommunityForm struct { + Name string `json:"name,omitempty" url:"name,omitempty"` + Title string `json:"title,omitempty" url:"title,omitempty"` + Description Optional[string] `json:"description,omitempty" url:"description,omitempty"` + Removed Optional[bool] `json:"removed,omitempty" url:"removed,omitempty"` + Published time.Time `json:"published,omitempty" url:"published,omitempty"` + Updated time.Time `json:"updated,omitempty" url:"updated,omitempty"` + Deleted Optional[bool] `json:"deleted,omitempty" url:"deleted,omitempty"` + NSFW Optional[bool] `json:"nsfw,omitempty" url:"nsfw,omitempty"` + ActorID Optional[string] `json:"actor_id,omitempty" url:"actor_id,omitempty"` + Local Optional[bool] `json:"local,omitempty" url:"local,omitempty"` + PrivateKey Optional[Optional[string]] `json:"private_key,omitempty" url:"private_key,omitempty"` + PublicKey Optional[string] `json:"public_key,omitempty" url:"public_key,omitempty"` + LastRefreshedAt time.Time `json:"last_refreshed_at,omitempty" url:"last_refreshed_at,omitempty"` + Icon Optional[Optional[string]] `json:"icon,omitempty" url:"icon,omitempty"` + Banner Optional[Optional[string]] `json:"banner,omitempty" url:"banner,omitempty"` + FollowersURL Optional[string] `json:"followers_url,omitempty" url:"followers_url,omitempty"` + InboxURL Optional[string] `json:"inbox_url,omitempty" url:"inbox_url,omitempty"` + SharedInboxURL Optional[Optional[string]] `json:"shared_inbox_url,omitempty" url:"shared_inbox_url,omitempty"` + Hidden Optional[bool] `json:"hidden,omitempty" url:"hidden,omitempty"` + PostingRestrictedToMods Optional[bool] `json:"posting_restricted_to_mods,omitempty" url:"posting_restricted_to_mods,omitempty"` +} +type CommunityModerator struct { + ID int32 `json:"id,omitempty" url:"id,omitempty"` + CommunityID int `json:"community_id,omitempty" url:"community_id,omitempty"` + PersonID int `json:"person_id,omitempty" url:"person_id,omitempty"` + Published time.Time `json:"published,omitempty" url:"published,omitempty"` +} +type CommunityModeratorForm struct { + CommunityID int `json:"community_id,omitempty" url:"community_id,omitempty"` + PersonID int `json:"person_id,omitempty" url:"person_id,omitempty"` +} +type CommunityPersonBan struct { + ID int32 `json:"id,omitempty" url:"id,omitempty"` + CommunityID int `json:"community_id,omitempty" url:"community_id,omitempty"` + PersonID int `json:"person_id,omitempty" url:"person_id,omitempty"` + Published time.Time `json:"published,omitempty" url:"published,omitempty"` + Expires time.Time `json:"expires,omitempty" url:"expires,omitempty"` +} +type CommunityPersonBanForm struct { + CommunityID int `json:"community_id,omitempty" url:"community_id,omitempty"` + PersonID int `json:"person_id,omitempty" url:"person_id,omitempty"` + Expires time.Time `json:"expires,omitempty" url:"expires,omitempty"` +} +type CommunityFollower struct { + ID int32 `json:"id,omitempty" url:"id,omitempty"` + CommunityID int `json:"community_id,omitempty" url:"community_id,omitempty"` + PersonID int `json:"person_id,omitempty" url:"person_id,omitempty"` + Published time.Time `json:"published,omitempty" url:"published,omitempty"` + Pending Optional[bool] `json:"pending,omitempty" url:"pending,omitempty"` +} +type CommunityFollowerForm struct { + CommunityID int `json:"community_id,omitempty" url:"community_id,omitempty"` + PersonID int `json:"person_id,omitempty" url:"person_id,omitempty"` + Pending bool `json:"pending,omitempty" url:"pending,omitempty"` +} diff --git a/types/community.gen.go b/types/community.gen.go new file mode 100644 index 0000000..50e35eb --- /dev/null +++ b/types/community.gen.go @@ -0,0 +1,111 @@ +package types + +type GetCommunity struct { + ID Optional[int] `json:"id,omitempty" url:"id,omitempty"` + Name Optional[string] `json:"name,omitempty" url:"name,omitempty"` + Auth Optional[string] `json:"auth,omitempty" url:"auth,omitempty"` +} +type GetCommunityResponse struct { + CommunityView CommunityView `json:"community_view,omitempty" url:"community_view,omitempty"` + Site Optional[Site] `json:"site,omitempty" url:"site,omitempty"` + Moderators []CommunityModeratorView `json:"moderators,omitempty" url:"moderators,omitempty"` + Online uint `json:"online,omitempty" url:"online,omitempty"` + LemmyResponse +} +type CreateCommunity struct { + Name string `json:"name,omitempty" url:"name,omitempty"` + Title string `json:"title,omitempty" url:"title,omitempty"` + Description Optional[string] `json:"description,omitempty" url:"description,omitempty"` + Icon Optional[string] `json:"icon,omitempty" url:"icon,omitempty"` + Banner Optional[string] `json:"banner,omitempty" url:"banner,omitempty"` + NSFW Optional[bool] `json:"nsfw,omitempty" url:"nsfw,omitempty"` + PostingRestrictedToMods Optional[bool] `json:"posting_restricted_to_mods,omitempty" url:"posting_restricted_to_mods,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type CommunityResponse struct { + CommunityView CommunityView `json:"community_view,omitempty" url:"community_view,omitempty"` + LemmyResponse +} +type ListCommunities struct { + Type Optional[ListingType] `json:"type_,omitempty" url:"type_,omitempty"` + Sort Optional[SortType] `json:"sort,omitempty" url:"sort,omitempty"` + Page Optional[int64] `json:"page,omitempty" url:"page,omitempty"` + Limit Optional[int64] `json:"limit,omitempty" url:"limit,omitempty"` + Auth Optional[string] `json:"auth,omitempty" url:"auth,omitempty"` +} +type ListCommunitiesResponse struct { + Communities []CommunityView `json:"communities,omitempty" url:"communities,omitempty"` + LemmyResponse +} +type BanFromCommunity struct { + CommunityID int `json:"community_id,omitempty" url:"community_id,omitempty"` + PersonID int `json:"person_id,omitempty" url:"person_id,omitempty"` + Ban bool `json:"ban,omitempty" url:"ban,omitempty"` + RemoveData Optional[bool] `json:"remove_data,omitempty" url:"remove_data,omitempty"` + Reason Optional[string] `json:"reason,omitempty" url:"reason,omitempty"` + Expires Optional[int64] `json:"expires,omitempty" url:"expires,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type BanFromCommunityResponse struct { + PersonView PersonViewSafe `json:"person_view,omitempty" url:"person_view,omitempty"` + Banned bool `json:"banned,omitempty" url:"banned,omitempty"` + LemmyResponse +} +type AddModToCommunity struct { + CommunityID int `json:"community_id,omitempty" url:"community_id,omitempty"` + PersonID int `json:"person_id,omitempty" url:"person_id,omitempty"` + Added bool `json:"added,omitempty" url:"added,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type AddModToCommunityResponse struct { + Moderators []CommunityModeratorView `json:"moderators,omitempty" url:"moderators,omitempty"` + LemmyResponse +} +type EditCommunity struct { + CommunityID int `json:"community_id,omitempty" url:"community_id,omitempty"` + Title Optional[string] `json:"title,omitempty" url:"title,omitempty"` + Description Optional[string] `json:"description,omitempty" url:"description,omitempty"` + Icon Optional[string] `json:"icon,omitempty" url:"icon,omitempty"` + Banner Optional[string] `json:"banner,omitempty" url:"banner,omitempty"` + NSFW Optional[bool] `json:"nsfw,omitempty" url:"nsfw,omitempty"` + PostingRestrictedToMods Optional[bool] `json:"posting_restricted_to_mods,omitempty" url:"posting_restricted_to_mods,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type HideCommunity struct { + CommunityID int `json:"community_id,omitempty" url:"community_id,omitempty"` + Hidden bool `json:"hidden,omitempty" url:"hidden,omitempty"` + Reason Optional[string] `json:"reason,omitempty" url:"reason,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type DeleteCommunity struct { + CommunityID int `json:"community_id,omitempty" url:"community_id,omitempty"` + Deleted bool `json:"deleted,omitempty" url:"deleted,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type RemoveCommunity struct { + CommunityID int `json:"community_id,omitempty" url:"community_id,omitempty"` + Removed bool `json:"removed,omitempty" url:"removed,omitempty"` + Reason Optional[string] `json:"reason,omitempty" url:"reason,omitempty"` + Expires Optional[int64] `json:"expires,omitempty" url:"expires,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type FollowCommunity struct { + CommunityID int `json:"community_id,omitempty" url:"community_id,omitempty"` + Follow bool `json:"follow,omitempty" url:"follow,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type BlockCommunity struct { + CommunityID int `json:"community_id,omitempty" url:"community_id,omitempty"` + Block bool `json:"block,omitempty" url:"block,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type BlockCommunityResponse struct { + CommunityView CommunityView `json:"community_view,omitempty" url:"community_view,omitempty"` + Blocked bool `json:"blocked,omitempty" url:"blocked,omitempty"` + LemmyResponse +} +type TransferCommunity struct { + CommunityID int `json:"community_id,omitempty" url:"community_id,omitempty"` + PersonID int `json:"person_id,omitempty" url:"person_id,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} diff --git a/types/community.go b/types/community.go deleted file mode 100644 index 7d28958..0000000 --- a/types/community.go +++ /dev/null @@ -1,131 +0,0 @@ -package types - -type GetCommunity struct { - ID Optional[int] `json:"id" url:"id,omitempty"` - Name Optional[string] `json:"name" url:"name,omitempty"` - Auth Optional[string] `json:"auth" url:"auth,omitempty"` -} - -type GetCommunityResponse struct { - CommunityView CommunityView `json:"community_view" url:"community_view,omitempty"` - Site Optional[Site] `json:"site" url:"site,omitempty"` - Moderators []CommunityModeratorView `json:"moderators" url:"moderators,omitempty"` - Online uint `json:"online" url:"online,omitempty"` - DiscussionLanguages []int `json:"discussion_languages" url:"discussion_languages,omitempty"` - DefaultPostLanguage Optional[int] `json:"default_post_language" url:"default_post_language,omitempty"` - LemmyResponse -} - -type CreateCommunity struct { - Name string `json:"name" url:"name,omitempty"` - Title string `json:"title" url:"title,omitempty"` - Description Optional[string] `json:"description" url:"description,omitempty"` - Icon Optional[string] `json:"icon" url:"icon,omitempty"` - Banner Optional[string] `json:"banner" url:"banner,omitempty"` - NSFW Optional[bool] `json:"nsfw" url:"nsfw,omitempty"` - PostingRestrictedToMods Optional[bool] `json:"posting_restricted_to_mods" url:"posting_restricted_to_mods,omitempty"` - Auth string `json:"auth" url:"auth,omitempty"` -} - -type CommunityResponse struct { - CommunityView CommunityView `json:"community_view" url:"community_view,omitempty"` - LemmyResponse -} - -type ListCommunities struct { - Type Optional[ListingType] `json:"type" url:"type,omitempty"` - Sort Optional[SortType] `json:"sort" url:"sort,omitempty"` - Page Optional[int64] `json:"page" url:"page,omitempty"` - Limit Optional[int64] `json:"limit" url:"limit,omitempty"` - Auth Optional[string] `json:"auth" url:"auth,omitempty"` -} - -type ListCommunitiesResponse struct { - Communities []CommunityView `json:"communities" url:"communities,omitempty"` - LemmyResponse -} - -type BanFromCommunity struct { - CommunityID int `json:"community_id" url:"community_id,omitempty"` - PersonID int `json:"person_id" url:"person_id,omitempty"` - Ban bool `json:"ban" url:"ban,omitempty"` - RemoveData Optional[bool] `json:"remove_data" url:"remove_data,omitempty"` - Reason Optional[string] `json:"reason" url:"reason,omitempty"` - Expires Optional[int64] `json:"expires" url:"expires,omitempty"` - Auth string `json:"auth" url:"auth,omitempty"` -} - -type BanFromCommunityResponse struct { - PersonView PersonViewSafe `json:"person_view" url:"person_view,omitempty"` - Banned bool `json:"banned" url:"banned,omitempty"` - LemmyResponse -} - -type AddModToCommunity struct { - CommunityID int `json:"community_id" url:"community_id,omitempty"` - PersonID int `json:"person_id" url:"person_id,omitempty"` - Added bool `json:"added" url:"added,omitempty"` - Auth string `json:"auth" url:"auth,omitempty"` -} - -type AddModToCommunityResponse struct { - Moderators []CommunityModeratorView `json:"moderators" url:"moderators,omitempty"` - LemmyResponse -} - -type EditCommunity struct { - CommunityID int `json:"community_id" url:"community_id,omitempty"` - Title Optional[string] `json:"title" url:"title,omitempty"` - Description Optional[string] `json:"description" url:"description,omitempty"` - Icon Optional[string] `json:"icon" url:"icon,omitempty"` - Banner Optional[string] `json:"banner" url:"banner,omitempty"` - NSFW Optional[bool] `json:"nsfw" url:"nsfw,omitempty"` - PostingRestrictedToMods Optional[bool] `json:"posting_restricted_to_mods" url:"posting_restricted_to_mods,omitempty"` - DiscussionLanguages Optional[[]int] `json:"discussion_languages" url:"discussion_languages,omitempty"` - Auth string `json:"auth" url:"auth,omitempty"` -} - -type HideCommunity struct { - CommunityID int `json:"community_id" url:"community_id,omitempty"` - Hidden bool `json:"hidden" url:"hidden,omitempty"` - Reason Optional[string] `json:"reason" url:"reason,omitempty"` - Auth string `json:"auth" url:"auth,omitempty"` -} - -type DeleteCommunity struct { - CommunityID int `json:"community_id" url:"community_id,omitempty"` - Deleted bool `json:"deleted" url:"deleted,omitempty"` - Auth string `json:"auth" url:"auth,omitempty"` -} - -type RemoveCommunity struct { - CommunityID int `json:"community_id" url:"community_id,omitempty"` - Removed bool `json:"removed" url:"removed,omitempty"` - Reason Optional[string] `json:"reason" url:"reason,omitempty"` - Expires Optional[int64] `json:"expires" url:"expires,omitempty"` - Auth string `json:"auth" url:"auth,omitempty"` -} - -type FollowCommunity struct { - CommunityID int `json:"community_id" url:"community_id,omitempty"` - Follow bool `json:"follow" url:"follow,omitempty"` - Auth string `json:"auth" url:"auth,omitempty"` -} - -type BlockCommunity struct { - CommunityID int `json:"community_id" url:"community_id,omitempty"` - Block bool `json:"block" url:"block,omitempty"` - Auth string `json:"auth" url:"auth,omitempty"` -} - -type BlockCommunityResponse struct { - CommunityView CommunityView `json:"community_view" url:"community_view,omitempty"` - Blocked bool `json:"blocked" url:"blocked,omitempty"` - LemmyResponse -} - -type TransferCommunity struct { - CommunityID int `json:"community_id" url:"community_id,omitempty"` - PersonID int `json:"person_id" url:"person_id,omitempty"` - Auth string `json:"auth" url:"auth,omitempty"` -} diff --git a/types/community_block.gen.go b/types/community_block.gen.go new file mode 100644 index 0000000..0c05c89 --- /dev/null +++ b/types/community_block.gen.go @@ -0,0 +1,14 @@ +package types + +import "time" + +type CommunityBlock struct { + ID int `json:"id,omitempty" url:"id,omitempty"` + PersonID int `json:"person_id,omitempty" url:"person_id,omitempty"` + CommunityID int `json:"community_id,omitempty" url:"community_id,omitempty"` + Published time.Time `json:"published,omitempty" url:"published,omitempty"` +} +type CommunityBlockForm struct { + PersonID int `json:"person_id,omitempty" url:"person_id,omitempty"` + CommunityID int `json:"community_id,omitempty" url:"community_id,omitempty"` +} diff --git a/types/email_verification.gen.go b/types/email_verification.gen.go new file mode 100644 index 0000000..6d53973 --- /dev/null +++ b/types/email_verification.gen.go @@ -0,0 +1,16 @@ +package types + +import "time" + +type EmailVerification struct { + ID int32 `json:"id,omitempty" url:"id,omitempty"` + LocalUserID int `json:"local_user_id,omitempty" url:"local_user_id,omitempty"` + Email string `json:"email,omitempty" url:"email,omitempty"` + VerificationCode string `json:"verification_code,omitempty" url:"verification_code,omitempty"` + Published time.Time `json:"published,omitempty" url:"published,omitempty"` +} +type EmailVerificationForm struct { + LocalUserID int `json:"local_user_id,omitempty" url:"local_user_id,omitempty"` + Email string `json:"email,omitempty" url:"email,omitempty"` + VerificationToken string `json:"verification_token,omitempty" url:"verification_token,omitempty"` +} diff --git a/types/lib.1.gen.go b/types/lib.1.gen.go new file mode 100644 index 0000000..71788bd --- /dev/null +++ b/types/lib.1.gen.go @@ -0,0 +1,36 @@ +package types + +type SortType string + +const ( + SortTypeActive = "Active" + SortTypeHot = "Hot" + SortTypeNew = "New" + SortTypeTopDay = "TopDay" + SortTypeTopWeek = "TopWeek" + SortTypeTopMonth = "TopMonth" + SortTypeTopYear = "TopYear" + SortTypeTopAll = "TopAll" + SortTypeMostComments = "MostComments" + SortTypeNewComments = "NewComments" +) + +type ListingType string + +const ( + ListingTypeAll = "All" + ListingTypeLocal = "Local" + ListingTypeSubscribed = "Subscribed" + ListingTypeCommunity = "Community" +) + +type SearchType string + +const ( + SearchTypeAll = "All" + SearchTypeComments = "Comments" + SearchTypePosts = "Posts" + SearchTypeCommunities = "Communities" + SearchTypeUsers = "Users" + SearchTypeUrl = "Url" +) diff --git a/types/lib.2.gen.go b/types/lib.2.gen.go new file mode 100644 index 0000000..0bd544c --- /dev/null +++ b/types/lib.2.gen.go @@ -0,0 +1,90 @@ +package types + +type UserOperation string + +const ( + UserOperationLogin = "Login" + UserOperationGetCaptcha = "GetCaptcha" + UserOperationMarkCommentAsRead = "MarkCommentAsRead" + UserOperationSaveComment = "SaveComment" + UserOperationCreateCommentLike = "CreateCommentLike" + UserOperationCreateCommentReport = "CreateCommentReport" + UserOperationResolveCommentReport = "ResolveCommentReport" + UserOperationListCommentReports = "ListCommentReports" + UserOperationCreatePostLike = "CreatePostLike" + UserOperationLockPost = "LockPost" + UserOperationStickyPost = "StickyPost" + UserOperationMarkPostAsRead = "MarkPostAsRead" + UserOperationSavePost = "SavePost" + UserOperationCreatePostReport = "CreatePostReport" + UserOperationResolvePostReport = "ResolvePostReport" + UserOperationListPostReports = "ListPostReports" + UserOperationGetReportCount = "GetReportCount" + UserOperationGetUnreadCount = "GetUnreadCount" + UserOperationVerifyEmail = "VerifyEmail" + UserOperationFollowCommunity = "FollowCommunity" + UserOperationGetReplies = "GetReplies" + UserOperationGetPersonMentions = "GetPersonMentions" + UserOperationMarkPersonMentionAsRead = "MarkPersonMentionAsRead" + UserOperationGetModlog = "GetModlog" + UserOperationBanFromCommunity = "BanFromCommunity" + UserOperationAddModToCommunity = "AddModToCommunity" + UserOperationAddAdmin = "AddAdmin" + UserOperationGetUnreadRegistrationApplicationCount = "GetUnreadRegistrationApplicationCount" + UserOperationListRegistrationApplications = "ListRegistrationApplications" + UserOperationApproveRegistrationApplication = "ApproveRegistrationApplication" + UserOperationBanPerson = "BanPerson" + UserOperationGetBannedPersons = "GetBannedPersons" + UserOperationSearch = "Search" + UserOperationResolveObject = "ResolveObject" + UserOperationMarkAllAsRead = "MarkAllAsRead" + UserOperationSaveUserSettings = "SaveUserSettings" + UserOperationTransferCommunity = "TransferCommunity" + UserOperationLeaveAdmin = "LeaveAdmin" + UserOperationPasswordReset = "PasswordReset" + UserOperationPasswordChange = "PasswordChange" + UserOperationMarkPrivateMessageAsRead = "MarkPrivateMessageAsRead" + UserOperationUserJoin = "UserJoin" + UserOperationGetSiteConfig = "GetSiteConfig" + UserOperationSaveSiteConfig = "SaveSiteConfig" + UserOperationPostJoin = "PostJoin" + UserOperationCommunityJoin = "CommunityJoin" + UserOperationModJoin = "ModJoin" + UserOperationChangePassword = "ChangePassword" + UserOperationGetSiteMetadata = "GetSiteMetadata" + UserOperationBlockCommunity = "BlockCommunity" + UserOperationBlockPerson = "BlockPerson" +) + +type UserOperationCrud string + +const ( + UserOperationCrudCreateSite = "CreateSite" + UserOperationCrudGetSite = "GetSite" + UserOperationCrudEditSite = "EditSite" + UserOperationCrudCreateCommunity = "CreateCommunity" + UserOperationCrudListCommunities = "ListCommunities" + UserOperationCrudGetCommunity = "GetCommunity" + UserOperationCrudEditCommunity = "EditCommunity" + UserOperationCrudDeleteCommunity = "DeleteCommunity" + UserOperationCrudRemoveCommunity = "RemoveCommunity" + UserOperationCrudCreatePost = "CreatePost" + UserOperationCrudGetPost = "GetPost" + UserOperationCrudGetPosts = "GetPosts" + UserOperationCrudEditPost = "EditPost" + UserOperationCrudDeletePost = "DeletePost" + UserOperationCrudRemovePost = "RemovePost" + UserOperationCrudCreateComment = "CreateComment" + UserOperationCrudGetComment = "GetComment" + UserOperationCrudGetComments = "GetComments" + UserOperationCrudEditComment = "EditComment" + UserOperationCrudDeleteComment = "DeleteComment" + UserOperationCrudRemoveComment = "RemoveComment" + UserOperationCrudRegister = "Register" + UserOperationCrudGetPersonDetails = "GetPersonDetails" + UserOperationCrudDeleteAccount = "DeleteAccount" + UserOperationCrudCreatePrivateMessage = "CreatePrivateMessage" + UserOperationCrudGetPrivateMessages = "GetPrivateMessages" + UserOperationCrudEditPrivateMessage = "EditPrivateMessage" + UserOperationCrudDeletePrivateMessage = "DeletePrivateMessage" +) diff --git a/types/lib.gen.go b/types/lib.gen.go new file mode 100644 index 0000000..ab1254f --- /dev/null +++ b/types/lib.gen.go @@ -0,0 +1 @@ +package types diff --git a/types/local_user.gen.go b/types/local_user.gen.go new file mode 100644 index 0000000..304374d --- /dev/null +++ b/types/local_user.gen.go @@ -0,0 +1,61 @@ +package types + +import "time" + +type LocalUser struct { + ID int `json:"id,omitempty" url:"id,omitempty"` + PersonID int `json:"person_id,omitempty" url:"person_id,omitempty"` + PasswordEncrypted string `json:"password_encrypted,omitempty" url:"password_encrypted,omitempty"` + Email Optional[string] `json:"email,omitempty" url:"email,omitempty"` + ShowNSFW bool `json:"show_nsfw,omitempty" url:"show_nsfw,omitempty"` + Theme string `json:"theme,omitempty" url:"theme,omitempty"` + DefaultSortType int16 `json:"default_sort_type,omitempty" url:"default_sort_type,omitempty"` + DefaultListingType int16 `json:"default_listing_type,omitempty" url:"default_listing_type,omitempty"` + Lang string `json:"lang,omitempty" url:"lang,omitempty"` + ShowAvatars bool `json:"show_avatars,omitempty" url:"show_avatars,omitempty"` + SendNotificationsToEmail bool `json:"send_notifications_to_email,omitempty" url:"send_notifications_to_email,omitempty"` + ValidatorTime time.Time `json:"validator_time,omitempty" url:"validator_time,omitempty"` + ShowBotAccounts bool `json:"show_bot_accounts,omitempty" url:"show_bot_accounts,omitempty"` + ShowScores bool `json:"show_scores,omitempty" url:"show_scores,omitempty"` + ShowReadPosts bool `json:"show_read_posts,omitempty" url:"show_read_posts,omitempty"` + ShowNewPostNotifs bool `json:"show_new_post_notifs,omitempty" url:"show_new_post_notifs,omitempty"` + EmailVerified bool `json:"email_verified,omitempty" url:"email_verified,omitempty"` + AcceptedApplication bool `json:"accepted_application,omitempty" url:"accepted_application,omitempty"` +} +type LocalUserForm struct { + PersonID Optional[int] `json:"person_id,omitempty" url:"person_id,omitempty"` + PasswordEncrypted Optional[string] `json:"password_encrypted,omitempty" url:"password_encrypted,omitempty"` + Email Optional[Optional[string]] `json:"email,omitempty" url:"email,omitempty"` + ShowNSFW Optional[bool] `json:"show_nsfw,omitempty" url:"show_nsfw,omitempty"` + Theme Optional[string] `json:"theme,omitempty" url:"theme,omitempty"` + DefaultSortType Optional[int16] `json:"default_sort_type,omitempty" url:"default_sort_type,omitempty"` + DefaultListingType Optional[int16] `json:"default_listing_type,omitempty" url:"default_listing_type,omitempty"` + Lang Optional[string] `json:"lang,omitempty" url:"lang,omitempty"` + ShowAvatars Optional[bool] `json:"show_avatars,omitempty" url:"show_avatars,omitempty"` + SendNotificationsToEmail Optional[bool] `json:"send_notifications_to_email,omitempty" url:"send_notifications_to_email,omitempty"` + ShowBotAccounts Optional[bool] `json:"show_bot_accounts,omitempty" url:"show_bot_accounts,omitempty"` + ShowScores Optional[bool] `json:"show_scores,omitempty" url:"show_scores,omitempty"` + ShowReadPosts Optional[bool] `json:"show_read_posts,omitempty" url:"show_read_posts,omitempty"` + ShowNewPostNotifs Optional[bool] `json:"show_new_post_notifs,omitempty" url:"show_new_post_notifs,omitempty"` + EmailVerified Optional[bool] `json:"email_verified,omitempty" url:"email_verified,omitempty"` + AcceptedApplication Optional[bool] `json:"accepted_application,omitempty" url:"accepted_application,omitempty"` +} +type LocalUserSettings struct { + ID int `json:"id,omitempty" url:"id,omitempty"` + PersonID int `json:"person_id,omitempty" url:"person_id,omitempty"` + Email Optional[string] `json:"email,omitempty" url:"email,omitempty"` + ShowNSFW bool `json:"show_nsfw,omitempty" url:"show_nsfw,omitempty"` + Theme string `json:"theme,omitempty" url:"theme,omitempty"` + DefaultSortType int16 `json:"default_sort_type,omitempty" url:"default_sort_type,omitempty"` + DefaultListingType int16 `json:"default_listing_type,omitempty" url:"default_listing_type,omitempty"` + Lang string `json:"lang,omitempty" url:"lang,omitempty"` + ShowAvatars bool `json:"show_avatars,omitempty" url:"show_avatars,omitempty"` + SendNotificationsToEmail bool `json:"send_notifications_to_email,omitempty" url:"send_notifications_to_email,omitempty"` + ValidatorTime time.Time `json:"validator_time,omitempty" url:"validator_time,omitempty"` + ShowBotAccounts bool `json:"show_bot_accounts,omitempty" url:"show_bot_accounts,omitempty"` + ShowScores bool `json:"show_scores,omitempty" url:"show_scores,omitempty"` + ShowReadPosts bool `json:"show_read_posts,omitempty" url:"show_read_posts,omitempty"` + ShowNewPostNotifs bool `json:"show_new_post_notifs,omitempty" url:"show_new_post_notifs,omitempty"` + EmailVerified bool `json:"email_verified,omitempty" url:"email_verified,omitempty"` + AcceptedApplication bool `json:"accepted_application,omitempty" url:"accepted_application,omitempty"` +} diff --git a/types/mod.gen.go b/types/mod.gen.go new file mode 100644 index 0000000..ab1254f --- /dev/null +++ b/types/mod.gen.go @@ -0,0 +1 @@ +package types diff --git a/types/moderator.gen.go b/types/moderator.gen.go new file mode 100644 index 0000000..38dcc6c --- /dev/null +++ b/types/moderator.gen.go @@ -0,0 +1,160 @@ +package types + +import "time" + +type ModRemovePost struct { + ID int32 `json:"id,omitempty" url:"id,omitempty"` + ModPersonID int `json:"mod_person_id,omitempty" url:"mod_person_id,omitempty"` + PostID int `json:"post_id,omitempty" url:"post_id,omitempty"` + Reason Optional[string] `json:"reason,omitempty" url:"reason,omitempty"` + Removed Optional[bool] `json:"removed,omitempty" url:"removed,omitempty"` + When time.Time `json:"when_,omitempty" url:"when_,omitempty"` +} +type ModRemovePostForm struct { + ModPersonID int `json:"mod_person_id,omitempty" url:"mod_person_id,omitempty"` + PostID int `json:"post_id,omitempty" url:"post_id,omitempty"` + Reason Optional[string] `json:"reason,omitempty" url:"reason,omitempty"` + Removed Optional[bool] `json:"removed,omitempty" url:"removed,omitempty"` +} +type ModLockPost struct { + ID int32 `json:"id,omitempty" url:"id,omitempty"` + ModPersonID int `json:"mod_person_id,omitempty" url:"mod_person_id,omitempty"` + PostID int `json:"post_id,omitempty" url:"post_id,omitempty"` + Locked Optional[bool] `json:"locked,omitempty" url:"locked,omitempty"` + When time.Time `json:"when_,omitempty" url:"when_,omitempty"` +} +type ModLockPostForm struct { + ModPersonID int `json:"mod_person_id,omitempty" url:"mod_person_id,omitempty"` + PostID int `json:"post_id,omitempty" url:"post_id,omitempty"` + Locked Optional[bool] `json:"locked,omitempty" url:"locked,omitempty"` +} +type ModStickyPost struct { + ID int32 `json:"id,omitempty" url:"id,omitempty"` + ModPersonID int `json:"mod_person_id,omitempty" url:"mod_person_id,omitempty"` + PostID int `json:"post_id,omitempty" url:"post_id,omitempty"` + Stickied Optional[bool] `json:"stickied,omitempty" url:"stickied,omitempty"` + When time.Time `json:"when_,omitempty" url:"when_,omitempty"` +} +type ModStickyPostForm struct { + ModPersonID int `json:"mod_person_id,omitempty" url:"mod_person_id,omitempty"` + PostID int `json:"post_id,omitempty" url:"post_id,omitempty"` + Stickied Optional[bool] `json:"stickied,omitempty" url:"stickied,omitempty"` +} +type ModRemoveComment struct { + ID int32 `json:"id,omitempty" url:"id,omitempty"` + ModPersonID int `json:"mod_person_id,omitempty" url:"mod_person_id,omitempty"` + CommentID int `json:"comment_id,omitempty" url:"comment_id,omitempty"` + Reason Optional[string] `json:"reason,omitempty" url:"reason,omitempty"` + Removed Optional[bool] `json:"removed,omitempty" url:"removed,omitempty"` + When time.Time `json:"when_,omitempty" url:"when_,omitempty"` +} +type ModRemoveCommentForm struct { + ModPersonID int `json:"mod_person_id,omitempty" url:"mod_person_id,omitempty"` + CommentID int `json:"comment_id,omitempty" url:"comment_id,omitempty"` + Reason Optional[string] `json:"reason,omitempty" url:"reason,omitempty"` + Removed Optional[bool] `json:"removed,omitempty" url:"removed,omitempty"` +} +type ModRemoveCommunity struct { + ID int32 `json:"id,omitempty" url:"id,omitempty"` + ModPersonID int `json:"mod_person_id,omitempty" url:"mod_person_id,omitempty"` + CommunityID int `json:"community_id,omitempty" url:"community_id,omitempty"` + Reason Optional[string] `json:"reason,omitempty" url:"reason,omitempty"` + Removed Optional[bool] `json:"removed,omitempty" url:"removed,omitempty"` + Expires time.Time `json:"expires,omitempty" url:"expires,omitempty"` + When time.Time `json:"when_,omitempty" url:"when_,omitempty"` +} +type ModRemoveCommunityForm struct { + ModPersonID int `json:"mod_person_id,omitempty" url:"mod_person_id,omitempty"` + CommunityID int `json:"community_id,omitempty" url:"community_id,omitempty"` + Reason Optional[string] `json:"reason,omitempty" url:"reason,omitempty"` + Removed Optional[bool] `json:"removed,omitempty" url:"removed,omitempty"` + Expires time.Time `json:"expires,omitempty" url:"expires,omitempty"` +} +type ModBanFromCommunity struct { + ID int32 `json:"id,omitempty" url:"id,omitempty"` + ModPersonID int `json:"mod_person_id,omitempty" url:"mod_person_id,omitempty"` + OtherPersonID int `json:"other_person_id,omitempty" url:"other_person_id,omitempty"` + CommunityID int `json:"community_id,omitempty" url:"community_id,omitempty"` + Reason Optional[string] `json:"reason,omitempty" url:"reason,omitempty"` + Banned Optional[bool] `json:"banned,omitempty" url:"banned,omitempty"` + Expires time.Time `json:"expires,omitempty" url:"expires,omitempty"` + When time.Time `json:"when_,omitempty" url:"when_,omitempty"` +} +type ModBanFromCommunityForm struct { + ModPersonID int `json:"mod_person_id,omitempty" url:"mod_person_id,omitempty"` + OtherPersonID int `json:"other_person_id,omitempty" url:"other_person_id,omitempty"` + CommunityID int `json:"community_id,omitempty" url:"community_id,omitempty"` + Reason Optional[string] `json:"reason,omitempty" url:"reason,omitempty"` + Banned Optional[bool] `json:"banned,omitempty" url:"banned,omitempty"` + Expires time.Time `json:"expires,omitempty" url:"expires,omitempty"` +} +type ModBan struct { + ID int32 `json:"id,omitempty" url:"id,omitempty"` + ModPersonID int `json:"mod_person_id,omitempty" url:"mod_person_id,omitempty"` + OtherPersonID int `json:"other_person_id,omitempty" url:"other_person_id,omitempty"` + Reason Optional[string] `json:"reason,omitempty" url:"reason,omitempty"` + Banned Optional[bool] `json:"banned,omitempty" url:"banned,omitempty"` + Expires time.Time `json:"expires,omitempty" url:"expires,omitempty"` + When time.Time `json:"when_,omitempty" url:"when_,omitempty"` +} +type ModHideCommunityForm struct { + CommunityID int `json:"community_id,omitempty" url:"community_id,omitempty"` + ModPersonID int `json:"mod_person_id,omitempty" url:"mod_person_id,omitempty"` + Hidden Optional[bool] `json:"hidden,omitempty" url:"hidden,omitempty"` + Reason Optional[string] `json:"reason,omitempty" url:"reason,omitempty"` +} +type ModHideCommunity struct { + ID int32 `json:"id,omitempty" url:"id,omitempty"` + CommunityID int `json:"community_id,omitempty" url:"community_id,omitempty"` + ModPersonID int `json:"mod_person_id,omitempty" url:"mod_person_id,omitempty"` + Reason Optional[string] `json:"reason,omitempty" url:"reason,omitempty"` + Hidden Optional[bool] `json:"hidden,omitempty" url:"hidden,omitempty"` + When time.Time `json:"when_,omitempty" url:"when_,omitempty"` +} +type ModBanForm struct { + ModPersonID int `json:"mod_person_id,omitempty" url:"mod_person_id,omitempty"` + OtherPersonID int `json:"other_person_id,omitempty" url:"other_person_id,omitempty"` + Reason Optional[string] `json:"reason,omitempty" url:"reason,omitempty"` + Banned Optional[bool] `json:"banned,omitempty" url:"banned,omitempty"` + Expires time.Time `json:"expires,omitempty" url:"expires,omitempty"` +} +type ModAddCommunity struct { + ID int32 `json:"id,omitempty" url:"id,omitempty"` + ModPersonID int `json:"mod_person_id,omitempty" url:"mod_person_id,omitempty"` + OtherPersonID int `json:"other_person_id,omitempty" url:"other_person_id,omitempty"` + CommunityID int `json:"community_id,omitempty" url:"community_id,omitempty"` + Removed Optional[bool] `json:"removed,omitempty" url:"removed,omitempty"` + When time.Time `json:"when_,omitempty" url:"when_,omitempty"` +} +type ModAddCommunityForm struct { + ModPersonID int `json:"mod_person_id,omitempty" url:"mod_person_id,omitempty"` + OtherPersonID int `json:"other_person_id,omitempty" url:"other_person_id,omitempty"` + CommunityID int `json:"community_id,omitempty" url:"community_id,omitempty"` + Removed Optional[bool] `json:"removed,omitempty" url:"removed,omitempty"` +} +type ModTransferCommunity struct { + ID int32 `json:"id,omitempty" url:"id,omitempty"` + ModPersonID int `json:"mod_person_id,omitempty" url:"mod_person_id,omitempty"` + OtherPersonID int `json:"other_person_id,omitempty" url:"other_person_id,omitempty"` + CommunityID int `json:"community_id,omitempty" url:"community_id,omitempty"` + Removed Optional[bool] `json:"removed,omitempty" url:"removed,omitempty"` + When time.Time `json:"when_,omitempty" url:"when_,omitempty"` +} +type ModTransferCommunityForm struct { + ModPersonID int `json:"mod_person_id,omitempty" url:"mod_person_id,omitempty"` + OtherPersonID int `json:"other_person_id,omitempty" url:"other_person_id,omitempty"` + CommunityID int `json:"community_id,omitempty" url:"community_id,omitempty"` + Removed Optional[bool] `json:"removed,omitempty" url:"removed,omitempty"` +} +type ModAdd struct { + ID int32 `json:"id,omitempty" url:"id,omitempty"` + ModPersonID int `json:"mod_person_id,omitempty" url:"mod_person_id,omitempty"` + OtherPersonID int `json:"other_person_id,omitempty" url:"other_person_id,omitempty"` + Removed Optional[bool] `json:"removed,omitempty" url:"removed,omitempty"` + When time.Time `json:"when_,omitempty" url:"when_,omitempty"` +} +type ModAddForm struct { + ModPersonID int `json:"mod_person_id,omitempty" url:"mod_person_id,omitempty"` + OtherPersonID int `json:"other_person_id,omitempty" url:"other_person_id,omitempty"` + Removed Optional[bool] `json:"removed,omitempty" url:"removed,omitempty"` +} diff --git a/types/others.go b/types/others.go deleted file mode 100644 index db94164..0000000 --- a/types/others.go +++ /dev/null @@ -1,162 +0,0 @@ -package types - -type UserOperation string - -const ( - UserOpLogin UserOperation = "Login" - UserOpRegister UserOperation = "Register" - UserOpGetCaptcha UserOperation = "GetCaptcha" - UserOpCreateCommunity UserOperation = "CreateCommunity" - UserOpCreatePost UserOperation = "CreatePost" - UserOpListCommunities UserOperation = "ListCommunities" - UserOpGetPost UserOperation = "GetPost" - UserOpGetCommunity UserOperation = "GetCommunity" - UserOpCreateComment UserOperation = "CreateComment" - UserOpEditComment UserOperation = "EditComment" - UserOpDeleteComment UserOperation = "DeleteComment" - UserOpRemoveComment UserOperation = "RemoveComment" - UserOpSaveComment UserOperation = "SaveComment" - UserOpCreateCommentLike UserOperation = "CreateCommentLike" - UserOpGetPosts UserOperation = "GetPosts" - UserOpCreatePostLike UserOperation = "CreatePostLike" - UserOpEditPost UserOperation = "EditPost" - UserOpDeletePost UserOperation = "DeletePost" - UserOpRemovePost UserOperation = "RemovePost" - UserOpLockPost UserOperation = "LockPost" - UserOpFeaturePost UserOperation = "FeaturePost" - UserOpMarkPostAsRead UserOperation = "MarkPostAsRead" - UserOpSavePost UserOperation = "SavePost" - UserOpEditCommunity UserOperation = "EditCommunity" - UserOpDeleteCommunity UserOperation = "DeleteCommunity" - UserOpRemoveCommunity UserOperation = "RemoveCommunity" - UserOpFollowCommunity UserOperation = "FollowCommunity" - UserOpGetPersonDetails UserOperation = "GetPersonDetails" - UserOpGetReplies UserOperation = "GetReplies" - UserOpGetPersonMentions UserOperation = "GetPersonMentions" - UserOpMarkPersonMentionAsRead UserOperation = "MarkPersonMentionAsRead" - UserOpMarkCommentReplyAsRead UserOperation = "MarkCommentReplyAsRead" - UserOpGetModlog UserOperation = "GetModlog" - UserOpBanFromCommunity UserOperation = "BanFromCommunity" - UserOpAddModToCommunity UserOperation = "AddModToCommunity" - UserOpCreateSite UserOperation = "CreateSite" - UserOpEditSite UserOperation = "EditSite" - UserOpGetSite UserOperation = "GetSite" - UserOpAddAdmin UserOperation = "AddAdmin" - UserOpGetUnreadRegistrationApplicationCount UserOperation = "GetUnreadRegistrationApplicationCount" - UserOpListRegistrationApplications UserOperation = "ListRegistrationApplications" - UserOpApproveRegistrationApplication UserOperation = "ApproveRegistrationApplication" - UserOpBanPerson UserOperation = "BanPerson" - UserOpGetBannedPersons UserOperation = "GetBannedPersons" - UserOpSearch UserOperation = "Search" - UserOpResolveObject UserOperation = "ResolveObject" - UserOpMarkAllAsRead UserOperation = "MarkAllAsRead" - UserOpSaveUserSettings UserOperation = "SaveUserSettings" - UserOpTransferCommunity UserOperation = "TransferCommunity" - UserOpLeaveAdmin UserOperation = "LeaveAdmin" - UserOpDeleteAccount UserOperation = "DeleteAccount" - UserOpPasswordReset UserOperation = "PasswordReset" - UserOpPasswordChange UserOperation = "PasswordChange" - UserOpCreatePrivateMessage UserOperation = "CreatePrivateMessage" - UserOpEditPrivateMessage UserOperation = "EditPrivateMessage" - UserOpDeletePrivateMessage UserOperation = "DeletePrivateMessage" - UserOpMarkPrivateMessageAsRead UserOperation = "MarkPrivateMessageAsRead" - UserOpCreatePrivateMessageReport UserOperation = "CreatePrivateMessageReport" - UserOpResolvePrivateMessageReport UserOperation = "ResolvePrivateMessageReport" - UserOpListPrivateMessageReports UserOperation = "ListPrivateMessageReports" - UserOpGetPrivateMessages UserOperation = "GetPrivateMessages" - UserOpUserJoin UserOperation = "UserJoin" - UserOpGetComments UserOperation = "GetComments" - UserOpPostJoin UserOperation = "PostJoin" - UserOpCommunityJoin UserOperation = "CommunityJoin" - UserOpChangePassword UserOperation = "ChangePassword" - UserOpGetSiteMetadata UserOperation = "GetSiteMetadata" - UserOpBlockCommunity UserOperation = "BlockCommunity" - UserOpBlockPerson UserOperation = "BlockPerson" - UserOpPurgePerson UserOperation = "PurgePerson" - UserOpPurgeCommunity UserOperation = "PurgeCommunity" - UserOpPurgePost UserOperation = "PurgePost" - UserOpPurgeComment UserOperation = "PurgeComment" - UserOpCreateCommentReport UserOperation = "CreateCommentReport" - UserOpResolveCommentReport UserOperation = "ResolveCommentReport" - UserOpListCommentReports UserOperation = "ListCommentReports" - UserOpCreatePostReport UserOperation = "CreatePostReport" - UserOpResolvePostReport UserOperation = "ResolvePostReport" - UserOpListPostReports UserOperation = "ListPostReports" - UserOpGetReportCount UserOperation = "GetReportCount" - UserOpGetUnreadCount UserOperation = "GetUnreadCount" - UserOpVerifyEmail UserOperation = "VerifyEmail" -) - -type SortType string - -const ( - Active SortType = "Active" - Hot SortType = "Hot" - New SortType = "New" - Old SortType = "Old" - TopDay SortType = "TopDay" - TopWeek SortType = "TopWeek" - TopMonth SortType = "TopMonth" - TopYear SortType = "TopYear" - TopAll SortType = "TopAll" - MostComments SortType = "MostComments" - NewComments SortType = "NewComments" -) - -type CommentSortType string - -const ( - CommentSortHot CommentSortType = "Hot" - CommentSortTop CommentSortType = "Top" - CommentSortNew CommentSortType = "New" - CommentSortOld CommentSortType = "Old" -) - -type ListingType string - -const ( - ListingAll ListingType = "All" - ListingLocal ListingType = "Local" - ListingSubscribed ListingType = "Subscribed" - ListingCommunity ListingType = "Community" -) - -type SearchType string - -const ( - SearchAll SearchType = "All" - SearchComments SearchType = "Comments" - SearchPosts SearchType = "Posts" - SearchCommunities SearchType = "Communities" - SearchUsers SearchType = "Users" - SearchURL SearchType = "URL" -) - -type ModlogActionType string - -const ( - ModlogAll ModlogActionType = "All" - ModlogModRemovePost ModlogActionType = "ModRemovePost" - ModlogModLockPost ModlogActionType = "ModLockPost" - ModlogModStickyPost ModlogActionType = "ModStickyPost" - ModlogModRemoveComment ModlogActionType = "ModRemoveComment" - ModlogModRemoveCommunity ModlogActionType = "ModRemoveCommunity" - ModlogModBanFromCommunity ModlogActionType = "ModBanFromCommunity" - ModlogModAddCommunity ModlogActionType = "ModAddCommunity" - ModlogModTransferCommunity ModlogActionType = "ModTransferCommunity" - ModlogModAdd ModlogActionType = "ModAdd" - ModlogModBan ModlogActionType = "ModBan" - ModlogModHideCommunity ModlogActionType = "ModHideCommunity" - ModlogAdminPurgePerson ModlogActionType = "AdminPurgePerson" - ModlogAdminPurgeCommunity ModlogActionType = "AdminPurgeCommunity" - ModlogAdminPurgePost ModlogActionType = "AdminPurgePost" - ModlogAdminPurgeComment ModlogActionType = "AdminPurgeComment" -) - -type SubscribedType string - -const ( - Subscribed SubscribedType = "Subscribed" - NotSubscribed SubscribedType = "NotSubscribed" - Pending SubscribedType = "Pending" -) diff --git a/types/password_reset_request.gen.go b/types/password_reset_request.gen.go new file mode 100644 index 0000000..9cdb8c0 --- /dev/null +++ b/types/password_reset_request.gen.go @@ -0,0 +1,14 @@ +package types + +import "time" + +type PasswordResetRequest struct { + ID int32 `json:"id,omitempty" url:"id,omitempty"` + TokenEncrypted string `json:"token_encrypted,omitempty" url:"token_encrypted,omitempty"` + Published time.Time `json:"published,omitempty" url:"published,omitempty"` + LocalUserID int `json:"local_user_id,omitempty" url:"local_user_id,omitempty"` +} +type PasswordResetRequestForm struct { + LocalUserID int `json:"local_user_id,omitempty" url:"local_user_id,omitempty"` + TokenEncrypted string `json:"token_encrypted,omitempty" url:"token_encrypted,omitempty"` +} diff --git a/types/person.1.gen.go b/types/person.1.gen.go new file mode 100644 index 0000000..13e8d45 --- /dev/null +++ b/types/person.1.gen.go @@ -0,0 +1,155 @@ +package types + +import "time" + +type Person struct { + ID int `json:"id,omitempty" url:"id,omitempty"` + Name string `json:"name,omitempty" url:"name,omitempty"` + DisplayName Optional[string] `json:"display_name,omitempty" url:"display_name,omitempty"` + Avatar Optional[string] `json:"avatar,omitempty" url:"avatar,omitempty"` + Banned bool `json:"banned,omitempty" url:"banned,omitempty"` + Published time.Time `json:"published,omitempty" url:"published,omitempty"` + Updated time.Time `json:"updated,omitempty" url:"updated,omitempty"` + ActorID string `json:"actor_id,omitempty" url:"actor_id,omitempty"` + Bio Optional[string] `json:"bio,omitempty" url:"bio,omitempty"` + Local bool `json:"local,omitempty" url:"local,omitempty"` + PrivateKey Optional[string] `json:"private_key,omitempty" url:"private_key,omitempty"` + PublicKey string `json:"public_key,omitempty" url:"public_key,omitempty"` + LastRefreshedAt time.Time `json:"last_refreshed_at,omitempty" url:"last_refreshed_at,omitempty"` + Banner Optional[string] `json:"banner,omitempty" url:"banner,omitempty"` + Deleted bool `json:"deleted,omitempty" url:"deleted,omitempty"` + InboxURL string `json:"inbox_url,omitempty" url:"inbox_url,omitempty"` + SharedInboxURL Optional[string] `json:"shared_inbox_url,omitempty" url:"shared_inbox_url,omitempty"` + MatrixUserID Optional[string] `json:"matrix_user_id,omitempty" url:"matrix_user_id,omitempty"` + Admin bool `json:"admin,omitempty" url:"admin,omitempty"` + BotAccount bool `json:"bot_account,omitempty" url:"bot_account,omitempty"` + BanExpires time.Time `json:"ban_expires,omitempty" url:"ban_expires,omitempty"` +} +type PersonSafe struct { + ID int `json:"id,omitempty" url:"id,omitempty"` + Name string `json:"name,omitempty" url:"name,omitempty"` + DisplayName Optional[string] `json:"display_name,omitempty" url:"display_name,omitempty"` + Avatar Optional[string] `json:"avatar,omitempty" url:"avatar,omitempty"` + Banned bool `json:"banned,omitempty" url:"banned,omitempty"` + Published time.Time `json:"published,omitempty" url:"published,omitempty"` + Updated time.Time `json:"updated,omitempty" url:"updated,omitempty"` + ActorID string `json:"actor_id,omitempty" url:"actor_id,omitempty"` + Bio Optional[string] `json:"bio,omitempty" url:"bio,omitempty"` + Local bool `json:"local,omitempty" url:"local,omitempty"` + Banner Optional[string] `json:"banner,omitempty" url:"banner,omitempty"` + Deleted bool `json:"deleted,omitempty" url:"deleted,omitempty"` + InboxURL string `json:"inbox_url,omitempty" url:"inbox_url,omitempty"` + SharedInboxURL Optional[string] `json:"shared_inbox_url,omitempty" url:"shared_inbox_url,omitempty"` + MatrixUserID Optional[string] `json:"matrix_user_id,omitempty" url:"matrix_user_id,omitempty"` + Admin bool `json:"admin,omitempty" url:"admin,omitempty"` + BotAccount bool `json:"bot_account,omitempty" url:"bot_account,omitempty"` + BanExpires time.Time `json:"ban_expires,omitempty" url:"ban_expires,omitempty"` +} +type PersonAlias1 struct { + ID int `json:"id,omitempty" url:"id,omitempty"` + Name string `json:"name,omitempty" url:"name,omitempty"` + DisplayName Optional[string] `json:"display_name,omitempty" url:"display_name,omitempty"` + Avatar Optional[string] `json:"avatar,omitempty" url:"avatar,omitempty"` + Banned bool `json:"banned,omitempty" url:"banned,omitempty"` + Published time.Time `json:"published,omitempty" url:"published,omitempty"` + Updated time.Time `json:"updated,omitempty" url:"updated,omitempty"` + ActorID string `json:"actor_id,omitempty" url:"actor_id,omitempty"` + Bio Optional[string] `json:"bio,omitempty" url:"bio,omitempty"` + Local bool `json:"local,omitempty" url:"local,omitempty"` + PrivateKey Optional[string] `json:"private_key,omitempty" url:"private_key,omitempty"` + PublicKey string `json:"public_key,omitempty" url:"public_key,omitempty"` + LastRefreshedAt time.Time `json:"last_refreshed_at,omitempty" url:"last_refreshed_at,omitempty"` + Banner Optional[string] `json:"banner,omitempty" url:"banner,omitempty"` + Deleted bool `json:"deleted,omitempty" url:"deleted,omitempty"` + InboxURL string `json:"inbox_url,omitempty" url:"inbox_url,omitempty"` + SharedInboxURL Optional[string] `json:"shared_inbox_url,omitempty" url:"shared_inbox_url,omitempty"` + MatrixUserID Optional[string] `json:"matrix_user_id,omitempty" url:"matrix_user_id,omitempty"` + Admin bool `json:"admin,omitempty" url:"admin,omitempty"` + BotAccount bool `json:"bot_account,omitempty" url:"bot_account,omitempty"` + BanExpires time.Time `json:"ban_expires,omitempty" url:"ban_expires,omitempty"` +} +type PersonSafeAlias1 struct { + ID int `json:"id,omitempty" url:"id,omitempty"` + Name string `json:"name,omitempty" url:"name,omitempty"` + DisplayName Optional[string] `json:"display_name,omitempty" url:"display_name,omitempty"` + Avatar Optional[string] `json:"avatar,omitempty" url:"avatar,omitempty"` + Banned bool `json:"banned,omitempty" url:"banned,omitempty"` + Published time.Time `json:"published,omitempty" url:"published,omitempty"` + Updated time.Time `json:"updated,omitempty" url:"updated,omitempty"` + ActorID string `json:"actor_id,omitempty" url:"actor_id,omitempty"` + Bio Optional[string] `json:"bio,omitempty" url:"bio,omitempty"` + Local bool `json:"local,omitempty" url:"local,omitempty"` + Banner Optional[string] `json:"banner,omitempty" url:"banner,omitempty"` + Deleted bool `json:"deleted,omitempty" url:"deleted,omitempty"` + InboxURL string `json:"inbox_url,omitempty" url:"inbox_url,omitempty"` + SharedInboxURL Optional[string] `json:"shared_inbox_url,omitempty" url:"shared_inbox_url,omitempty"` + MatrixUserID Optional[string] `json:"matrix_user_id,omitempty" url:"matrix_user_id,omitempty"` + Admin bool `json:"admin,omitempty" url:"admin,omitempty"` + BotAccount bool `json:"bot_account,omitempty" url:"bot_account,omitempty"` + BanExpires time.Time `json:"ban_expires,omitempty" url:"ban_expires,omitempty"` +} +type PersonAlias2 struct { + ID int `json:"id,omitempty" url:"id,omitempty"` + Name string `json:"name,omitempty" url:"name,omitempty"` + DisplayName Optional[string] `json:"display_name,omitempty" url:"display_name,omitempty"` + Avatar Optional[string] `json:"avatar,omitempty" url:"avatar,omitempty"` + Banned bool `json:"banned,omitempty" url:"banned,omitempty"` + Published time.Time `json:"published,omitempty" url:"published,omitempty"` + Updated time.Time `json:"updated,omitempty" url:"updated,omitempty"` + ActorID string `json:"actor_id,omitempty" url:"actor_id,omitempty"` + Bio Optional[string] `json:"bio,omitempty" url:"bio,omitempty"` + Local bool `json:"local,omitempty" url:"local,omitempty"` + PrivateKey Optional[string] `json:"private_key,omitempty" url:"private_key,omitempty"` + PublicKey string `json:"public_key,omitempty" url:"public_key,omitempty"` + LastRefreshedAt time.Time `json:"last_refreshed_at,omitempty" url:"last_refreshed_at,omitempty"` + Banner Optional[string] `json:"banner,omitempty" url:"banner,omitempty"` + Deleted bool `json:"deleted,omitempty" url:"deleted,omitempty"` + InboxURL string `json:"inbox_url,omitempty" url:"inbox_url,omitempty"` + SharedInboxURL Optional[string] `json:"shared_inbox_url,omitempty" url:"shared_inbox_url,omitempty"` + MatrixUserID Optional[string] `json:"matrix_user_id,omitempty" url:"matrix_user_id,omitempty"` + Admin bool `json:"admin,omitempty" url:"admin,omitempty"` + BotAccount bool `json:"bot_account,omitempty" url:"bot_account,omitempty"` + BanExpires time.Time `json:"ban_expires,omitempty" url:"ban_expires,omitempty"` +} +type PersonSafeAlias2 struct { + ID int `json:"id,omitempty" url:"id,omitempty"` + Name string `json:"name,omitempty" url:"name,omitempty"` + DisplayName Optional[string] `json:"display_name,omitempty" url:"display_name,omitempty"` + Avatar Optional[string] `json:"avatar,omitempty" url:"avatar,omitempty"` + Banned bool `json:"banned,omitempty" url:"banned,omitempty"` + Published time.Time `json:"published,omitempty" url:"published,omitempty"` + Updated time.Time `json:"updated,omitempty" url:"updated,omitempty"` + ActorID string `json:"actor_id,omitempty" url:"actor_id,omitempty"` + Bio Optional[string] `json:"bio,omitempty" url:"bio,omitempty"` + Local bool `json:"local,omitempty" url:"local,omitempty"` + Banner Optional[string] `json:"banner,omitempty" url:"banner,omitempty"` + Deleted bool `json:"deleted,omitempty" url:"deleted,omitempty"` + InboxURL string `json:"inbox_url,omitempty" url:"inbox_url,omitempty"` + SharedInboxURL Optional[string] `json:"shared_inbox_url,omitempty" url:"shared_inbox_url,omitempty"` + MatrixUserID Optional[string] `json:"matrix_user_id,omitempty" url:"matrix_user_id,omitempty"` + Admin bool `json:"admin,omitempty" url:"admin,omitempty"` + BotAccount bool `json:"bot_account,omitempty" url:"bot_account,omitempty"` + BanExpires time.Time `json:"ban_expires,omitempty" url:"ban_expires,omitempty"` +} +type PersonForm struct { + Name string `json:"name,omitempty" url:"name,omitempty"` + DisplayName Optional[Optional[string]] `json:"display_name,omitempty" url:"display_name,omitempty"` + Avatar Optional[Optional[string]] `json:"avatar,omitempty" url:"avatar,omitempty"` + Banned Optional[bool] `json:"banned,omitempty" url:"banned,omitempty"` + Published time.Time `json:"published,omitempty" url:"published,omitempty"` + Updated time.Time `json:"updated,omitempty" url:"updated,omitempty"` + ActorID Optional[string] `json:"actor_id,omitempty" url:"actor_id,omitempty"` + Bio Optional[Optional[string]] `json:"bio,omitempty" url:"bio,omitempty"` + Local Optional[bool] `json:"local,omitempty" url:"local,omitempty"` + PrivateKey Optional[Optional[string]] `json:"private_key,omitempty" url:"private_key,omitempty"` + PublicKey Optional[string] `json:"public_key,omitempty" url:"public_key,omitempty"` + LastRefreshedAt time.Time `json:"last_refreshed_at,omitempty" url:"last_refreshed_at,omitempty"` + Banner Optional[Optional[string]] `json:"banner,omitempty" url:"banner,omitempty"` + Deleted Optional[bool] `json:"deleted,omitempty" url:"deleted,omitempty"` + InboxURL Optional[string] `json:"inbox_url,omitempty" url:"inbox_url,omitempty"` + SharedInboxURL Optional[Optional[string]] `json:"shared_inbox_url,omitempty" url:"shared_inbox_url,omitempty"` + MatrixUserID Optional[Optional[string]] `json:"matrix_user_id,omitempty" url:"matrix_user_id,omitempty"` + Admin Optional[bool] `json:"admin,omitempty" url:"admin,omitempty"` + BotAccount Optional[bool] `json:"bot_account,omitempty" url:"bot_account,omitempty"` + BanExpires time.Time `json:"ban_expires,omitempty" url:"ban_expires,omitempty"` +} diff --git a/types/person.gen.go b/types/person.gen.go new file mode 100644 index 0000000..2c80a6a --- /dev/null +++ b/types/person.gen.go @@ -0,0 +1,228 @@ +package types + +type Login struct { + UsernameOrEmail string `json:"username_or_email,omitempty" url:"username_or_email,omitempty"` + Password string `json:"password,omitempty" url:"password,omitempty"` +} +type Register struct { + Username string `json:"username,omitempty" url:"username,omitempty"` + Password string `json:"password,omitempty" url:"password,omitempty"` + PasswordVerify string `json:"password_verify,omitempty" url:"password_verify,omitempty"` + ShowNSFW bool `json:"show_nsfw,omitempty" url:"show_nsfw,omitempty"` + Email Optional[string] `json:"email,omitempty" url:"email,omitempty"` + CaptchaUuid Optional[string] `json:"captcha_uuid,omitempty" url:"captcha_uuid,omitempty"` + CaptchaAnswer Optional[string] `json:"captcha_answer,omitempty" url:"captcha_answer,omitempty"` + Honeypot Optional[string] `json:"honeypot,omitempty" url:"honeypot,omitempty"` + Answer Optional[string] `json:"answer,omitempty" url:"answer,omitempty"` +} +type GetCaptcha struct{} +type GetCaptchaResponse struct { + Ok Optional[CaptchaResponse] `json:"ok,omitempty" url:"ok,omitempty"` + LemmyResponse +} +type CaptchaResponse struct { + Png string `json:"png,omitempty" url:"png,omitempty"` + Wav string `json:"wav,omitempty" url:"wav,omitempty"` + Uuid string `json:"uuid,omitempty" url:"uuid,omitempty"` + LemmyResponse +} +type SaveUserSettings struct { + ShowNSFW Optional[bool] `json:"show_nsfw,omitempty" url:"show_nsfw,omitempty"` + ShowScores Optional[bool] `json:"show_scores,omitempty" url:"show_scores,omitempty"` + Theme Optional[string] `json:"theme,omitempty" url:"theme,omitempty"` + DefaultSortType Optional[int16] `json:"default_sort_type,omitempty" url:"default_sort_type,omitempty"` + DefaultListingType Optional[int16] `json:"default_listing_type,omitempty" url:"default_listing_type,omitempty"` + Lang Optional[string] `json:"lang,omitempty" url:"lang,omitempty"` + Avatar Optional[string] `json:"avatar,omitempty" url:"avatar,omitempty"` + Banner Optional[string] `json:"banner,omitempty" url:"banner,omitempty"` + DisplayName Optional[string] `json:"display_name,omitempty" url:"display_name,omitempty"` + Email Optional[string] `json:"email,omitempty" url:"email,omitempty"` + Bio Optional[string] `json:"bio,omitempty" url:"bio,omitempty"` + MatrixUserID Optional[string] `json:"matrix_user_id,omitempty" url:"matrix_user_id,omitempty"` + ShowAvatars Optional[bool] `json:"show_avatars,omitempty" url:"show_avatars,omitempty"` + SendNotificationsToEmail Optional[bool] `json:"send_notifications_to_email,omitempty" url:"send_notifications_to_email,omitempty"` + BotAccount Optional[bool] `json:"bot_account,omitempty" url:"bot_account,omitempty"` + ShowBotAccounts Optional[bool] `json:"show_bot_accounts,omitempty" url:"show_bot_accounts,omitempty"` + ShowReadPosts Optional[bool] `json:"show_read_posts,omitempty" url:"show_read_posts,omitempty"` + ShowNewPostNotifs Optional[bool] `json:"show_new_post_notifs,omitempty" url:"show_new_post_notifs,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type ChangePassword struct { + NewPassword string `json:"new_password,omitempty" url:"new_password,omitempty"` + NewPasswordVerify string `json:"new_password_verify,omitempty" url:"new_password_verify,omitempty"` + OldPassword string `json:"old_password,omitempty" url:"old_password,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type LoginResponse struct { + Jwt Optional[string] `json:"jwt,omitempty" url:"jwt,omitempty"` + RegistrationCreated bool `json:"registration_created,omitempty" url:"registration_created,omitempty"` + VerifyEmailSent bool `json:"verify_email_sent,omitempty" url:"verify_email_sent,omitempty"` + LemmyResponse +} +type GetPersonDetails struct { + PersonID Optional[int] `json:"person_id,omitempty" url:"person_id,omitempty"` + Username Optional[string] `json:"username,omitempty" url:"username,omitempty"` + Sort Optional[SortType] `json:"sort,omitempty" url:"sort,omitempty"` + Page Optional[int64] `json:"page,omitempty" url:"page,omitempty"` + Limit Optional[int64] `json:"limit,omitempty" url:"limit,omitempty"` + CommunityID Optional[int] `json:"community_id,omitempty" url:"community_id,omitempty"` + SavedOnly Optional[bool] `json:"saved_only,omitempty" url:"saved_only,omitempty"` + Auth Optional[string] `json:"auth,omitempty" url:"auth,omitempty"` +} +type GetPersonDetailsResponse struct { + PersonView PersonViewSafe `json:"person_view,omitempty" url:"person_view,omitempty"` + Comments []CommentView `json:"comments,omitempty" url:"comments,omitempty"` + Posts []PostView `json:"posts,omitempty" url:"posts,omitempty"` + Moderates []CommunityModeratorView `json:"moderates,omitempty" url:"moderates,omitempty"` + LemmyResponse +} +type GetRepliesResponse struct { + Replies []CommentView `json:"replies,omitempty" url:"replies,omitempty"` + LemmyResponse +} +type GetPersonMentionsResponse struct { + Mentions []PersonMentionView `json:"mentions,omitempty" url:"mentions,omitempty"` + LemmyResponse +} +type MarkAllAsRead struct { + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type AddAdmin struct { + PersonID int `json:"person_id,omitempty" url:"person_id,omitempty"` + Added bool `json:"added,omitempty" url:"added,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type AddAdminResponse struct { + Admins []PersonViewSafe `json:"admins,omitempty" url:"admins,omitempty"` + LemmyResponse +} +type BanPerson struct { + PersonID int `json:"person_id,omitempty" url:"person_id,omitempty"` + Ban bool `json:"ban,omitempty" url:"ban,omitempty"` + RemoveData Optional[bool] `json:"remove_data,omitempty" url:"remove_data,omitempty"` + Reason Optional[string] `json:"reason,omitempty" url:"reason,omitempty"` + Expires Optional[int64] `json:"expires,omitempty" url:"expires,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type GetBannedPersons struct { + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type BannedPersonsResponse struct { + Banned []PersonViewSafe `json:"banned,omitempty" url:"banned,omitempty"` + LemmyResponse +} +type BanPersonResponse struct { + PersonView PersonViewSafe `json:"person_view,omitempty" url:"person_view,omitempty"` + Banned bool `json:"banned,omitempty" url:"banned,omitempty"` + LemmyResponse +} +type BlockPerson struct { + PersonID int `json:"person_id,omitempty" url:"person_id,omitempty"` + Block bool `json:"block,omitempty" url:"block,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type BlockPersonResponse struct { + PersonView PersonViewSafe `json:"person_view,omitempty" url:"person_view,omitempty"` + Blocked bool `json:"blocked,omitempty" url:"blocked,omitempty"` + LemmyResponse +} +type GetReplies struct { + Sort Optional[SortType] `json:"sort,omitempty" url:"sort,omitempty"` + Page Optional[int64] `json:"page,omitempty" url:"page,omitempty"` + Limit Optional[int64] `json:"limit,omitempty" url:"limit,omitempty"` + UnreadOnly Optional[bool] `json:"unread_only,omitempty" url:"unread_only,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type GetPersonMentions struct { + Sort Optional[SortType] `json:"sort,omitempty" url:"sort,omitempty"` + Page Optional[int64] `json:"page,omitempty" url:"page,omitempty"` + Limit Optional[int64] `json:"limit,omitempty" url:"limit,omitempty"` + UnreadOnly Optional[bool] `json:"unread_only,omitempty" url:"unread_only,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type MarkPersonMentionAsRead struct { + PersonMentionID int `json:"person_mention_id,omitempty" url:"person_mention_id,omitempty"` + Read bool `json:"read,omitempty" url:"read,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type PersonMentionResponse struct { + PersonMentionView PersonMentionView `json:"person_mention_view,omitempty" url:"person_mention_view,omitempty"` + LemmyResponse +} +type DeleteAccount struct { + Password string `json:"password,omitempty" url:"password,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type DeleteAccountResponse struct { + LemmyResponse +} +type PasswordReset struct { + Email string `json:"email,omitempty" url:"email,omitempty"` +} +type PasswordResetResponse struct { + LemmyResponse +} +type PasswordChangeAfterReset struct { + Token string `json:"token,omitempty" url:"token,omitempty"` + Password string `json:"password,omitempty" url:"password,omitempty"` + PasswordVerify string `json:"password_verify,omitempty" url:"password_verify,omitempty"` +} +type CreatePrivateMessage struct { + Content string `json:"content,omitempty" url:"content,omitempty"` + RecipientID int `json:"recipient_id,omitempty" url:"recipient_id,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type EditPrivateMessage struct { + PrivateMessageID int `json:"private_message_id,omitempty" url:"private_message_id,omitempty"` + Content string `json:"content,omitempty" url:"content,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type DeletePrivateMessage struct { + PrivateMessageID int `json:"private_message_id,omitempty" url:"private_message_id,omitempty"` + Deleted bool `json:"deleted,omitempty" url:"deleted,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type MarkPrivateMessageAsRead struct { + PrivateMessageID int `json:"private_message_id,omitempty" url:"private_message_id,omitempty"` + Read bool `json:"read,omitempty" url:"read,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type GetPrivateMessages struct { + UnreadOnly Optional[bool] `json:"unread_only,omitempty" url:"unread_only,omitempty"` + Page Optional[int64] `json:"page,omitempty" url:"page,omitempty"` + Limit Optional[int64] `json:"limit,omitempty" url:"limit,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type PrivateMessagesResponse struct { + PrivateMessages []PrivateMessageView `json:"private_messages,omitempty" url:"private_messages,omitempty"` + LemmyResponse +} +type PrivateMessageResponse struct { + PrivateMessageView PrivateMessageView `json:"private_message_view,omitempty" url:"private_message_view,omitempty"` + LemmyResponse +} +type GetReportCount struct { + CommunityID Optional[int] `json:"community_id,omitempty" url:"community_id,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type GetReportCountResponse struct { + CommunityID Optional[int] `json:"community_id,omitempty" url:"community_id,omitempty"` + CommentReports int64 `json:"comment_reports,omitempty" url:"comment_reports,omitempty"` + PostReports int64 `json:"post_reports,omitempty" url:"post_reports,omitempty"` + LemmyResponse +} +type GetUnreadCount struct { + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type GetUnreadCountResponse struct { + Replies int64 `json:"replies,omitempty" url:"replies,omitempty"` + Mentions int64 `json:"mentions,omitempty" url:"mentions,omitempty"` + PrivateMessages int64 `json:"private_messages,omitempty" url:"private_messages,omitempty"` + LemmyResponse +} +type VerifyEmail struct { + Token string `json:"token,omitempty" url:"token,omitempty"` +} +type VerifyEmailResponse struct { + LemmyResponse +} diff --git a/types/person.go b/types/person.go deleted file mode 100644 index 224384e..0000000 --- a/types/person.go +++ /dev/null @@ -1,243 +0,0 @@ -package types - -type Login struct { - Password string `json:"password" url:"password,omitempty"` - UsernameOrEmail string `json:"username_or_email" url:"username_or_email,omitempty"` -} - -type LoginResponse struct { - JWT Optional[string] `json:"jwt" url:"jwt,omitempty"` - RegistrationCreated bool `json:"registration_created" url:"registration_created,omitempty"` - VeriftEmailSent bool `json:"verify_email_sent" url:"verify_email_sent,omitempty"` - LemmyResponse -} - -type Register struct { - Username string `json:"username" url:"username,omitempty"` - Password string `json:"password" url:"password,omitempty"` - PasswordVerify string `json:"password_verify" url:"password_verify,omitempty"` - ShowNSFW bool `json:"show_nsfw" url:"show_nsfw,omitempty"` - Email Optional[string] `json:"email" url:"email,omitempty"` - CaptchaUuid Optional[string] `json:"captcha_uuid" url:"captcha_uuid,omitempty"` - CaptchaAnswer Optional[string] `json:"captcha_answer" url:"captcha_answer,omitempty"` - Honeypot Optional[string] `json:"honeypot" url:"honeypot,omitempty"` - Answer Optional[string] `json:"answer" url:"answer,omitempty"` -} - -type GetCaptcha struct{} - -type CaptchaResponse struct { - Png string `json:"png" url:"png,omitempty"` - Wav string `json:"wav" url:"wav,omitempty"` - Uuid string `json:"uuid" url:"uuid,omitempty"` - LemmyResponse -} - -type SaveUserSettings struct { - ShowNSFW Optional[bool] `json:"show_nsfw" url:"show_nsfw,omitempty"` - ShowScores Optional[bool] `json:"show_scores" url:"show_scores,omitempty"` - Theme Optional[string] `json:"theme" url:"theme,omitempty"` - DefaultSortType Optional[int16] `json:"default_sort_type" url:"default_sort_type,omitempty"` - DefaultListingType Optional[int16] `json:"default_listing_type" url:"default_listing_type,omitempty"` - InterfaceLanguage Optional[string] `json:"interface_language" url:"interface_language,omitempty"` - Avatar Optional[string] `json:"avatar" url:"avatar,omitempty"` - Banner Optional[string] `json:"banner" url:"banner,omitempty"` - DisplayName Optional[string] `json:"display_name" url:"display_name,omitempty"` - Email Optional[string] `json:"email" url:"email,omitempty"` - Bio Optional[string] `json:"bio" url:"bio,omitempty"` - MatrixUserID Optional[string] `json:"matrix_user_id" url:"matrix_user_id,omitempty"` - ShowAvatars Optional[bool] `json:"show_avatars" url:"show_avatars,omitempty"` - SendNotificationsToEmail Optional[bool] `json:"send_notifications_to_email" url:"send_notifications_to_email,omitempty"` - BotAccount Optional[bool] `json:"bot_account" url:"bot_account,omitempty"` - ShowBotAccounts Optional[bool] `json:"show_bot_accounts" url:"show_bot_accounts,omitempty"` - ShowReadPosts Optional[bool] `json:"show_read_posts" url:"show_read_posts,omitempty"` - ShowNewPostNotifs Optional[bool] `json:"show_new_post_notifs" url:"show_new_post_notifs,omitempty"` - DiscussionLanguages Optional[[]int] `json:"discussion_languages" url:"discussion_languages,omitempty"` - Auth string `json:"auth" url:"auth,omitempty"` -} - -type ChangePassword struct { - NewPassword string `json:"new_password" url:"new_password,omitempty"` - NewPasswordVerify string `json:"new_password_verify" url:"new_password_verify,omitempty"` - OldPassword string `json:"old_password" url:"old_password,omitempty"` - Auth string `json:"auth" url:"auth,omitempty"` -} - -type GetPersonDetails struct { - PersonID Optional[int] `json:"person_id" url:"person_id,omitempty"` - Username Optional[string] `json:"username" url:"username,omitempty"` - Sort Optional[SortType] `json:"sort" url:"sort,omitempty"` - Page Optional[int64] `json:"page" url:"page,omitempty"` - Limit Optional[int64] `json:"limit" url:"limit,omitempty"` - CommunityID Optional[int] `json:"community_id" url:"community_id,omitempty"` - SavedOnly Optional[bool] `json:"saved_only" url:"saved_only,omitempty"` - Auth Optional[string] `json:"auth" url:"auth,omitempty"` -} - -type GetPersonDetailsResponse struct { - PersonView PersonViewSafe `json:"person_view" url:"person_view,omitempty"` - Comments []CommentView `json:"comments" url:"comments,omitempty"` - Posts []PostView `json:"posts" url:"posts,omitempty"` - Moderates []CommunityModeratorView `json:"moderates" url:"moderates,omitempty"` - LemmyResponse -} - -type GetReplies struct { - Limit Optional[int] `json:"limit" url:"limit,omitempty"` - Page Optional[int] `json:"page" url:"page,omitempty"` - Sort Optional[CommentSortType] `json:"sort" url:"sort,omitempty"` - UnreadOnly Optional[bool] `json:"unread_only" url:"unread_only,omitempty"` - Auth string `json:"auth" url:"auth,omitempty"` -} - -type GetRepliesResponse struct { - Replies []CommentReplyView `json:"replies" url:"replies,omitempty"` - LemmyResponse -} - -type GetPersonMentionsResponse struct { - Mentions []PersonMentionView `json:"mentions" url:"mentions,omitempty"` - LemmyResponse -} - -type MarkAllAsRead struct { - Auth string `json:"auth" url:"auth,omitempty"` -} - -type AddAdmin struct { - PersonID int `json:"person_id" url:"person_id,omitempty"` - Added bool `json:"added" url:"added,omitempty"` - Auth string `json:"auth" url:"auth,omitempty"` -} - -type AddAdminResponse struct { - Admins []PersonViewSafe `json:"admins" url:"admins,omitempty"` - LemmyResponse -} - -type BanPerson struct { - PersonID int `json:"person_id" url:"person_id,omitempty"` - Ban bool `json:"ban" url:"ban,omitempty"` - RemoveData Optional[bool] `json:"remove_data" url:"remove_data,omitempty"` - Reason Optional[string] `json:"reason" url:"reason,omitempty"` - Expires Optional[int64] `json:"expires" url:"expires,omitempty"` - Auth string `json:"auth" url:"auth,omitempty"` -} - -type GetBannedPersons struct { - Auth string `json:"auth" url:"auth,omitempty"` -} - -type BanPersonResponse struct { - PersonView PersonViewSafe `json:"person_view" url:"person_view,omitempty"` - Banned bool `json:"banned" url:"banned,omitempty"` - LemmyResponse -} - -type BlockPerson struct { - PersonID int `json:"person_id" url:"person_id,omitempty"` - Block bool `json:"block" url:"block,omitempty"` - Auth string `json:"auth" url:"auth,omitempty"` -} - -type GetPersonMentions struct { - Sort Optional[CommentSortType] `json:"sort" url:"sort,omitempty"` - Page Optional[int64] `json:"page" url:"page,omitempty"` - Limit Optional[int64] `json:"limit" url:"limit,omitempty"` - UnreadOnly Optional[bool] `json:"unread_only" url:"unread_only,omitempty"` - Auth string `json:"auth" url:"auth,omitempty"` -} - -type MarkPersonMentionAsRead struct { - PersonMentionID int `json:"person_mention_id" url:"person_mention_id,omitempty"` - Read bool `json:"read" url:"read,omitempty"` - Auth string `json:"auth" url:"auth,omitempty"` -} - -type PersonMentionResponse struct { - PersonMentionView PersonMentionView `json:"person_mention_view" url:"person_mention_view,omitempty"` - LemmyResponse -} - -type MarkCommentReplyAsRead struct { - CommentReplyID int `json:"comment_reply_id" url:"comment_reply_id,omitempty"` - Read bool `json:"read" url:"read,omitempty"` - Auth string `json:"auth" url:"auth,omitempty"` -} - -type CommentReplyResponse struct { - CommentReplyView CommentReplyView `json:"comment_reply_view" url:"comment_reply_view,omitempty"` - LemmyResponse -} - -type DeleteAccount struct { - Password string `json:"password" url:"password,omitempty"` - Auth string `json:"auth" url:"auth,omitempty"` -} - -type DeleteAccountResponse struct { - LemmyResponse -} - -type PasswordReset struct { - Email string `json:"email" url:"email,omitempty"` -} - -type PasswordResetResponse struct { - LemmyResponse -} - -type PasswordChangeAfterReset struct { - Token string `json:"token" url:"token,omitempty"` - Password string `json:"password" url:"password,omitempty"` - PasswordVerify string `json:"password_verify" url:"password_verify,omitempty"` -} - -type GetReportCount struct { - CommunityID Optional[int] `json:"community_id" url:"community_id,omitempty"` - Auth string `json:"auth" url:"auth,omitempty"` -} - -type GetReportCountResponse struct { - CommunityID Optional[int] `json:"community_id" url:"community_id,omitempty"` - CommentReports int64 `json:"comment_reports" url:"comment_reports,omitempty"` - PostReports int64 `json:"post_reports" url:"post_reports,omitempty"` - PrivateMessageReports Optional[int64] `json:"private_message_reports" url:"private_message_reports,omitempty"` - LemmyResponse -} - -type GetUnreadCount struct { - Auth string `json:"auth" url:"auth,omitempty"` -} - -type GetUnreadCountResponse struct { - Replies int64 `json:"replies" url:"replies,omitempty"` - Mentions int64 `json:"mentions" url:"mentions,omitempty"` - PrivateMessages int64 `json:"private_messages" url:"private_messages,omitempty"` - LemmyResponse -} - -type VerifyEmail struct { - Token string `json:"token" url:"token,omitempty"` -} - -type VerifyEmailResponse struct { - LemmyResponse -} - -type BlockPersonResponse struct { - Blocked bool `json:"blocked" url:"blocked,omitempty"` - PersonView PersonViewSafe `json:"person_view" url:"person_view,omitempty"` - LemmyResponse -} - -type BannedPersonsResponse struct { - Banned []PersonViewSafe `json:"banned" url:"banned,omitempty"` - LemmyResponse -} - -type PasswordChange struct { - Password string `json:"password" url:"password,omitempty"` - PasswordVerify string `json:"password_verify" url:"password_verify,omitempty"` - Token string `json:"token" url:"token,omitempty"` -} diff --git a/types/person_block.gen.go b/types/person_block.gen.go new file mode 100644 index 0000000..7bf0111 --- /dev/null +++ b/types/person_block.gen.go @@ -0,0 +1,14 @@ +package types + +import "time" + +type PersonBlock struct { + ID int `json:"id,omitempty" url:"id,omitempty"` + PersonID int `json:"person_id,omitempty" url:"person_id,omitempty"` + TargetID int `json:"target_id,omitempty" url:"target_id,omitempty"` + Published time.Time `json:"published,omitempty" url:"published,omitempty"` +} +type PersonBlockForm struct { + PersonID int `json:"person_id,omitempty" url:"person_id,omitempty"` + TargetID int `json:"target_id,omitempty" url:"target_id,omitempty"` +} diff --git a/types/person_mention.gen.go b/types/person_mention.gen.go new file mode 100644 index 0000000..968faf9 --- /dev/null +++ b/types/person_mention.gen.go @@ -0,0 +1,16 @@ +package types + +import "time" + +type PersonMention struct { + ID int `json:"id,omitempty" url:"id,omitempty"` + RecipientID int `json:"recipient_id,omitempty" url:"recipient_id,omitempty"` + CommentID int `json:"comment_id,omitempty" url:"comment_id,omitempty"` + Read bool `json:"read,omitempty" url:"read,omitempty"` + Published time.Time `json:"published,omitempty" url:"published,omitempty"` +} +type PersonMentionForm struct { + RecipientID int `json:"recipient_id,omitempty" url:"recipient_id,omitempty"` + CommentID int `json:"comment_id,omitempty" url:"comment_id,omitempty"` + Read Optional[bool] `json:"read,omitempty" url:"read,omitempty"` +} diff --git a/types/post.1.gen.go b/types/post.1.gen.go new file mode 100644 index 0000000..9e0e474 --- /dev/null +++ b/types/post.1.gen.go @@ -0,0 +1,77 @@ +package types + +import "time" + +type Post struct { + ID int `json:"id,omitempty" url:"id,omitempty"` + Name string `json:"name,omitempty" url:"name,omitempty"` + URL Optional[string] `json:"url,omitempty" url:"url,omitempty"` + Body Optional[string] `json:"body,omitempty" url:"body,omitempty"` + CreatorID int `json:"creator_id,omitempty" url:"creator_id,omitempty"` + CommunityID int `json:"community_id,omitempty" url:"community_id,omitempty"` + Removed bool `json:"removed,omitempty" url:"removed,omitempty"` + Locked bool `json:"locked,omitempty" url:"locked,omitempty"` + Published time.Time `json:"published,omitempty" url:"published,omitempty"` + Updated time.Time `json:"updated,omitempty" url:"updated,omitempty"` + Deleted bool `json:"deleted,omitempty" url:"deleted,omitempty"` + NSFW bool `json:"nsfw,omitempty" url:"nsfw,omitempty"` + Stickied bool `json:"stickied,omitempty" url:"stickied,omitempty"` + EmbedTitle Optional[string] `json:"embed_title,omitempty" url:"embed_title,omitempty"` + EmbedDescription Optional[string] `json:"embed_description,omitempty" url:"embed_description,omitempty"` + EmbedHtml Optional[string] `json:"embed_html,omitempty" url:"embed_html,omitempty"` + ThumbnailURL Optional[string] `json:"thumbnail_url,omitempty" url:"thumbnail_url,omitempty"` + ApID string `json:"ap_id,omitempty" url:"ap_id,omitempty"` + Local bool `json:"local,omitempty" url:"local,omitempty"` +} +type PostForm struct { + Name string `json:"name,omitempty" url:"name,omitempty"` + CreatorID int `json:"creator_id,omitempty" url:"creator_id,omitempty"` + CommunityID int `json:"community_id,omitempty" url:"community_id,omitempty"` + NSFW Optional[bool] `json:"nsfw,omitempty" url:"nsfw,omitempty"` + URL Optional[string] `json:"url,omitempty" url:"url,omitempty"` + Body Optional[string] `json:"body,omitempty" url:"body,omitempty"` + Removed Optional[bool] `json:"removed,omitempty" url:"removed,omitempty"` + Locked Optional[bool] `json:"locked,omitempty" url:"locked,omitempty"` + Published time.Time `json:"published,omitempty" url:"published,omitempty"` + Updated time.Time `json:"updated,omitempty" url:"updated,omitempty"` + Deleted Optional[bool] `json:"deleted,omitempty" url:"deleted,omitempty"` + Stickied Optional[bool] `json:"stickied,omitempty" url:"stickied,omitempty"` + EmbedTitle Optional[string] `json:"embed_title,omitempty" url:"embed_title,omitempty"` + EmbedDescription Optional[string] `json:"embed_description,omitempty" url:"embed_description,omitempty"` + EmbedHtml Optional[string] `json:"embed_html,omitempty" url:"embed_html,omitempty"` + ThumbnailURL Optional[string] `json:"thumbnail_url,omitempty" url:"thumbnail_url,omitempty"` + ApID Optional[string] `json:"ap_id,omitempty" url:"ap_id,omitempty"` + Local Optional[bool] `json:"local,omitempty" url:"local,omitempty"` +} +type PostLike struct { + ID int32 `json:"id,omitempty" url:"id,omitempty"` + PostID int `json:"post_id,omitempty" url:"post_id,omitempty"` + PersonID int `json:"person_id,omitempty" url:"person_id,omitempty"` + Score int16 `json:"score,omitempty" url:"score,omitempty"` + Published time.Time `json:"published,omitempty" url:"published,omitempty"` +} +type PostLikeForm struct { + PostID int `json:"post_id,omitempty" url:"post_id,omitempty"` + PersonID int `json:"person_id,omitempty" url:"person_id,omitempty"` + Score int16 `json:"score,omitempty" url:"score,omitempty"` +} +type PostSaved struct { + ID int32 `json:"id,omitempty" url:"id,omitempty"` + PostID int `json:"post_id,omitempty" url:"post_id,omitempty"` + PersonID int `json:"person_id,omitempty" url:"person_id,omitempty"` + Published time.Time `json:"published,omitempty" url:"published,omitempty"` +} +type PostSavedForm struct { + PostID int `json:"post_id,omitempty" url:"post_id,omitempty"` + PersonID int `json:"person_id,omitempty" url:"person_id,omitempty"` +} +type PostRead struct { + ID int32 `json:"id,omitempty" url:"id,omitempty"` + PostID int `json:"post_id,omitempty" url:"post_id,omitempty"` + PersonID int `json:"person_id,omitempty" url:"person_id,omitempty"` + Published time.Time `json:"published,omitempty" url:"published,omitempty"` +} +type PostReadForm struct { + PostID int `json:"post_id,omitempty" url:"post_id,omitempty"` + PersonID int `json:"person_id,omitempty" url:"person_id,omitempty"` +} diff --git a/types/post.gen.go b/types/post.gen.go new file mode 100644 index 0000000..08622af --- /dev/null +++ b/types/post.gen.go @@ -0,0 +1,123 @@ +package types + +type CreatePost struct { + Name string `json:"name,omitempty" url:"name,omitempty"` + CommunityID int `json:"community_id,omitempty" url:"community_id,omitempty"` + URL Optional[string] `json:"url,omitempty" url:"url,omitempty"` + Body Optional[string] `json:"body,omitempty" url:"body,omitempty"` + Honeypot Optional[string] `json:"honeypot,omitempty" url:"honeypot,omitempty"` + NSFW Optional[bool] `json:"nsfw,omitempty" url:"nsfw,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type PostResponse struct { + PostView PostView `json:"post_view,omitempty" url:"post_view,omitempty"` + LemmyResponse +} +type GetPost struct { + ID int `json:"id,omitempty" url:"id,omitempty"` + Auth Optional[string] `json:"auth,omitempty" url:"auth,omitempty"` +} +type GetPostResponse struct { + PostView PostView `json:"post_view,omitempty" url:"post_view,omitempty"` + CommunityView CommunityView `json:"community_view,omitempty" url:"community_view,omitempty"` + Comments []CommentView `json:"comments,omitempty" url:"comments,omitempty"` + Moderators []CommunityModeratorView `json:"moderators,omitempty" url:"moderators,omitempty"` + Online uint `json:"online,omitempty" url:"online,omitempty"` + LemmyResponse +} +type GetPosts struct { + Type Optional[ListingType] `json:"type_,omitempty" url:"type_,omitempty"` + Sort Optional[SortType] `json:"sort,omitempty" url:"sort,omitempty"` + Page Optional[int64] `json:"page,omitempty" url:"page,omitempty"` + Limit Optional[int64] `json:"limit,omitempty" url:"limit,omitempty"` + CommunityID Optional[int] `json:"community_id,omitempty" url:"community_id,omitempty"` + CommunityName Optional[string] `json:"community_name,omitempty" url:"community_name,omitempty"` + SavedOnly Optional[bool] `json:"saved_only,omitempty" url:"saved_only,omitempty"` + Auth Optional[string] `json:"auth,omitempty" url:"auth,omitempty"` +} +type GetPostsResponse struct { + Posts []PostView `json:"posts,omitempty" url:"posts,omitempty"` + LemmyResponse +} +type CreatePostLike struct { + PostID int `json:"post_id,omitempty" url:"post_id,omitempty"` + Score int16 `json:"score,omitempty" url:"score,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type EditPost struct { + PostID int `json:"post_id,omitempty" url:"post_id,omitempty"` + Name Optional[string] `json:"name,omitempty" url:"name,omitempty"` + URL Optional[string] `json:"url,omitempty" url:"url,omitempty"` + Body Optional[string] `json:"body,omitempty" url:"body,omitempty"` + NSFW Optional[bool] `json:"nsfw,omitempty" url:"nsfw,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type DeletePost struct { + PostID int `json:"post_id,omitempty" url:"post_id,omitempty"` + Deleted bool `json:"deleted,omitempty" url:"deleted,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type RemovePost struct { + PostID int `json:"post_id,omitempty" url:"post_id,omitempty"` + Removed bool `json:"removed,omitempty" url:"removed,omitempty"` + Reason Optional[string] `json:"reason,omitempty" url:"reason,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type MarkPostAsRead struct { + PostID int `json:"post_id,omitempty" url:"post_id,omitempty"` + Read bool `json:"read,omitempty" url:"read,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type LockPost struct { + PostID int `json:"post_id,omitempty" url:"post_id,omitempty"` + Locked bool `json:"locked,omitempty" url:"locked,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type StickyPost struct { + PostID int `json:"post_id,omitempty" url:"post_id,omitempty"` + Stickied bool `json:"stickied,omitempty" url:"stickied,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type SavePost struct { + PostID int `json:"post_id,omitempty" url:"post_id,omitempty"` + Save bool `json:"save,omitempty" url:"save,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type CreatePostReport struct { + PostID int `json:"post_id,omitempty" url:"post_id,omitempty"` + Reason string `json:"reason,omitempty" url:"reason,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type PostReportResponse struct { + PostReportView PostReportView `json:"post_report_view,omitempty" url:"post_report_view,omitempty"` + LemmyResponse +} +type ResolvePostReport struct { + ReportID int `json:"report_id,omitempty" url:"report_id,omitempty"` + Resolved bool `json:"resolved,omitempty" url:"resolved,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type ListPostReports struct { + Page Optional[int64] `json:"page,omitempty" url:"page,omitempty"` + Limit Optional[int64] `json:"limit,omitempty" url:"limit,omitempty"` + UnresolvedOnly Optional[bool] `json:"unresolved_only,omitempty" url:"unresolved_only,omitempty"` + CommunityID Optional[int] `json:"community_id,omitempty" url:"community_id,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type ListPostReportsResponse struct { + PostReports []PostReportView `json:"post_reports,omitempty" url:"post_reports,omitempty"` + LemmyResponse +} +type GetSiteMetadata struct { + URL string `json:"url,omitempty" url:"url,omitempty"` +} +type GetSiteMetadataResponse struct { + Metadata SiteMetadata `json:"metadata,omitempty" url:"metadata,omitempty"` + LemmyResponse +} +type SiteMetadata struct { + Title Optional[string] `json:"title,omitempty" url:"title,omitempty"` + Description Optional[string] `json:"description,omitempty" url:"description,omitempty"` + Image Optional[string] `json:"image,omitempty" url:"image,omitempty"` + Html Optional[string] `json:"html,omitempty" url:"html,omitempty"` +} diff --git a/types/post.go b/types/post.go deleted file mode 100644 index 1a39173..0000000 --- a/types/post.go +++ /dev/null @@ -1,146 +0,0 @@ -package types - -type CreatePost struct { - Name string `json:"name" url:"name,omitempty"` - CommunityID int `json:"community_id" url:"community_id,omitempty"` - URL Optional[string] `json:"url" url:"url,omitempty"` - Body Optional[string] `json:"body" url:"body,omitempty"` - Honeypot Optional[string] `json:"honeypot" url:"honeypot,omitempty"` - NSFW Optional[bool] `json:"nsfw" url:"nsfw,omitempty"` - LanguageID Optional[int] `json:"language_id" url:"language_id,omitempty"` - Auth string `json:"auth" url:"auth,omitempty"` -} - -type PostResponse struct { - PostView PostView `json:"post_view" url:"post_view,omitempty"` - LemmyResponse -} - -type GetPost struct { - ID Optional[int] `json:"id" url:"id,omitempty"` - CommentID Optional[int] `json:"comment_id" url:"comment_id,omitempty"` - Auth Optional[string] `json:"auth" url:"auth,omitempty"` -} - -type GetPostResponse struct { - PostView PostView `json:"post_view" url:"post_view,omitempty"` - CommunityView CommunityView `json:"community_view" url:"community_view,omitempty"` - Moderators []CommunityModeratorView `json:"moderators" url:"moderators,omitempty"` - Online uint `json:"online" url:"online,omitempty"` - LemmyResponse -} - -type GetPosts struct { - Type Optional[ListingType] `json:"type" url:"type,omitempty"` - Sort Optional[SortType] `json:"sort" url:"sort,omitempty"` - Page Optional[int64] `json:"page" url:"page,omitempty"` - Limit Optional[int64] `json:"limit" url:"limit,omitempty"` - CommunityID Optional[int] `json:"community_id" url:"community_id,omitempty"` - CommunityName Optional[string] `json:"community_name" url:"community_name,omitempty"` - SavedOnly Optional[bool] `json:"saved_only" url:"saved_only,omitempty"` - Auth Optional[string] `json:"auth" url:"auth,omitempty"` -} - -type GetPostsResponse struct { - Posts []PostView `json:"posts" url:"posts,omitempty"` - LemmyResponse -} - -type CreatePostLike struct { - PostID int `json:"post_id" url:"post_id,omitempty"` - Score int16 `json:"score" url:"score,omitempty"` - Auth Optional[string] `json:"auth" url:"auth,omitempty"` -} - -type EditPost struct { - PostID int `json:"post_id" url:"post_id,omitempty"` - Name Optional[string] `json:"name" url:"name,omitempty"` - URL Optional[string] `json:"url" url:"url,omitempty"` - Body Optional[string] `json:"body" url:"body,omitempty"` - NSFW Optional[bool] `json:"nsfw" url:"nsfw,omitempty"` - LanguageID Optional[int] `json:"language_id" url:"language_id,omitempty"` - Auth Optional[string] `json:"auth" url:"auth,omitempty"` -} - -type DeletePost struct { - PostID int `json:"post_id" url:"post_id,omitempty"` - Deleted bool `json:"deleted" url:"deleted,omitempty"` - Auth Optional[string] `json:"auth" url:"auth,omitempty"` -} - -type RemovePost struct { - PostID int `json:"post_id" url:"post_id,omitempty"` - Removed bool `json:"removed" url:"removed,omitempty"` - Reason Optional[string] `json:"reason" url:"reason,omitempty"` - Auth Optional[string] `json:"auth" url:"auth,omitempty"` -} - -type MarkPostAsRead struct { - PostID int `json:"post_id" url:"post_id,omitempty"` - Read bool `json:"read" url:"read,omitempty"` - Auth Optional[string] `json:"auth" url:"auth,omitempty"` -} - -type LockPost struct { - PostID int `json:"post_id" url:"post_id,omitempty"` - Locked bool `json:"locked" url:"locked,omitempty"` - Auth Optional[string] `json:"auth" url:"auth,omitempty"` -} - -type StickyPost struct { - PostID int `json:"post_id" url:"post_id,omitempty"` - Stickied bool `json:"stickied" url:"stickied,omitempty"` - Auth Optional[string] `json:"auth" url:"auth,omitempty"` -} - -type SavePost struct { - PostID int `json:"post_id" url:"post_id,omitempty"` - Save bool `json:"save" url:"save,omitempty"` - Auth Optional[string] `json:"auth" url:"auth,omitempty"` -} - -type CreatePostReport struct { - PostID int `json:"post_id" url:"post_id,omitempty"` - Reason string `json:"reason" url:"reason,omitempty"` - Auth Optional[string] `json:"auth" url:"auth,omitempty"` -} - -type PostReportResponse struct { - PostReportView PostReportView `json:"post_report_view" url:"post_report_view,omitempty"` - LemmyResponse -} - -type ResolvePostReport struct { - ReportID int `json:"report_id" url:"report_id,omitempty"` - Resolved bool `json:"resolved" url:"resolved,omitempty"` - Auth Optional[string] `json:"auth" url:"auth,omitempty"` -} - -type ListPostReports struct { - Page Optional[int64] `json:"page" url:"page,omitempty"` - Limit Optional[int64] `json:"limit" url:"limit,omitempty"` - UnresolvedOnly Optional[bool] `json:"unresolved_only" url:"unresolved_only,omitempty"` - CommunityID Optional[int] `json:"community_id" url:"community_id,omitempty"` - Auth Optional[string] `json:"auth" url:"auth,omitempty"` -} - -type ListPostReportsResponse struct { - PostReports []PostReportView `json:"post_reports" url:"post_reports,omitempty"` - LemmyResponse -} - -type GetSiteMetadata struct { - URL string `json:"url" url:"url,omitempty"` -} - -type GetSiteMetadataResponse struct { - Metadata SiteMetadata `json:"metadata" url:"metadata,omitempty"` - LemmyResponse -} - -type SiteMetadata struct { - Title Optional[string] `json:"title" url:"title,omitempty"` - Description Optional[string] `json:"description" url:"description,omitempty"` - Image Optional[string] `json:"image" url:"image,omitempty"` - EmbedVideoURL Optional[string] `json:"embed_video_url" url:"embed_video_url,omitempty"` -} diff --git a/types/post_report.gen.go b/types/post_report.gen.go new file mode 100644 index 0000000..18a6860 --- /dev/null +++ b/types/post_report.gen.go @@ -0,0 +1,25 @@ +package types + +import "time" + +type PostReport struct { + ID int `json:"id,omitempty" url:"id,omitempty"` + CreatorID int `json:"creator_id,omitempty" url:"creator_id,omitempty"` + PostID int `json:"post_id,omitempty" url:"post_id,omitempty"` + OriginalPostName string `json:"original_post_name,omitempty" url:"original_post_name,omitempty"` + OriginalPostURL Optional[string] `json:"original_post_url,omitempty" url:"original_post_url,omitempty"` + OriginalPostBody Optional[string] `json:"original_post_body,omitempty" url:"original_post_body,omitempty"` + Reason string `json:"reason,omitempty" url:"reason,omitempty"` + Resolved bool `json:"resolved,omitempty" url:"resolved,omitempty"` + ResolverID Optional[int] `json:"resolver_id,omitempty" url:"resolver_id,omitempty"` + Published time.Time `json:"published,omitempty" url:"published,omitempty"` + Updated time.Time `json:"updated,omitempty" url:"updated,omitempty"` +} +type PostReportForm struct { + CreatorID int `json:"creator_id,omitempty" url:"creator_id,omitempty"` + PostID int `json:"post_id,omitempty" url:"post_id,omitempty"` + OriginalPostName string `json:"original_post_name,omitempty" url:"original_post_name,omitempty"` + OriginalPostURL Optional[string] `json:"original_post_url,omitempty" url:"original_post_url,omitempty"` + OriginalPostBody Optional[string] `json:"original_post_body,omitempty" url:"original_post_body,omitempty"` + Reason string `json:"reason,omitempty" url:"reason,omitempty"` +} diff --git a/types/privateMessage.go b/types/privateMessage.go deleted file mode 100644 index bc90be6..0000000 --- a/types/privateMessage.go +++ /dev/null @@ -1,71 +0,0 @@ -package types - -type CreatePrivateMessage struct { - Content string `json:"content" url:"content,omitempty"` - RecipientID int `json:"recipient_id" url:"recipient_id,omitempty"` - Auth Optional[string] `json:"auth" url:"auth,omitempty"` -} - -type EditPrivateMessage struct { - PrivateMessageID int `json:"private_message_id" url:"private_message_id,omitempty"` - Content string `json:"content" url:"content,omitempty"` - Auth Optional[string] `json:"auth" url:"auth,omitempty"` -} - -type DeletePrivateMessage struct { - PrivateMessageID int `json:"private_message_id" url:"private_message_id,omitempty"` - Deleted bool `json:"deleted" url:"deleted,omitempty"` - Auth Optional[string] `json:"auth" url:"auth,omitempty"` -} - -type MarkPrivateMessageAsRead struct { - PrivateMessageID int `json:"private_message_id" url:"private_message_id,omitempty"` - Read bool `json:"read" url:"read,omitempty"` - Auth Optional[string] `json:"auth" url:"auth,omitempty"` -} - -type GetPrivateMessages struct { - UnreadOnly Optional[bool] `json:"unread_only" url:"unread_only,omitempty"` - Page Optional[int64] `json:"page" url:"page,omitempty"` - Limit Optional[int64] `json:"limit" url:"limit,omitempty"` - Auth Optional[string] `json:"auth" url:"auth,omitempty"` -} - -type PrivateMessagesResponse struct { - PrivateMessages []PrivateMessageView `json:"private_messages" url:"private_messages,omitempty"` - LemmyResponse -} - -type PrivateMessageResponse struct { - PrivateMessageView PrivateMessageView `json:"private_message_view" url:"private_message_view,omitempty"` - LemmyResponse -} - -type CreatePrivateMessageReport struct { - PrivateMessageID int `json:"private_message_id" url:"private_message_id,omitempty"` - Reason string `json:"reason" url:"reason,omitempty"` - Auth Optional[string] `json:"auth" url:"auth,omitempty"` -} - -type PrivateMessageReportResponse struct { - PrivateMessageReportView PrivateMessageReportView `json:"private_message_report_view" url:"private_message_report_view,omitempty"` - LemmyResponse -} - -type ResolvePrivateMessageReport struct { - ReportID int `json:"report_id" url:"report_id,omitempty"` - Resolved bool `json:"resolved" url:"resolved,omitempty"` - Auth Optional[string] `json:"auth" url:"auth,omitempty"` -} - -type ListPrivateMessageReports struct { - Page Optional[int64] `json:"page" url:"page,omitempty"` - Limit Optional[int64] `json:"limit" url:"limit,omitempty"` - UnresolvedOnly Optional[bool] `json:"unresolved_only" url:"unresolved_only,omitempty"` - Auth Optional[string] `json:"auth" url:"auth,omitempty"` -} - -type ListPrivateMessageReportsResponse struct { - PrivateMessageReports []PrivateMessageReportView `json:"private_message_reports" url:"private_message_reports,omitempty"` - LemmyResponse -} diff --git a/types/private_message.gen.go b/types/private_message.gen.go new file mode 100644 index 0000000..f7b3e4e --- /dev/null +++ b/types/private_message.gen.go @@ -0,0 +1,27 @@ +package types + +import "time" + +type PrivateMessage struct { + ID int `json:"id,omitempty" url:"id,omitempty"` + CreatorID int `json:"creator_id,omitempty" url:"creator_id,omitempty"` + RecipientID int `json:"recipient_id,omitempty" url:"recipient_id,omitempty"` + Content string `json:"content,omitempty" url:"content,omitempty"` + Deleted bool `json:"deleted,omitempty" url:"deleted,omitempty"` + Read bool `json:"read,omitempty" url:"read,omitempty"` + Published time.Time `json:"published,omitempty" url:"published,omitempty"` + Updated time.Time `json:"updated,omitempty" url:"updated,omitempty"` + ApID string `json:"ap_id,omitempty" url:"ap_id,omitempty"` + Local bool `json:"local,omitempty" url:"local,omitempty"` +} +type PrivateMessageForm struct { + CreatorID int `json:"creator_id,omitempty" url:"creator_id,omitempty"` + RecipientID int `json:"recipient_id,omitempty" url:"recipient_id,omitempty"` + Content string `json:"content,omitempty" url:"content,omitempty"` + Deleted Optional[bool] `json:"deleted,omitempty" url:"deleted,omitempty"` + Read Optional[bool] `json:"read,omitempty" url:"read,omitempty"` + Published time.Time `json:"published,omitempty" url:"published,omitempty"` + Updated time.Time `json:"updated,omitempty" url:"updated,omitempty"` + ApID Optional[string] `json:"ap_id,omitempty" url:"ap_id,omitempty"` + Local Optional[bool] `json:"local,omitempty" url:"local,omitempty"` +} diff --git a/types/registration_application.gen.go b/types/registration_application.gen.go new file mode 100644 index 0000000..09ff982 --- /dev/null +++ b/types/registration_application.gen.go @@ -0,0 +1,18 @@ +package types + +import "time" + +type RegistrationApplication struct { + ID int32 `json:"id,omitempty" url:"id,omitempty"` + LocalUserID int `json:"local_user_id,omitempty" url:"local_user_id,omitempty"` + Answer string `json:"answer,omitempty" url:"answer,omitempty"` + AdminID Optional[int] `json:"admin_id,omitempty" url:"admin_id,omitempty"` + DenyReason Optional[string] `json:"deny_reason,omitempty" url:"deny_reason,omitempty"` + Published time.Time `json:"published,omitempty" url:"published,omitempty"` +} +type RegistrationApplicationForm struct { + LocalUserID Optional[int] `json:"local_user_id,omitempty" url:"local_user_id,omitempty"` + Answer Optional[string] `json:"answer,omitempty" url:"answer,omitempty"` + AdminID Optional[int] `json:"admin_id,omitempty" url:"admin_id,omitempty"` + DenyReason Optional[Optional[string]] `json:"deny_reason,omitempty" url:"deny_reason,omitempty"` +} diff --git a/types/request.gen.go b/types/request.gen.go new file mode 100644 index 0000000..ab1254f --- /dev/null +++ b/types/request.gen.go @@ -0,0 +1 @@ +package types diff --git a/types/secret.gen.go b/types/secret.gen.go new file mode 100644 index 0000000..7d919ce --- /dev/null +++ b/types/secret.gen.go @@ -0,0 +1,6 @@ +package types + +type Secret struct { + ID int32 `json:"id,omitempty" url:"id,omitempty"` + JwtSecret string `json:"jwt_secret,omitempty" url:"jwt_secret,omitempty"` +} diff --git a/types/sensitive.gen.go b/types/sensitive.gen.go new file mode 100644 index 0000000..ab1254f --- /dev/null +++ b/types/sensitive.gen.go @@ -0,0 +1 @@ +package types diff --git a/types/site.1.gen.go b/types/site.1.gen.go new file mode 100644 index 0000000..3750694 --- /dev/null +++ b/types/site.1.gen.go @@ -0,0 +1,54 @@ +package types + +import "time" + +type Site struct { + ID int32 `json:"id,omitempty" url:"id,omitempty"` + Name string `json:"name,omitempty" url:"name,omitempty"` + Sidebar Optional[string] `json:"sidebar,omitempty" url:"sidebar,omitempty"` + Published time.Time `json:"published,omitempty" url:"published,omitempty"` + Updated time.Time `json:"updated,omitempty" url:"updated,omitempty"` + EnableDownvotes bool `json:"enable_downvotes,omitempty" url:"enable_downvotes,omitempty"` + OpenRegistration bool `json:"open_registration,omitempty" url:"open_registration,omitempty"` + EnableNSFW bool `json:"enable_nsfw,omitempty" url:"enable_nsfw,omitempty"` + Icon Optional[string] `json:"icon,omitempty" url:"icon,omitempty"` + Banner Optional[string] `json:"banner,omitempty" url:"banner,omitempty"` + Description Optional[string] `json:"description,omitempty" url:"description,omitempty"` + CommunityCreationAdminOnly bool `json:"community_creation_admin_only,omitempty" url:"community_creation_admin_only,omitempty"` + RequireEmailVerification bool `json:"require_email_verification,omitempty" url:"require_email_verification,omitempty"` + RequireApplication bool `json:"require_application,omitempty" url:"require_application,omitempty"` + ApplicationQuestion Optional[string] `json:"application_question,omitempty" url:"application_question,omitempty"` + PrivateInstance bool `json:"private_instance,omitempty" url:"private_instance,omitempty"` + ActorID string `json:"actor_id,omitempty" url:"actor_id,omitempty"` + LastRefreshedAt time.Time `json:"last_refreshed_at,omitempty" url:"last_refreshed_at,omitempty"` + InboxURL string `json:"inbox_url,omitempty" url:"inbox_url,omitempty"` + PrivateKey Optional[string] `json:"private_key,omitempty" url:"private_key,omitempty"` + PublicKey string `json:"public_key,omitempty" url:"public_key,omitempty"` + DefaultTheme string `json:"default_theme,omitempty" url:"default_theme,omitempty"` + DefaultPostListingType string `json:"default_post_listing_type,omitempty" url:"default_post_listing_type,omitempty"` + LegalInformation Optional[string] `json:"legal_information,omitempty" url:"legal_information,omitempty"` +} +type SiteForm struct { + Name string `json:"name,omitempty" url:"name,omitempty"` + Sidebar Optional[Optional[string]] `json:"sidebar,omitempty" url:"sidebar,omitempty"` + Updated time.Time `json:"updated,omitempty" url:"updated,omitempty"` + EnableDownvotes Optional[bool] `json:"enable_downvotes,omitempty" url:"enable_downvotes,omitempty"` + OpenRegistration Optional[bool] `json:"open_registration,omitempty" url:"open_registration,omitempty"` + EnableNSFW Optional[bool] `json:"enable_nsfw,omitempty" url:"enable_nsfw,omitempty"` + Icon Optional[Optional[string]] `json:"icon,omitempty" url:"icon,omitempty"` + Banner Optional[Optional[string]] `json:"banner,omitempty" url:"banner,omitempty"` + Description Optional[Optional[string]] `json:"description,omitempty" url:"description,omitempty"` + CommunityCreationAdminOnly Optional[bool] `json:"community_creation_admin_only,omitempty" url:"community_creation_admin_only,omitempty"` + RequireEmailVerification Optional[bool] `json:"require_email_verification,omitempty" url:"require_email_verification,omitempty"` + RequireApplication Optional[bool] `json:"require_application,omitempty" url:"require_application,omitempty"` + ApplicationQuestion Optional[Optional[string]] `json:"application_question,omitempty" url:"application_question,omitempty"` + PrivateInstance Optional[bool] `json:"private_instance,omitempty" url:"private_instance,omitempty"` + ActorID Optional[string] `json:"actor_id,omitempty" url:"actor_id,omitempty"` + LastRefreshedAt time.Time `json:"last_refreshed_at,omitempty" url:"last_refreshed_at,omitempty"` + InboxURL Optional[string] `json:"inbox_url,omitempty" url:"inbox_url,omitempty"` + PrivateKey Optional[Optional[string]] `json:"private_key,omitempty" url:"private_key,omitempty"` + PublicKey Optional[string] `json:"public_key,omitempty" url:"public_key,omitempty"` + DefaultTheme Optional[string] `json:"default_theme,omitempty" url:"default_theme,omitempty"` + DefaultPostListingType Optional[string] `json:"default_post_listing_type,omitempty" url:"default_post_listing_type,omitempty"` + LegalInformation Optional[string] `json:"legal_information,omitempty" url:"legal_information,omitempty"` +} diff --git a/types/site.gen.go b/types/site.gen.go new file mode 100644 index 0000000..5185027 --- /dev/null +++ b/types/site.gen.go @@ -0,0 +1,160 @@ +package types + +type Search struct { + Q string `json:"q,omitempty" url:"q,omitempty"` + CommunityID Optional[int] `json:"community_id,omitempty" url:"community_id,omitempty"` + CommunityName Optional[string] `json:"community_name,omitempty" url:"community_name,omitempty"` + CreatorID Optional[int] `json:"creator_id,omitempty" url:"creator_id,omitempty"` + Type Optional[SearchType] `json:"type_,omitempty" url:"type_,omitempty"` + Sort Optional[SortType] `json:"sort,omitempty" url:"sort,omitempty"` + ListingType Optional[ListingType] `json:"listing_type,omitempty" url:"listing_type,omitempty"` + Page Optional[int64] `json:"page,omitempty" url:"page,omitempty"` + Limit Optional[int64] `json:"limit,omitempty" url:"limit,omitempty"` + Auth Optional[string] `json:"auth,omitempty" url:"auth,omitempty"` +} +type SearchResponse struct { + Type string `json:"type_,omitempty" url:"type_,omitempty"` + Comments []CommentView `json:"comments,omitempty" url:"comments,omitempty"` + Posts []PostView `json:"posts,omitempty" url:"posts,omitempty"` + Communities []CommunityView `json:"communities,omitempty" url:"communities,omitempty"` + Users []PersonViewSafe `json:"users,omitempty" url:"users,omitempty"` + LemmyResponse +} +type ResolveObject struct { + Q string `json:"q,omitempty" url:"q,omitempty"` + Auth Optional[string] `json:"auth,omitempty" url:"auth,omitempty"` +} +type ResolveObjectResponse struct { + Comment Optional[CommentView] `json:"comment,omitempty" url:"comment,omitempty"` + Post Optional[PostView] `json:"post,omitempty" url:"post,omitempty"` + Community Optional[CommunityView] `json:"community,omitempty" url:"community,omitempty"` + Person Optional[PersonViewSafe] `json:"person,omitempty" url:"person,omitempty"` + LemmyResponse +} +type GetModlog struct { + ModPersonID Optional[int] `json:"mod_person_id,omitempty" url:"mod_person_id,omitempty"` + CommunityID Optional[int] `json:"community_id,omitempty" url:"community_id,omitempty"` + Page Optional[int64] `json:"page,omitempty" url:"page,omitempty"` + Limit Optional[int64] `json:"limit,omitempty" url:"limit,omitempty"` + Auth Optional[string] `json:"auth,omitempty" url:"auth,omitempty"` +} +type GetModlogResponse struct { + RemovedPosts []ModRemovePostView `json:"removed_posts,omitempty" url:"removed_posts,omitempty"` + LockedPosts []ModLockPostView `json:"locked_posts,omitempty" url:"locked_posts,omitempty"` + StickiedPosts []ModStickyPostView `json:"stickied_posts,omitempty" url:"stickied_posts,omitempty"` + RemovedComments []ModRemoveCommentView `json:"removed_comments,omitempty" url:"removed_comments,omitempty"` + RemovedCommunities []ModRemoveCommunityView `json:"removed_communities,omitempty" url:"removed_communities,omitempty"` + BannedFromCommunity []ModBanFromCommunityView `json:"banned_from_community,omitempty" url:"banned_from_community,omitempty"` + Banned []ModBanView `json:"banned,omitempty" url:"banned,omitempty"` + AddedToCommunity []ModAddCommunityView `json:"added_to_community,omitempty" url:"added_to_community,omitempty"` + TransferredToCommunity []ModTransferCommunityView `json:"transferred_to_community,omitempty" url:"transferred_to_community,omitempty"` + Added []ModAddView `json:"added,omitempty" url:"added,omitempty"` + HiddenCommunities []ModHideCommunityView `json:"hidden_communities,omitempty" url:"hidden_communities,omitempty"` + LemmyResponse +} +type CreateSite struct { + Name string `json:"name,omitempty" url:"name,omitempty"` + Sidebar Optional[string] `json:"sidebar,omitempty" url:"sidebar,omitempty"` + Description Optional[string] `json:"description,omitempty" url:"description,omitempty"` + Icon Optional[string] `json:"icon,omitempty" url:"icon,omitempty"` + Banner Optional[string] `json:"banner,omitempty" url:"banner,omitempty"` + EnableDownvotes Optional[bool] `json:"enable_downvotes,omitempty" url:"enable_downvotes,omitempty"` + OpenRegistration Optional[bool] `json:"open_registration,omitempty" url:"open_registration,omitempty"` + EnableNSFW Optional[bool] `json:"enable_nsfw,omitempty" url:"enable_nsfw,omitempty"` + CommunityCreationAdminOnly Optional[bool] `json:"community_creation_admin_only,omitempty" url:"community_creation_admin_only,omitempty"` + RequireEmailVerification Optional[bool] `json:"require_email_verification,omitempty" url:"require_email_verification,omitempty"` + RequireApplication Optional[bool] `json:"require_application,omitempty" url:"require_application,omitempty"` + ApplicationQuestion Optional[string] `json:"application_question,omitempty" url:"application_question,omitempty"` + PrivateInstance Optional[bool] `json:"private_instance,omitempty" url:"private_instance,omitempty"` + DefaultTheme Optional[string] `json:"default_theme,omitempty" url:"default_theme,omitempty"` + DefaultPostListingType Optional[string] `json:"default_post_listing_type,omitempty" url:"default_post_listing_type,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type EditSite struct { + Name Optional[string] `json:"name,omitempty" url:"name,omitempty"` + Sidebar Optional[string] `json:"sidebar,omitempty" url:"sidebar,omitempty"` + Description Optional[string] `json:"description,omitempty" url:"description,omitempty"` + Icon Optional[string] `json:"icon,omitempty" url:"icon,omitempty"` + Banner Optional[string] `json:"banner,omitempty" url:"banner,omitempty"` + EnableDownvotes Optional[bool] `json:"enable_downvotes,omitempty" url:"enable_downvotes,omitempty"` + OpenRegistration Optional[bool] `json:"open_registration,omitempty" url:"open_registration,omitempty"` + EnableNSFW Optional[bool] `json:"enable_nsfw,omitempty" url:"enable_nsfw,omitempty"` + CommunityCreationAdminOnly Optional[bool] `json:"community_creation_admin_only,omitempty" url:"community_creation_admin_only,omitempty"` + RequireEmailVerification Optional[bool] `json:"require_email_verification,omitempty" url:"require_email_verification,omitempty"` + RequireApplication Optional[bool] `json:"require_application,omitempty" url:"require_application,omitempty"` + ApplicationQuestion Optional[string] `json:"application_question,omitempty" url:"application_question,omitempty"` + PrivateInstance Optional[bool] `json:"private_instance,omitempty" url:"private_instance,omitempty"` + DefaultTheme Optional[string] `json:"default_theme,omitempty" url:"default_theme,omitempty"` + DefaultPostListingType Optional[string] `json:"default_post_listing_type,omitempty" url:"default_post_listing_type,omitempty"` + LegalInformation Optional[string] `json:"legal_information,omitempty" url:"legal_information,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type GetSite struct { + Auth Optional[string] `json:"auth,omitempty" url:"auth,omitempty"` +} +type SiteResponse struct { + SiteView SiteView `json:"site_view,omitempty" url:"site_view,omitempty"` + LemmyResponse +} +type GetSiteResponse struct { + SiteView Optional[SiteView] `json:"site_view,omitempty" url:"site_view,omitempty"` + Admins []PersonViewSafe `json:"admins,omitempty" url:"admins,omitempty"` + Online uint `json:"online,omitempty" url:"online,omitempty"` + Version string `json:"version,omitempty" url:"version,omitempty"` + MyUser Optional[MyUserInfo] `json:"my_user,omitempty" url:"my_user,omitempty"` + FederatedInstances Optional[FederatedInstances] `json:"federated_instances,omitempty" url:"federated_instances,omitempty"` + LemmyResponse +} +type MyUserInfo struct { + LocalUserView LocalUserSettingsView `json:"local_user_view,omitempty" url:"local_user_view,omitempty"` + Follows []CommunityFollowerView `json:"follows,omitempty" url:"follows,omitempty"` + Moderates []CommunityModeratorView `json:"moderates,omitempty" url:"moderates,omitempty"` + CommunityBlocks []CommunityBlockView `json:"community_blocks,omitempty" url:"community_blocks,omitempty"` + PersonBlocks []PersonBlockView `json:"person_blocks,omitempty" url:"person_blocks,omitempty"` +} +type LeaveAdmin struct { + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type GetSiteConfig struct { + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type GetSiteConfigResponse struct { + ConfigHjson string `json:"config_hjson,omitempty" url:"config_hjson,omitempty"` + LemmyResponse +} +type SaveSiteConfig struct { + ConfigHjson string `json:"config_hjson,omitempty" url:"config_hjson,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type FederatedInstances struct { + Linked []string `json:"linked,omitempty" url:"linked,omitempty"` + Allowed Optional[[]string] `json:"allowed,omitempty" url:"allowed,omitempty"` + Blocked Optional[[]string] `json:"blocked,omitempty" url:"blocked,omitempty"` +} +type ListRegistrationApplications struct { + UnreadOnly Optional[bool] `json:"unread_only,omitempty" url:"unread_only,omitempty"` + Page Optional[int64] `json:"page,omitempty" url:"page,omitempty"` + Limit Optional[int64] `json:"limit,omitempty" url:"limit,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type ListRegistrationApplicationsResponse struct { + RegistrationApplications []RegistrationApplicationView `json:"registration_applications,omitempty" url:"registration_applications,omitempty"` + LemmyResponse +} +type ApproveRegistrationApplication struct { + ID int32 `json:"id,omitempty" url:"id,omitempty"` + Approve bool `json:"approve,omitempty" url:"approve,omitempty"` + DenyReason Optional[string] `json:"deny_reason,omitempty" url:"deny_reason,omitempty"` + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type RegistrationApplicationResponse struct { + RegistrationApplication RegistrationApplicationView `json:"registration_application,omitempty" url:"registration_application,omitempty"` + LemmyResponse +} +type GetUnreadRegistrationApplicationCount struct { + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type GetUnreadRegistrationApplicationCountResponse struct { + RegistrationApplications int64 `json:"registration_applications,omitempty" url:"registration_applications,omitempty"` + LemmyResponse +} diff --git a/types/site.go b/types/site.go deleted file mode 100644 index e0dbf29..0000000 --- a/types/site.go +++ /dev/null @@ -1,256 +0,0 @@ -package types - -type Search struct { - CommunityID Optional[int] `json:"community_id" url:"community_id,omitempty"` - CommunityName Optional[string] `json:"community_name" url:"community_name,omitempty"` - CreatorID Optional[int] `json:"creator_id" url:"creator_id,omitempty"` - Limit Optional[int] `json:"limit" url:"limit,omitempty"` - ListingType Optional[ListingType] `json:"listing_type" url:"listing_type,omitempty"` - Page Optional[int] `json:"page" url:"page,omitempty"` - Query string `json:"q" url:"q,omitempty"` - Sort Optional[SortType] `json:"sort" url:"sort,omitempty"` - Type Optional[SearchType] `json:"type_" url:"type_,omitempty"` -} - -type SearchResponse struct { - Type string `json:"type" url:"type,omitempty"` - Comments []CommentView `json:"comments" url:"comments,omitempty"` - Posts []PostView `json:"posts" url:"posts,omitempty"` - Communities []CommunityView `json:"communities" url:"communities,omitempty"` - Users []PersonViewSafe `json:"users" url:"users,omitempty"` - LemmyResponse -} - -type ResolveObject struct { - Query string `json:"q" url:"q,omitempty"` - Auth Optional[string] `json:"auth" url:"auth,omitempty"` -} - -type ResolveObjectResponse struct { - Comment Optional[CommentView] `json:"comment" url:"comment,omitempty"` - Post Optional[PostView] `json:"post" url:"post,omitempty"` - Community Optional[CommunityView] `json:"community" url:"community,omitempty"` - Person Optional[PersonViewSafe] `json:"person" url:"person,omitempty"` - LemmyResponse -} - -type GetModlog struct { - ModPersonID Optional[int] `json:"mod_person_id" url:"mod_person_id,omitempty"` - CommunityID Optional[int] `json:"community_id" url:"community_id,omitempty"` - Page Optional[int64] `json:"page" url:"page,omitempty"` - Limit Optional[int64] `json:"limit" url:"limit,omitempty"` - Auth Optional[string] `json:"auth" url:"auth,omitempty"` - Type Optional[ModlogActionType] `json:"type" url:"type,omitempty"` - OtherPersonID Optional[int] `json:"other_person_id" url:"other_person_id,omitempty"` -} - -type GetModlogResponse struct { - RemovedPosts []ModRemovePostView `json:"removed_posts" url:"removed_posts,omitempty"` - LockedPosts []ModLockPostView `json:"locked_posts" url:"locked_posts,omitempty"` - StickiedPosts []ModStickyPostView `json:"stickied_posts" url:"stickied_posts,omitempty"` - RemovedComments []ModRemoveCommentView `json:"removed_comments" url:"removed_comments,omitempty"` - RemovedCommunities []ModRemoveCommunityView `json:"removed_communities" url:"removed_communities,omitempty"` - BannedFromCommunity []ModBanFromCommunityView `json:"banned_from_community" url:"banned_from_community,omitempty"` - Banned []ModBanView `json:"banned" url:"banned,omitempty"` - AddedToCommunity []ModAddCommunityView `json:"added_to_community" url:"added_to_community,omitempty"` - TransferredToCommunity []ModTransferCommunityView `json:"transferred_to_community" url:"transferred_to_community,omitempty"` - Added []ModAddView `json:"added" url:"added,omitempty"` - AdminPurgedPersons []AdminPurgePersonView `json:"admin_purged_persons" url:"admin_purged_persons,omitempty"` - AdminPurgedCommunities []AdminPurgeCommunityView `json:"admin_purged_communities" url:"admin_purged_communities,omitempty"` - AdminPurgedPosts []AdminPurgePostView `json:"admin_purged_posts" url:"admin_purged_posts,omitempty"` - AdminPurgedComments []AdminPurgeCommentView `json:"admin_purged_comments" url:"admin_purged_comments,omitempty"` - HiddenCommunities []ModHideCommunityView `json:"hidden_communities" url:"hidden_communities,omitempty"` - LemmyResponse -} - -type CreateSite struct { - Name string `json:"name" url:"name,omitempty"` - Sidebar Optional[string] `json:"sidebar" url:"sidebar,omitempty"` - Description Optional[string] `json:"description" url:"description,omitempty"` - Icon Optional[string] `json:"icon" url:"icon,omitempty"` - Banner Optional[string] `json:"banner" url:"banner,omitempty"` - EnableDownvotes Optional[bool] `json:"enable_downvotes" url:"enable_downvotes,omitempty"` - OpenRegistration Optional[bool] `json:"open_registration" url:"open_registration,omitempty"` - EnableNSFW Optional[bool] `json:"enable_nsfw" url:"enable_nsfw,omitempty"` - CommunityCreationAdminOnly Optional[bool] `json:"community_creation_admin_only" url:"community_creation_admin_only,omitempty"` - RequireEmailVerification Optional[bool] `json:"require_email_verification" url:"require_email_verification,omitempty"` - RequireApplication Optional[bool] `json:"require_application" url:"require_application,omitempty"` - ApplicationQuestion Optional[string] `json:"application_question" url:"application_question,omitempty"` - PrivateInstance Optional[bool] `json:"private_instance" url:"private_instance,omitempty"` - DefaultTheme Optional[string] `json:"default_theme" url:"default_theme,omitempty"` - DefaultPostListingType Optional[string] `json:"default_post_listing_type" url:"default_post_listing_type,omitempty"` - LegalInformation Optional[string] `json:"legal_information" url:"legal_information,omitempty"` - ApplicationEmailAdmins Optional[bool] `json:"application_email_admins" url:"application_email_admins,omitempty"` - HideModlogModNames Optional[bool] `json:"hide_modlog_mod_names" url:"hide_modlog_mod_names,omitempty"` - DiscussionLanguages Optional[[]int] `json:"discussion_languages" url:"discussion_languages,omitempty"` - SlurFilterRegex Optional[string] `json:"slur_filter_regex" url:"slur_filter_regex,omitempty"` - ActorNameMaxLength Optional[int] `json:"actor_name_max_length" url:"actor_name_max_length,omitempty"` - RateLimitMessage Optional[int] `json:"rate_limit_message" url:"rate_limit_message,omitempty"` - RateLimitMessagePerSecond Optional[int] `json:"rate_limit_message_per_second" url:"rate_limit_message_per_second,omitempty"` - RateLimitPost Optional[int] `json:"rate_limit_post" url:"rate_limit_post,omitempty"` - RateLimitPostPerSecond Optional[int] `json:"rate_limit_post_per_second" url:"rate_limit_post_per_second,omitempty"` - RateLimitRegister Optional[int] `json:"rate_limit_register" url:"rate_limit_register,omitempty"` - RateLimitRegisterPerSecond Optional[int] `json:"rate_limit_register_per_second" url:"rate_limit_register_per_second,omitempty"` - RateLimitImage Optional[int] `json:"rate_limit_image" url:"rate_limit_image,omitempty"` - RateLimitImagePerSecond Optional[int] `json:"rate_limit_image_per_second" url:"rate_limit_image_per_second,omitempty"` - RateLimitComment Optional[int] `json:"rate_limit_comment" url:"rate_limit_comment,omitempty"` - RateLimitCommentPerSecond Optional[int] `json:"rate_limit_comment_per_second" url:"rate_limit_comment_per_second,omitempty"` - RateLimitSearch Optional[int] `json:"rate_limit_search" url:"rate_limit_search,omitempty"` - RateLimitSearchPerSecond Optional[int] `json:"rate_limit_search_per_second" url:"rate_limit_search_per_second,omitempty"` - FederationEnabled Optional[bool] `json:"federation_enabled" url:"federation_enabled,omitempty"` - FederationDebug Optional[bool] `json:"federation_debug" url:"federation_debug,omitempty"` - FederationWorkerCount Optional[int] `json:"federation_worker_count" url:"federation_worker_count,omitempty"` - CaptchaEnabled Optional[bool] `json:"captcha_enabled" url:"captcha_enabled,omitempty"` - CaptchaDifficulty Optional[string] `json:"captcha_difficulty" url:"captcha_difficulty,omitempty"` - AllowedInstances Optional[[]string] `json:"allowed_instances" url:"allowed_instances,omitempty"` - BlockedInstances Optional[[]string] `json:"blocked_instances" url:"blocked_instances,omitempty"` - Auth string `json:"auth" url:"auth,omitempty"` -} - -type EditSite struct { - Name Optional[string] `json:"name" url:"name,omitempty"` - Sidebar Optional[string] `json:"sidebar" url:"sidebar,omitempty"` - Description Optional[string] `json:"description" url:"description,omitempty"` - Icon Optional[string] `json:"icon" url:"icon,omitempty"` - Banner Optional[string] `json:"banner" url:"banner,omitempty"` - EnableDownvotes Optional[bool] `json:"enable_downvotes" url:"enable_downvotes,omitempty"` - OpenRegistration Optional[bool] `json:"open_registration" url:"open_registration,omitempty"` - EnableNSFW Optional[bool] `json:"enable_nsfw" url:"enable_nsfw,omitempty"` - CommunityCreationAdminOnly Optional[bool] `json:"community_creation_admin_only" url:"community_creation_admin_only,omitempty"` - RequireEmailVerification Optional[bool] `json:"require_email_verification" url:"require_email_verification,omitempty"` - RequireApplication Optional[bool] `json:"require_application" url:"require_application,omitempty"` - ApplicationQuestion Optional[string] `json:"application_question" url:"application_question,omitempty"` - PrivateInstance Optional[bool] `json:"private_instance" url:"private_instance,omitempty"` - DefaultTheme Optional[string] `json:"default_theme" url:"default_theme,omitempty"` - DefaultPostListingType Optional[string] `json:"default_post_listing_type" url:"default_post_listing_type,omitempty"` - LegalInformation Optional[string] `json:"legal_information" url:"legal_information,omitempty"` - ApplicationEmailAdmins Optional[bool] `json:"application_email_admins" url:"application_email_admins,omitempty"` - HideModlogModNames Optional[bool] `json:"hide_modlog_mod_names" url:"hide_modlog_mod_names,omitempty"` - DiscussionLanguages Optional[[]int] `json:"discussion_languages" url:"discussion_languages,omitempty"` - SlurFilterRegex Optional[string] `json:"slur_filter_regex" url:"slur_filter_regex,omitempty"` - ActorNameMaxLength Optional[int] `json:"actor_name_max_length" url:"actor_name_max_length,omitempty"` - RateLimitMessage Optional[int] `json:"rate_limit_message" url:"rate_limit_message,omitempty"` - RateLimitMessagePerSecond Optional[int] `json:"rate_limit_message_per_second" url:"rate_limit_message_per_second,omitempty"` - RateLimitPost Optional[int] `json:"rate_limit_post" url:"rate_limit_post,omitempty"` - RateLimitPostPerSecond Optional[int] `json:"rate_limit_post_per_second" url:"rate_limit_post_per_second,omitempty"` - RateLimitRegister Optional[int] `json:"rate_limit_register" url:"rate_limit_register,omitempty"` - RateLimitRegisterPerSecond Optional[int] `json:"rate_limit_register_per_second" url:"rate_limit_register_per_second,omitempty"` - RateLimitImage Optional[int] `json:"rate_limit_image" url:"rate_limit_image,omitempty"` - RateLimitImagePerSecond Optional[int] `json:"rate_limit_image_per_second" url:"rate_limit_image_per_second,omitempty"` - RateLimitComment Optional[int] `json:"rate_limit_comment" url:"rate_limit_comment,omitempty"` - RateLimitCommentPerSecond Optional[int] `json:"rate_limit_comment_per_second" url:"rate_limit_comment_per_second,omitempty"` - RateLimitSearch Optional[int] `json:"rate_limit_search" url:"rate_limit_search,omitempty"` - RateLimitSearchPerSecond Optional[int] `json:"rate_limit_search_per_second" url:"rate_limit_search_per_second,omitempty"` - FederationEnabled Optional[bool] `json:"federation_enabled" url:"federation_enabled,omitempty"` - FederationDebug Optional[bool] `json:"federation_debug" url:"federation_debug,omitempty"` - FederationWorkerCount Optional[int] `json:"federation_worker_count" url:"federation_worker_count,omitempty"` - CaptchaEnabled Optional[bool] `json:"captcha_enabled" url:"captcha_enabled,omitempty"` - CaptchaDifficulty Optional[string] `json:"captcha_difficulty" url:"captcha_difficulty,omitempty"` - AllowedInstances Optional[[]string] `json:"allowed_instances" url:"allowed_instances,omitempty"` - BlockedInstances Optional[[]string] `json:"blocked_instances" url:"blocked_instances,omitempty"` - Taglines Optional[[]string] `json:"taglines" url:"taglines,omitempty"` - Auth string `json:"auth" url:"auth,omitempty"` -} - -type GetSite struct { - Auth Optional[string] `json:"auth" url:"auth,omitempty"` -} - -type SiteResponse struct { - SiteView SiteView `json:"site_view" url:"site_view,omitempty"` - LemmyResponse -} - -type GetSiteResponse struct { - SiteView SiteView `json:"site_view" url:"site_view,omitempty"` - Admins []PersonViewSafe `json:"admins" url:"admins,omitempty"` - Online int `json:"online" url:"online,omitempty"` - Version string `json:"version" url:"version,omitempty"` - MyUser Optional[MyUserInfo] `json:"my_user" url:"my_user,omitempty"` - FederatedInstances Optional[FederatedInstances] `json:"federated_instances" url:"federated_instances,omitempty"` - AllLanguages []Language `json:"all_languages" url:"all_languages,omitempty"` - DiscussionLanguages []int `json:"discussion_languages" url:"discussion_languages,omitempty"` - Taglines Optional[[]Tagline] `json:"taglines" url:"taglines,omitempty"` - LemmyResponse -} - -type MyUserInfo struct { - LocalUserView LocalUserSettingsView `json:"local_user_view" url:"local_user_view,omitempty"` - Follows []CommunityFollowerView `json:"follows" url:"follows,omitempty"` - Moderates []CommunityModeratorView `json:"moderates" url:"moderates,omitempty"` - CommunityBlocks []CommunityBlockView `json:"community_blocks" url:"community_blocks,omitempty"` - PersonBlocks []PersonBlockView `json:"person_blocks" url:"person_blocks,omitempty"` - DiscussionLanguages []Language `json:"discussion_languages" url:"discussion_languages,omitempty"` -} - -type LeaveAdmin struct { - Auth string `json:"auth" url:"auth,omitempty"` -} - -type FederatedInstances struct { - Linked []string `json:"linked" url:"linked,omitempty"` - Allowed Optional[[]string] `json:"allowed" url:"allowed,omitempty"` - Blocked Optional[[]string] `json:"blocked" url:"blocked,omitempty"` -} - -type PurgePerson struct { - PersonID int `json:"person_id" url:"person_id,omitempty"` - Reason Optional[string] `json:"reason" url:"reason,omitempty"` - Auth string `json:"auth" url:"auth,omitempty"` -} - -type PurgeCommunity struct { - CommunityID int `json:"community_id" url:"community_id,omitempty"` - Reason Optional[string] `json:"reason" url:"reason,omitempty"` - Auth string `json:"auth" url:"auth,omitempty"` -} - -type PurgePost struct { - PostID int `json:"post_id" url:"post_id,omitempty"` - Reason Optional[string] `json:"reason" url:"reason,omitempty"` - Auth string `json:"auth" url:"auth,omitempty"` -} - -type PurgeComment struct { - CommentID int `json:"comment_id" url:"comment_id,omitempty"` - Reason Optional[string] `json:"reason" url:"reason,omitempty"` - Auth string `json:"auth" url:"auth,omitempty"` -} - -type PurgeItemResponse struct { - Success bool `json:"success" url:"success,omitempty"` - LemmyResponse -} - -type ListRegistrationApplications struct { - UnreadOnly Optional[bool] `json:"unread_only" url:"unread_only,omitempty"` - Page Optional[int] `json:"page" url:"page,omitempty"` - Limit Optional[int] `json:"limit" url:"limit,omitempty"` - Auth string `json:"auth" url:"auth,omitempty"` -} - -type ListRegistrationApplicationsResponse struct { - RegistrationApplications []RegistrationApplicationView `json:"registration_applications" url:"registration_applications,omitempty"` - LemmyResponse -} - -type ApproveRegistrationApplication struct { - ID int `json:"id" url:"id,omitempty"` - Approve bool `json:"approve" url:"approve,omitempty"` - DenyReason Optional[string] `json:"deny_reason" url:"deny_reason,omitempty"` - Auth string `json:"auth" url:"auth,omitempty"` -} - -type RegistrationApplicationResponse struct { - RegistrationApplication RegistrationApplicationView `json:"registration_application" url:"registration_application,omitempty"` - LemmyResponse -} - -type GetUnreadRegistrationApplicationCount struct { - Auth string `json:"auth" url:"auth,omitempty"` -} - -type GetUnreadRegistrationApplicationCountResponse struct { - RegistrationApplications int `json:"registration_applications" url:"registration_applications,omitempty"` - LemmyResponse -} diff --git a/types/source.go b/types/source.go deleted file mode 100644 index 57b8d96..0000000 --- a/types/source.go +++ /dev/null @@ -1,402 +0,0 @@ -package types - -import "time" - -type LocalUserSettings struct { - ID int `json:"id" url:"id,omitempty"` - PersonID int `json:"person_id" url:"person_id,omitempty"` - Email Optional[string] `json:"email" url:"email,omitempty"` - ShowNSFW bool `json:"show_nsfw" url:"show_nsfw,omitempty"` - Theme string `json:"theme" url:"theme,omitempty"` - DefaultSortType int `json:"default_sort_type" url:"default_sort_type,omitempty"` - DefaultListingType int `json:"default_listing_type" url:"default_listing_type,omitempty"` - InterfaceLanguage string `json:"interface_language" url:"interface_language,omitempty"` - ShowAvatars bool `json:"show_avatars" url:"show_avatars,omitempty"` - SendNotifications bool `json:"send_notifications_to_email" url:"send_notifications_to_email,omitempty"` - ValidatorTime string `json:"validator_time" url:"validator_time,omitempty"` - ShowBotAccounts bool `json:"show_bot_accounts" url:"show_bot_accounts,omitempty"` - ShowScores bool `json:"show_scores" url:"show_scores,omitempty"` - ShowReadPosts bool `json:"show_read_posts" url:"show_read_posts,omitempty"` - ShowNewPostNotifs bool `json:"show_new_post_notifs" url:"show_new_post_notifs,omitempty"` - EmailVerified bool `json:"email_verified" url:"email_verified,omitempty"` - AcceptedApplication bool `json:"accepted_application" url:"accepted_application,omitempty"` -} - -type PersonSafe struct { - ID int `json:"id" url:"id,omitempty"` - Name string `json:"name" url:"name,omitempty"` - DisplayName Optional[string] `json:"display_name" url:"display_name,omitempty"` - Avatar Optional[string] `json:"avatar" url:"avatar,omitempty"` - Banned bool `json:"banned" url:"banned,omitempty"` - Published string `json:"published" url:"published,omitempty"` - Updated Optional[string] `json:"updated" url:"updated,omitempty"` - ActorID string `json:"actor_id" url:"actor_id,omitempty"` - Bio Optional[string] `json:"bio" url:"bio,omitempty"` - Local bool `json:"local" url:"local,omitempty"` - Banner Optional[string] `json:"banner" url:"banner,omitempty"` - Deleted bool `json:"deleted" url:"deleted,omitempty"` - InboxURL string `json:"inbox_url" url:"inbox_url,omitempty"` - SharedInboxURL Optional[string] `json:"shared_inbox_url" url:"shared_inbox_url,omitempty"` - MatrixUserID Optional[string] `json:"matrix_user_id" url:"matrix_user_id,omitempty"` - Admin bool `json:"admin" url:"admin,omitempty"` - BotAccount bool `json:"bot_account" url:"bot_account,omitempty"` - BanExpires Optional[string] `json:"ban_expires" url:"ban_expires,omitempty"` - InstanceID int `json:"instance_id" url:"instance_id,omitempty"` -} - -type Site struct { - ID int `json:"id" url:"id,omitempty"` - Name string `json:"name" url:"name,omitempty"` - Sidebar Optional[string] `json:"sidebar" url:"sidebar,omitempty"` - Published string `json:"published" url:"published,omitempty"` - Updated Optional[string] `json:"updated" url:"updated,omitempty"` - Icon Optional[string] `json:"icon" url:"icon,omitempty"` - Banner Optional[string] `json:"banner" url:"banner,omitempty"` - Description Optional[string] `json:"description" url:"description,omitempty"` - ActorID string `json:"actor_id" url:"actor_id,omitempty"` - LastRefreshedAt string `json:"last_refreshed_at" url:"last_refreshed_at,omitempty"` - InboxURL string `json:"inbox_url" url:"inbox_url,omitempty"` - PrivateKey Optional[string] `json:"private_key" url:"private_key,omitempty"` - PublicKey string `json:"public_key" url:"public_key,omitempty"` - InstanceID int `json:"instance_id" url:"instance_id,omitempty"` -} - -type LocalSite struct { - ID int `json:"id" url:"id,omitempty"` - SiteID int `json:"site_id" url:"site_id,omitempty"` - SiteSetup bool `json:"site_setup" url:"site_setup,omitempty"` - EnableDownvotes bool `json:"enable_downvotes" url:"enable_downvotes,omitempty"` - OpenRegistration bool `json:"open_registration" url:"open_registration,omitempty"` - EnableNSFW bool `json:"enable_nsfw" url:"enable_nsfw,omitempty"` - AdminOnlyCommunityCreation bool `json:"community_creation_admin_only" url:"community_creation_admin_only,omitempty"` - RequireEmailVerification bool `json:"require_email_verification" url:"require_email_verification,omitempty"` - RequireApplication bool `json:"require_application" url:"require_application,omitempty"` - ApplicationQuestion Optional[string] `json:"application_question" url:"application_question,omitempty"` - PrivateInstance bool `json:"private_instance" url:"private_instance,omitempty"` - DefaultTheme string `json:"default_theme" url:"default_theme,omitempty"` - DefaultPostListingType string `json:"default_post_listing_type" url:"default_post_listing_type,omitempty"` - LegalInformation Optional[string] `json:"legal_information" url:"legal_information,omitempty"` - HideModlogModNames bool `json:"hide_modlog_mod_names" url:"hide_modlog_mod_names,omitempty"` - ApplicationEmailAdmins bool `json:"application_email_admins" url:"application_email_admins,omitempty"` - SlurFilterRegex Optional[string] `json:"slur_filter_regex" url:"slur_filter_regex,omitempty"` - ActorNameMaxLength int `json:"actor_name_max_length" url:"actor_name_max_length,omitempty"` - FederationEnabled bool `json:"federation_enabled" url:"federation_enabled,omitempty"` - FederationDebug bool `json:"federation_debug" url:"federation_debug,omitempty"` - FederationStrictAllowlist bool `json:"federation_strict_allowlist" url:"federation_strict_allowlist,omitempty"` - FederationRetryLimit int `json:"federation_http_fetch_retry_limit" url:"federation_http_fetch_retry_limit,omitempty"` - FederationWorkerCount int `json:"federation_worker_count" url:"federation_worker_count,omitempty"` - CaptchaEnabled bool `json:"captcha_enabled" url:"captcha_enabled,omitempty"` - CaptchaDifficulty string `json:"captcha_difficulty" url:"captcha_difficulty,omitempty"` - Published string `json:"published" url:"published,omitempty"` - Updated Optional[string] `json:"updated" url:"updated,omitempty"` -} - -type LocalSiteRateLimit struct { - ID int `json:"id" url:"id,omitempty"` - LocalSiteID int `json:"local_site_id" url:"local_site_id,omitempty"` - Message int `json:"message" url:"message,omitempty"` - MessagePerSecond int `json:"message_per_second" url:"message_per_second,omitempty"` - Post int `json:"post" url:"post,omitempty"` - PostPerSecond int `json:"post_per_second" url:"post_per_second,omitempty"` - Register int `json:"register" url:"register,omitempty"` - RegisterPerSecond int `json:"register_per_second" url:"register_per_second,omitempty"` - Image int `json:"image" url:"image,omitempty"` - ImagePerSecond int `json:"image_per_second" url:"image_per_second,omitempty"` - Comment int `json:"comment" url:"comment,omitempty"` - CommentPerSecond int `json:"comment_per_second" url:"comment_per_second,omitempty"` - Search int `json:"search" url:"search,omitempty"` - SearchPerSecond int `json:"search_per_second" url:"search_per_second,omitempty"` - Published string `json:"published" url:"published,omitempty"` - Updated Optional[string] `json:"updated" url:"updated,omitempty"` -} - -type PrivateMessage struct { - ID int `json:"id" url:"id,omitempty"` - CreatorID int `json:"creator_id" url:"creator_id,omitempty"` - RecipientID int `json:"recipient_id" url:"recipient_id,omitempty"` - Content string `json:"content" url:"content,omitempty"` - Deleted bool `json:"deleted" url:"deleted,omitempty"` - Read bool `json:"read" url:"read,omitempty"` - Published string `json:"published" url:"published,omitempty"` - Updated Optional[string] `json:"updated" url:"updated,omitempty"` - ApID string `json:"ap_id" url:"ap_id,omitempty"` - Local bool `json:"local" url:"local,omitempty"` -} - -type PostReport struct { - ID int `json:"id" url:"id,omitempty"` - CreatorID int `json:"creator_id" url:"creator_id,omitempty"` - PostID int `json:"post_id" url:"post_id,omitempty"` - OriginalPostName string `json:"original_post_name" url:"original_post_name,omitempty"` - OriginalPostURL Optional[string] `json:"original_post_url" url:"original_post_url,omitempty"` - OriginalPostBody Optional[string] `json:"original_post_body" url:"original_post_body,omitempty"` - Reason string `json:"reason" url:"reason,omitempty"` - Resolved bool `json:"resolved" url:"resolved,omitempty"` - ResolverID Optional[int] `json:"resolver_id" url:"resolver_id,omitempty"` - Published string `json:"published" url:"published,omitempty"` - Updated Optional[string] `json:"updated" url:"updated,omitempty"` -} - -type Post struct { - ID int `json:"id" url:"id,omitempty"` - Name string `json:"name" url:"name,omitempty"` - URL Optional[string] `json:"url" url:"url,omitempty"` - Body Optional[string] `json:"body" url:"body,omitempty"` - CreatorID int `json:"creator_id" url:"creator_id,omitempty"` - CommunityID int `json:"community_id" url:"community_id,omitempty"` - Removed bool `json:"removed" url:"removed,omitempty"` - Locked bool `json:"locked" url:"locked,omitempty"` - Published string `json:"published" url:"published,omitempty"` - Updated Optional[string] `json:"updated" url:"updated,omitempty"` - Deleted bool `json:"deleted" url:"deleted,omitempty"` - NSFW bool `json:"nsfw" url:"nsfw,omitempty"` - Stickied bool `json:"stickied" url:"stickied,omitempty"` - EmbedTitle Optional[string] `json:"embed_title" url:"embed_title,omitempty"` - EmbedDescription Optional[string] `json:"embed_description" url:"embed_description,omitempty"` - EmbedVideoURL Optional[string] `json:"embed_video_url" url:"embed_video_url,omitempty"` - ThumbnailURL Optional[string] `json:"thumbnail_url" url:"thumbnail_url,omitempty"` - ApID string `json:"ap_id" url:"ap_id,omitempty"` - Local bool `json:"local" url:"local,omitempty"` - LanguageID int `json:"language_id" url:"language_id,omitempty"` -} - -type PasswordResetRequest struct { - ID int `json:"id" url:"id,omitempty"` - LocalUserID int `json:"local_user_id" url:"local_user_id,omitempty"` - TokenEncrypted string `json:"token_encrypted" url:"token_encrypted,omitempty"` - Published string `json:"published" url:"published,omitempty"` -} - -type ModRemovePost struct { - ID int `json:"id" url:"id,omitempty"` - ModPersonID int `json:"mod_person_id" url:"mod_person_id,omitempty"` - PostID int `json:"post_id" url:"post_id,omitempty"` - Reason Optional[string] `json:"reason" url:"reason,omitempty"` - Removed Optional[bool] `json:"removed" url:"removed,omitempty"` - When string `json:"when_" url:"when_,omitempty"` -} - -type ModLockPost struct { - ID int `json:"id" url:"id,omitempty"` - ModPersonID int `json:"mod_person_id" url:"mod_person_id,omitempty"` - PostID int `json:"post_id" url:"post_id,omitempty"` - Locked Optional[bool] `json:"locked" url:"locked,omitempty"` - When string `json:"when_" url:"when_,omitempty"` -} - -// ModStickyPost represents a post stickied by a moderator. -type ModStickyPost struct { - ID int `json:"id" url:"id,omitempty"` - ModPersonID int `json:"mod_person_id" url:"mod_person_id,omitempty"` - PostID int `json:"post_id" url:"post_id,omitempty"` - Stickied Optional[bool] `json:"stickied" url:"stickied,omitempty"` - When string `json:"when_" url:"when_,omitempty"` -} - -// ModRemoveComment represents a comment removal by a moderator. -type ModRemoveComment struct { - ID int `json:"id" url:"id,omitempty"` - ModPersonID int `json:"mod_person_id" url:"mod_person_id,omitempty"` - CommentID int `json:"comment_id" url:"comment_id,omitempty"` - Reason Optional[string] `json:"reason" url:"reason,omitempty"` - Removed Optional[bool] `json:"removed" url:"removed,omitempty"` - When string `json:"when_" url:"when_,omitempty"` -} - -// ModRemoveCommunity represents a community removal by a moderator. -type ModRemoveCommunity struct { - ID int `json:"id" url:"id,omitempty"` - ModPersonID int `json:"mod_person_id" url:"mod_person_id,omitempty"` - CommunityID int `json:"community_id" url:"community_id,omitempty"` - Reason Optional[string] `json:"reason" url:"reason,omitempty"` - Removed Optional[bool] `json:"removed" url:"removed,omitempty"` - Expires Optional[string] `json:"expires" url:"expires,omitempty"` - When string `json:"when_" url:"when_,omitempty"` -} - -// ModBanFromCommunity represents a user being banned from a community by a moderator. -type ModBanFromCommunity struct { - ID int `json:"id" url:"id,omitempty"` - ModPersonID int `json:"mod_person_id" url:"mod_person_id,omitempty"` - OtherPersonID int `json:"other_person_id" url:"other_person_id,omitempty"` - CommunityID int `json:"community_id" url:"community_id,omitempty"` - Reason Optional[string] `json:"reason" url:"reason,omitempty"` - Banned Optional[bool] `json:"banned" url:"banned,omitempty"` - Expires Optional[string] `json:"expires" url:"expires,omitempty"` - When string `json:"when_" url:"when_,omitempty"` -} - -// ModBan represents a user being banned by a moderator. -type ModBan struct { - ID int `json:"id" url:"id,omitempty"` - ModPersonID int `json:"mod_person_id" url:"mod_person_id,omitempty"` - OtherPersonID int `json:"other_person_id" url:"other_person_id,omitempty"` - Reason Optional[string] `json:"reason" url:"reason,omitempty"` - Banned Optional[bool] `json:"banned" url:"banned,omitempty"` - Expires Optional[string] `json:"expires" url:"expires,omitempty"` - When string `json:"when_" url:"when_,omitempty"` -} - -// ModAddCommunity represents a user being added as a moderator of a community. -type ModAddCommunity struct { - ID int `json:"id" url:"id,omitempty"` - ModPersonID int `json:"mod_person_id" url:"mod_person_id,omitempty"` - OtherPersonID int `json:"other_person_id" url:"other_person_id,omitempty"` - CommunityID int `json:"community_id" url:"community_id,omitempty"` - Removed Optional[bool] `json:"removed" url:"removed,omitempty"` - When string `json:"when_" url:"when_,omitempty"` -} - -// ModTransferCommunity represents a community being transferred to another moderator. -type ModTransferCommunity struct { - ID int `json:"id" url:"id,omitempty"` - ModPersonID int `json:"mod_person_id" url:"mod_person_id,omitempty"` - OtherPersonID int `json:"other_person_id" url:"other_person_id,omitempty"` - CommunityID int `json:"community_id" url:"community_id,omitempty"` - Removed Optional[bool] `json:"removed" url:"removed,omitempty"` - When string `json:"when_" url:"when_,omitempty"` -} - -// ModAdd represents a user being added as a moderator. -type ModAdd struct { - ID int `json:"id" url:"id,omitempty"` - ModPersonID int `json:"mod_person_id" url:"mod_person_id,omitempty"` - OtherPersonID int `json:"other_person_id" url:"other_person_id,omitempty"` - Removed Optional[bool] `json:"removed" url:"removed,omitempty"` - When string `json:"when_" url:"when_,omitempty"` -} - -type AdminPurgePerson struct { - ID int `json:"id" url:"id,omitempty"` - AdminPersonID int `json:"admin_person_id" url:"admin_person_id,omitempty"` - Reason Optional[string] `json:"reason" url:"reason,omitempty"` - When string `json:"when_" url:"when_,omitempty"` -} - -type AdminPurgeCommunity struct { - ID int `json:"id" url:"id,omitempty"` - AdminPersonID int `json:"admin_person_id" url:"admin_person_id,omitempty"` - Reason Optional[string] `json:"reason" url:"reason,omitempty"` - When string `json:"when_" url:"when_,omitempty"` -} - -type AdminPurgePost struct { - ID int `json:"id" url:"id,omitempty"` - AdminPersonID int `json:"admin_person_id" url:"admin_person_id,omitempty"` - CommunityID int `json:"community_id" url:"community_id,omitempty"` - Reason Optional[string] `json:"reason" url:"reason,omitempty"` - When string `json:"when_" url:"when_,omitempty"` -} - -type AdminPurgeComment struct { - ID int `json:"id" url:"id,omitempty"` - AdminPersonID int `json:"admin_person_id" url:"admin_person_id,omitempty"` - PostID int `json:"post_id" url:"post_id,omitempty"` - Reason Optional[string] `json:"reason" url:"reason,omitempty"` - When string `json:"when_" url:"when_,omitempty"` -} - -type CommunitySafe struct { - ID int `json:"id" url:"id,omitempty"` - Name string `json:"name" url:"name,omitempty"` - Title string `json:"title" url:"title,omitempty"` - Description Optional[string] `json:"description" url:"description,omitempty"` - Removed bool `json:"removed" url:"removed,omitempty"` - Published string `json:"published" url:"published,omitempty"` - Updated Optional[string] `json:"updated" url:"updated,omitempty"` - Deleted bool `json:"deleted" url:"deleted,omitempty"` - NSFW bool `json:"nsfw" url:"nsfw,omitempty"` - ActorID string `json:"actor_id" url:"actor_id,omitempty"` - Local bool `json:"local" url:"local,omitempty"` - Icon Optional[string] `json:"icon" url:"icon,omitempty"` - Banner Optional[string] `json:"banner" url:"banner,omitempty"` - Hidden bool `json:"hidden" url:"hidden,omitempty"` - PostingRestrictedToMods bool `json:"posting_restricted_to_mods" url:"posting_restricted_to_mods,omitempty"` - InstanceID int `json:"instance_id" url:"instance_id,omitempty"` -} - -type CommentReport struct { - ID int `json:"id" url:"id,omitempty"` - CreatorID int `json:"creator_id" url:"creator_id,omitempty"` - CommentID int `json:"comment_id" url:"comment_id,omitempty"` - OriginalCommentText string `json:"original_comment_text" url:"original_comment_text,omitempty"` - Reason string `json:"reason" url:"reason,omitempty"` - Resolved bool `json:"resolved" url:"resolved,omitempty"` - ResolverID Optional[int] `json:"resolver_id" url:"resolver_id,omitempty"` - Published string `json:"published" url:"published,omitempty"` - Updated Optional[string] `json:"updated" url:"updated,omitempty"` -} - -type Comment struct { - ID int `json:"id" url:"id,omitempty"` - CreatorID int `json:"creator_id" url:"creator_id,omitempty"` - PostID int `json:"post_id" url:"post_id,omitempty"` - Content string `json:"content" url:"content,omitempty"` - Removed bool `json:"removed" url:"removed,omitempty"` - Published string `json:"published" url:"published,omitempty"` - Updated Optional[string] `json:"updated" url:"updated,omitempty"` - Deleted bool `json:"deleted" url:"deleted,omitempty"` - APID string `json:"ap_id" url:"ap_id,omitempty"` - Local bool `json:"local" url:"local,omitempty"` - Path string `json:"path" url:"path,omitempty"` - Distinguished bool `json:"distinguished" url:"distinguished,omitempty"` - LanguageID int `json:"language_id" url:"language_id,omitempty"` -} - -type PersonMention struct { - ID int `json:"id" url:"id,omitempty"` - RecipientID int `json:"recipient_id" url:"recipient_id,omitempty"` - CommentID int `json:"comment_id" url:"comment_id,omitempty"` - Read bool `json:"read" url:"read,omitempty"` - Published string `json:"published" url:"published,omitempty"` -} - -type Language struct { - ID int `json:"id" url:"id,omitempty"` - Code string `json:"code" url:"code,omitempty"` - Name string `json:"name" url:"name,omitempty"` -} - -type PrivateMessageReport struct { - ID int `json:"id" url:"id,omitempty"` - CreatorID int `json:"creator_id" url:"creator_id,omitempty"` - PrivateMessageID int `json:"private_message_id" url:"private_message_id,omitempty"` - OriginalPMText string `json:"original_pm_text" url:"original_pm_text,omitempty"` - Reason string `json:"reason" url:"reason,omitempty"` - Resolved bool `json:"resolved" url:"resolved,omitempty"` - ResolverID Optional[int] `json:"resolver_id" url:"resolver_id,omitempty"` - Published string `json:"published" url:"published,omitempty"` - Updated Optional[string] `json:"updated" url:"updated,omitempty"` -} - -type RegistrationApplication struct { - ID int `json:"id" url:"id,omitempty"` - LocalUserID int `json:"local_user_id" url:"local_user_id,omitempty"` - Answer string `json:"answer" url:"answer,omitempty"` - AdminID Optional[int] `json:"admin_id" url:"admin_id,omitempty"` - DenyReason Optional[string] `json:"deny_reason" url:"deny_reason,omitempty"` - Published string `json:"published" url:"published,omitempty"` -} - -type ModHideCommunityView struct { - ModHideCommunity ModHideCommunity `json:"mod_hide_community" url:"mod_hide_community,omitempty"` - Admin Optional[PersonSafe] `json:"admin" url:"admin,omitempty"` - Community CommunitySafe `json:"community" url:"community,omitempty"` -} - -type ModHideCommunity struct { - ID int `json:"id" url:"id,omitempty"` - CommunityID int `json:"community_id" url:"community_id,omitempty"` - ModPersonID int `json:"mod_person_id" url:"mod_person_id,omitempty"` - Reason Optional[string] `json:"reason" url:"reason,omitempty"` - Hidden Optional[bool] `json:"hidden" url:"hidden,omitempty"` - When time.Time `json:"when_" url:"when_,omitempty"` -} - -type CommentReply struct { - ID int `json:"id" url:"id,omitempty"` - RecipientID int `json:"recipient_id" url:"recipient_id,omitempty"` - CommentID int `json:"comment_id" url:"comment_id,omitempty"` - Read bool `json:"read" url:"read,omitempty"` - Published string `json:"published" url:"published,omitempty"` -} diff --git a/types/structs.1.gen.go b/types/structs.1.gen.go new file mode 100644 index 0000000..382e5fd --- /dev/null +++ b/types/structs.1.gen.go @@ -0,0 +1,75 @@ +package types + +type CommentReportView struct { + CommentReport CommentReport `json:"comment_report,omitempty" url:"comment_report,omitempty"` + Comment Comment `json:"comment,omitempty" url:"comment,omitempty"` + Post Post `json:"post,omitempty" url:"post,omitempty"` + Community CommunitySafe `json:"community,omitempty" url:"community,omitempty"` + Creator PersonSafe `json:"creator,omitempty" url:"creator,omitempty"` + CommentCreator PersonSafeAlias1 `json:"comment_creator,omitempty" url:"comment_creator,omitempty"` + Counts CommentAggregates `json:"counts,omitempty" url:"counts,omitempty"` + CreatorBannedFromCommunity bool `json:"creator_banned_from_community,omitempty" url:"creator_banned_from_community,omitempty"` + MyVote Optional[int16] `json:"my_vote,omitempty" url:"my_vote,omitempty"` + Resolver Optional[PersonSafeAlias2] `json:"resolver,omitempty" url:"resolver,omitempty"` +} +type CommentView struct { + Comment Comment `json:"comment,omitempty" url:"comment,omitempty"` + Creator PersonSafe `json:"creator,omitempty" url:"creator,omitempty"` + Recipient Optional[PersonSafeAlias1] `json:"recipient,omitempty" url:"recipient,omitempty"` + Post Post `json:"post,omitempty" url:"post,omitempty"` + Community CommunitySafe `json:"community,omitempty" url:"community,omitempty"` + Counts CommentAggregates `json:"counts,omitempty" url:"counts,omitempty"` + CreatorBannedFromCommunity bool `json:"creator_banned_from_community,omitempty" url:"creator_banned_from_community,omitempty"` + Subscribed bool `json:"subscribed,omitempty" url:"subscribed,omitempty"` + Saved bool `json:"saved,omitempty" url:"saved,omitempty"` + CreatorBlocked bool `json:"creator_blocked,omitempty" url:"creator_blocked,omitempty"` + MyVote Optional[int16] `json:"my_vote,omitempty" url:"my_vote,omitempty"` +} +type LocalUserView struct { + LocalUser LocalUser `json:"local_user,omitempty" url:"local_user,omitempty"` + Person Person `json:"person,omitempty" url:"person,omitempty"` + Counts PersonAggregates `json:"counts,omitempty" url:"counts,omitempty"` +} +type LocalUserSettingsView struct { + LocalUser LocalUserSettings `json:"local_user,omitempty" url:"local_user,omitempty"` + Person PersonSafe `json:"person,omitempty" url:"person,omitempty"` + Counts PersonAggregates `json:"counts,omitempty" url:"counts,omitempty"` +} +type PostReportView struct { + PostReport PostReport `json:"post_report,omitempty" url:"post_report,omitempty"` + Post Post `json:"post,omitempty" url:"post,omitempty"` + Community CommunitySafe `json:"community,omitempty" url:"community,omitempty"` + Creator PersonSafe `json:"creator,omitempty" url:"creator,omitempty"` + PostCreator PersonSafeAlias1 `json:"post_creator,omitempty" url:"post_creator,omitempty"` + CreatorBannedFromCommunity bool `json:"creator_banned_from_community,omitempty" url:"creator_banned_from_community,omitempty"` + MyVote Optional[int16] `json:"my_vote,omitempty" url:"my_vote,omitempty"` + Counts PostAggregates `json:"counts,omitempty" url:"counts,omitempty"` + Resolver Optional[PersonSafeAlias2] `json:"resolver,omitempty" url:"resolver,omitempty"` +} +type PostView struct { + Post Post `json:"post,omitempty" url:"post,omitempty"` + Creator PersonSafe `json:"creator,omitempty" url:"creator,omitempty"` + Community CommunitySafe `json:"community,omitempty" url:"community,omitempty"` + CreatorBannedFromCommunity bool `json:"creator_banned_from_community,omitempty" url:"creator_banned_from_community,omitempty"` + Counts PostAggregates `json:"counts,omitempty" url:"counts,omitempty"` + Subscribed bool `json:"subscribed,omitempty" url:"subscribed,omitempty"` + Saved bool `json:"saved,omitempty" url:"saved,omitempty"` + Read bool `json:"read,omitempty" url:"read,omitempty"` + CreatorBlocked bool `json:"creator_blocked,omitempty" url:"creator_blocked,omitempty"` + MyVote Optional[int16] `json:"my_vote,omitempty" url:"my_vote,omitempty"` +} +type PrivateMessageView struct { + PrivateMessage PrivateMessage `json:"private_message,omitempty" url:"private_message,omitempty"` + Creator PersonSafe `json:"creator,omitempty" url:"creator,omitempty"` + Recipient PersonSafeAlias1 `json:"recipient,omitempty" url:"recipient,omitempty"` +} +type RegistrationApplicationView struct { + RegistrationApplication RegistrationApplication `json:"registration_application,omitempty" url:"registration_application,omitempty"` + CreatorLocalUser LocalUserSettings `json:"creator_local_user,omitempty" url:"creator_local_user,omitempty"` + Creator PersonSafe `json:"creator,omitempty" url:"creator,omitempty"` + Admin Optional[PersonSafeAlias1] `json:"admin,omitempty" url:"admin,omitempty"` +} +type SiteView struct { + Site Site `json:"site,omitempty" url:"site,omitempty"` + Counts SiteAggregates `json:"counts,omitempty" url:"counts,omitempty"` +} diff --git a/types/structs.2.gen.go b/types/structs.2.gen.go new file mode 100644 index 0000000..b252b42 --- /dev/null +++ b/types/structs.2.gen.go @@ -0,0 +1,66 @@ +package types + +type ModAddCommunityView struct { + ModAddCommunity ModAddCommunity `json:"mod_add_community,omitempty" url:"mod_add_community,omitempty"` + Moderator PersonSafe `json:"moderator,omitempty" url:"moderator,omitempty"` + Community CommunitySafe `json:"community,omitempty" url:"community,omitempty"` + ModdedPerson PersonSafeAlias1 `json:"modded_person,omitempty" url:"modded_person,omitempty"` +} +type ModAddView struct { + ModAdd ModAdd `json:"mod_add,omitempty" url:"mod_add,omitempty"` + Moderator PersonSafe `json:"moderator,omitempty" url:"moderator,omitempty"` + ModdedPerson PersonSafeAlias1 `json:"modded_person,omitempty" url:"modded_person,omitempty"` +} +type ModBanFromCommunityView struct { + ModBanFromCommunity ModBanFromCommunity `json:"mod_ban_from_community,omitempty" url:"mod_ban_from_community,omitempty"` + Moderator PersonSafe `json:"moderator,omitempty" url:"moderator,omitempty"` + Community CommunitySafe `json:"community,omitempty" url:"community,omitempty"` + BannedPerson PersonSafeAlias1 `json:"banned_person,omitempty" url:"banned_person,omitempty"` +} +type ModBanView struct { + ModBan ModBan `json:"mod_ban,omitempty" url:"mod_ban,omitempty"` + Moderator PersonSafe `json:"moderator,omitempty" url:"moderator,omitempty"` + BannedPerson PersonSafeAlias1 `json:"banned_person,omitempty" url:"banned_person,omitempty"` +} +type ModHideCommunityView struct { + ModHideCommunity ModHideCommunity `json:"mod_hide_community,omitempty" url:"mod_hide_community,omitempty"` + Admin PersonSafe `json:"admin,omitempty" url:"admin,omitempty"` + Community CommunitySafe `json:"community,omitempty" url:"community,omitempty"` +} +type ModLockPostView struct { + ModLockPost ModLockPost `json:"mod_lock_post,omitempty" url:"mod_lock_post,omitempty"` + Moderator PersonSafe `json:"moderator,omitempty" url:"moderator,omitempty"` + Post Post `json:"post,omitempty" url:"post,omitempty"` + Community CommunitySafe `json:"community,omitempty" url:"community,omitempty"` +} +type ModRemoveCommentView struct { + ModRemoveComment ModRemoveComment `json:"mod_remove_comment,omitempty" url:"mod_remove_comment,omitempty"` + Moderator PersonSafe `json:"moderator,omitempty" url:"moderator,omitempty"` + Comment Comment `json:"comment,omitempty" url:"comment,omitempty"` + Commenter PersonSafeAlias1 `json:"commenter,omitempty" url:"commenter,omitempty"` + Post Post `json:"post,omitempty" url:"post,omitempty"` + Community CommunitySafe `json:"community,omitempty" url:"community,omitempty"` +} +type ModRemoveCommunityView struct { + ModRemoveCommunity ModRemoveCommunity `json:"mod_remove_community,omitempty" url:"mod_remove_community,omitempty"` + Moderator PersonSafe `json:"moderator,omitempty" url:"moderator,omitempty"` + Community CommunitySafe `json:"community,omitempty" url:"community,omitempty"` +} +type ModRemovePostView struct { + ModRemovePost ModRemovePost `json:"mod_remove_post,omitempty" url:"mod_remove_post,omitempty"` + Moderator PersonSafe `json:"moderator,omitempty" url:"moderator,omitempty"` + Post Post `json:"post,omitempty" url:"post,omitempty"` + Community CommunitySafe `json:"community,omitempty" url:"community,omitempty"` +} +type ModStickyPostView struct { + ModStickyPost ModStickyPost `json:"mod_sticky_post,omitempty" url:"mod_sticky_post,omitempty"` + Moderator PersonSafe `json:"moderator,omitempty" url:"moderator,omitempty"` + Post Post `json:"post,omitempty" url:"post,omitempty"` + Community CommunitySafe `json:"community,omitempty" url:"community,omitempty"` +} +type ModTransferCommunityView struct { + ModTransferCommunity ModTransferCommunity `json:"mod_transfer_community,omitempty" url:"mod_transfer_community,omitempty"` + Moderator PersonSafe `json:"moderator,omitempty" url:"moderator,omitempty"` + Community CommunitySafe `json:"community,omitempty" url:"community,omitempty"` + ModdedPerson PersonSafeAlias1 `json:"modded_person,omitempty" url:"modded_person,omitempty"` +} diff --git a/types/structs.3.gen.go b/types/structs.3.gen.go new file mode 100644 index 0000000..6a9be2b --- /dev/null +++ b/types/structs.3.gen.go @@ -0,0 +1,56 @@ +package types + +import "time" + +type CommentAggregates struct { + ID int32 `json:"id,omitempty" url:"id,omitempty"` + CommentID int `json:"comment_id,omitempty" url:"comment_id,omitempty"` + Score int64 `json:"score,omitempty" url:"score,omitempty"` + Upvotes int64 `json:"upvotes,omitempty" url:"upvotes,omitempty"` + Downvotes int64 `json:"downvotes,omitempty" url:"downvotes,omitempty"` + Published time.Time `json:"published,omitempty" url:"published,omitempty"` +} +type CommunityAggregates struct { + ID int32 `json:"id,omitempty" url:"id,omitempty"` + CommunityID int `json:"community_id,omitempty" url:"community_id,omitempty"` + Subscribers int64 `json:"subscribers,omitempty" url:"subscribers,omitempty"` + Posts int64 `json:"posts,omitempty" url:"posts,omitempty"` + Comments int64 `json:"comments,omitempty" url:"comments,omitempty"` + Published time.Time `json:"published,omitempty" url:"published,omitempty"` + UsersActiveDay int64 `json:"users_active_day,omitempty" url:"users_active_day,omitempty"` + UsersActiveWeek int64 `json:"users_active_week,omitempty" url:"users_active_week,omitempty"` + UsersActiveMonth int64 `json:"users_active_month,omitempty" url:"users_active_month,omitempty"` + UsersActiveHalfYear int64 `json:"users_active_half_year,omitempty" url:"users_active_half_year,omitempty"` +} +type PersonAggregates struct { + ID int32 `json:"id,omitempty" url:"id,omitempty"` + PersonID int `json:"person_id,omitempty" url:"person_id,omitempty"` + PostCount int64 `json:"post_count,omitempty" url:"post_count,omitempty"` + PostScore int64 `json:"post_score,omitempty" url:"post_score,omitempty"` + CommentCount int64 `json:"comment_count,omitempty" url:"comment_count,omitempty"` + CommentScore int64 `json:"comment_score,omitempty" url:"comment_score,omitempty"` +} +type PostAggregates struct { + ID int32 `json:"id,omitempty" url:"id,omitempty"` + PostID int `json:"post_id,omitempty" url:"post_id,omitempty"` + Comments int64 `json:"comments,omitempty" url:"comments,omitempty"` + Score int64 `json:"score,omitempty" url:"score,omitempty"` + Upvotes int64 `json:"upvotes,omitempty" url:"upvotes,omitempty"` + Downvotes int64 `json:"downvotes,omitempty" url:"downvotes,omitempty"` + Stickied bool `json:"stickied,omitempty" url:"stickied,omitempty"` + Published time.Time `json:"published,omitempty" url:"published,omitempty"` + NewestCommentTimeNecro time.Time `json:"newest_comment_time_necro,omitempty" url:"newest_comment_time_necro,omitempty"` + NewestCommentTime time.Time `json:"newest_comment_time,omitempty" url:"newest_comment_time,omitempty"` +} +type SiteAggregates struct { + ID int32 `json:"id,omitempty" url:"id,omitempty"` + SiteID int32 `json:"site_id,omitempty" url:"site_id,omitempty"` + Users int64 `json:"users,omitempty" url:"users,omitempty"` + Posts int64 `json:"posts,omitempty" url:"posts,omitempty"` + Comments int64 `json:"comments,omitempty" url:"comments,omitempty"` + Communities int64 `json:"communities,omitempty" url:"communities,omitempty"` + UsersActiveDay int64 `json:"users_active_day,omitempty" url:"users_active_day,omitempty"` + UsersActiveWeek int64 `json:"users_active_week,omitempty" url:"users_active_week,omitempty"` + UsersActiveMonth int64 `json:"users_active_month,omitempty" url:"users_active_month,omitempty"` + UsersActiveHalfYear int64 `json:"users_active_half_year,omitempty" url:"users_active_half_year,omitempty"` +} diff --git a/types/structs.gen.go b/types/structs.gen.go new file mode 100644 index 0000000..1690527 --- /dev/null +++ b/types/structs.gen.go @@ -0,0 +1,46 @@ +package types + +type CommunityBlockView struct { + Person PersonSafe `json:"person,omitempty" url:"person,omitempty"` + Community CommunitySafe `json:"community,omitempty" url:"community,omitempty"` +} +type CommunityFollowerView struct { + Community CommunitySafe `json:"community,omitempty" url:"community,omitempty"` + Follower PersonSafe `json:"follower,omitempty" url:"follower,omitempty"` +} +type CommunityModeratorView struct { + Community CommunitySafe `json:"community,omitempty" url:"community,omitempty"` + Moderator PersonSafe `json:"moderator,omitempty" url:"moderator,omitempty"` +} +type CommunityPersonBanView struct { + Community CommunitySafe `json:"community,omitempty" url:"community,omitempty"` + Person PersonSafe `json:"person,omitempty" url:"person,omitempty"` +} +type CommunityView struct { + Community CommunitySafe `json:"community,omitempty" url:"community,omitempty"` + Subscribed bool `json:"subscribed,omitempty" url:"subscribed,omitempty"` + Blocked bool `json:"blocked,omitempty" url:"blocked,omitempty"` + Counts CommunityAggregates `json:"counts,omitempty" url:"counts,omitempty"` +} +type PersonBlockView struct { + Person PersonSafe `json:"person,omitempty" url:"person,omitempty"` + Target PersonSafeAlias1 `json:"target,omitempty" url:"target,omitempty"` +} +type PersonMentionView struct { + PersonMention PersonMention `json:"person_mention,omitempty" url:"person_mention,omitempty"` + Comment Comment `json:"comment,omitempty" url:"comment,omitempty"` + Creator PersonSafe `json:"creator,omitempty" url:"creator,omitempty"` + Post Post `json:"post,omitempty" url:"post,omitempty"` + Community CommunitySafe `json:"community,omitempty" url:"community,omitempty"` + Recipient PersonSafeAlias1 `json:"recipient,omitempty" url:"recipient,omitempty"` + Counts CommentAggregates `json:"counts,omitempty" url:"counts,omitempty"` + CreatorBannedFromCommunity bool `json:"creator_banned_from_community,omitempty" url:"creator_banned_from_community,omitempty"` + Subscribed bool `json:"subscribed,omitempty" url:"subscribed,omitempty"` + Saved bool `json:"saved,omitempty" url:"saved,omitempty"` + CreatorBlocked bool `json:"creator_blocked,omitempty" url:"creator_blocked,omitempty"` + MyVote Optional[int16] `json:"my_vote,omitempty" url:"my_vote,omitempty"` +} +type PersonViewSafe struct { + Person PersonSafe `json:"person,omitempty" url:"person,omitempty"` + Counts PersonAggregates `json:"counts,omitempty" url:"counts,omitempty"` +} diff --git a/types/utils.gen.go b/types/utils.gen.go new file mode 100644 index 0000000..ab1254f --- /dev/null +++ b/types/utils.gen.go @@ -0,0 +1 @@ +package types diff --git a/types/views.go b/types/views.go deleted file mode 100644 index 397e57c..0000000 --- a/types/views.go +++ /dev/null @@ -1,254 +0,0 @@ -package types - -type PersonViewSafe struct { - Person PersonSafe `json:"person" url:"person,omitempty"` - Counts PersonAggregates `json:"counts" url:"counts,omitempty"` -} - -type PersonMentionView struct { - PersonMention PersonMention `json:"person_mention" url:"person_mention,omitempty"` - Comment Comment `json:"comment" url:"comment,omitempty"` - Creator PersonSafe `json:"creator" url:"creator,omitempty"` - Post Post `json:"post" url:"post,omitempty"` - CommunitySafe CommunitySafe `json:"community_safe" url:"community_safe,omitempty"` - Recipient PersonSafe `json:"recipient" url:"recipient,omitempty"` - Counts CommentAggregates `json:"counts" url:"counts,omitempty"` - CreatorBannedFromCommunity bool `json:"creator_banned_from_community" url:"creator_banned_from_community,omitempty"` - Subscribed bool `json:"subscribed" url:"subscribed,omitempty"` - Saved bool `json:"saved" url:"saved,omitempty"` - CreatorBlocked bool `json:"creator_blocked" url:"creator_blocked,omitempty"` - MyVote Optional[int] `json:"my_vote" url:"my_vote,omitempty"` -} - -type LocalUserSettingsView struct { - LocalUserSettings LocalUserSettings `json:"local_user_settings" url:"local_user_settings,omitempty"` - Person PersonSafe `json:"person" url:"person,omitempty"` - Counts PersonAggregates `json:"counts" url:"counts,omitempty"` -} - -type SiteView struct { - Site Site `json:"site" url:"site,omitempty"` - LocalSite LocalSite `json:"local_site" url:"local_site,omitempty"` - LocalSiteRateLimit LocalSiteRateLimit `json:"local_site_rate_limit" url:"local_site_rate_limit,omitempty"` - Taglines Optional[[]Tagline] `json:"taglines" url:"taglines,omitempty"` - Counts SiteAggregates `json:"counts" url:"counts,omitempty"` -} - -type PrivateMessageView struct { - PrivateMessage PrivateMessage `json:"private_message" url:"private_message,omitempty"` - Creator PersonSafe `json:"creator" url:"creator,omitempty"` - Recipient PersonSafe `json:"recipient" url:"recipient,omitempty"` -} - -type PostView struct { - Post Post `json:"post" url:"post,omitempty"` - Creator PersonSafe `json:"creator" url:"creator,omitempty"` - Community CommunitySafe `json:"community" url:"community,omitempty"` - CreatorBannedFromCommunity bool `json:"creator_banned_from_community" url:"creator_banned_from_community,omitempty"` - Counts PostAggregates `json:"counts" url:"counts,omitempty"` - Subscribed bool `json:"subscribed" url:"subscribed,omitempty"` - Saved bool `json:"saved" url:"saved,omitempty"` - Read bool `json:"read" url:"read,omitempty"` - CreatorBlocked bool `json:"creator_blocked" url:"creator_blocked,omitempty"` - MyVote Optional[int] `json:"my_vote" url:"my_vote,omitempty"` - UnreadComments int `json:"unread_comments" url:"unread_comments,omitempty"` -} - -type PostReportView struct { - PostReport PostReport `json:"post_report" url:"post_report,omitempty"` - Post Post `json:"post" url:"post,omitempty"` - Community CommunitySafe `json:"community" url:"community,omitempty"` - Creator PersonSafe `json:"creator" url:"creator,omitempty"` - PostCreator PersonSafe `json:"post_creator" url:"post_creator,omitempty"` - CreatorBannedFromCommunity bool `json:"creator_banned_from_community" url:"creator_banned_from_community,omitempty"` - MyVote Optional[int] `json:"my_vote" url:"my_vote,omitempty"` - Counts PostAggregates `json:"counts" url:"counts,omitempty"` - Resolver Optional[PersonSafe] `json:"resolver" url:"resolver,omitempty"` -} - -type CommentView struct { - Comment Comment `json:"comment" url:"comment,omitempty"` - Creator PersonSafe `json:"creator" url:"creator,omitempty"` - Post Post `json:"post" url:"post,omitempty"` - Community CommunitySafe `json:"community" url:"community,omitempty"` - Counts CommentAggregates `json:"counts" url:"counts,omitempty"` - CreatorBannedFromCommunity bool `json:"creator_banned_from_community" url:"creator_banned_from_community,omitempty"` - Subscribed bool `json:"subscribed" url:"subscribed,omitempty"` - Saved bool `json:"saved" url:"saved,omitempty"` - CreatorBlocked bool `json:"creator_blocked" url:"creator_blocked,omitempty"` - MyVote Optional[int] `json:"my_vote" url:"my_vote,omitempty"` -} - -type CommentReportView struct { - CommentReport CommentReport `json:"comment_report" url:"comment_report,omitempty"` - Comment Comment `json:"comment" url:"comment,omitempty"` - Post Post `json:"post" url:"post,omitempty"` - CommunitySafe CommunitySafe `json:"community_safe" url:"community_safe,omitempty"` - Creator PersonSafe `json:"creator" url:"creator,omitempty"` - CommentCreator PersonSafe `json:"comment_creator" url:"comment_creator,omitempty"` - Counts CommentAggregates `json:"counts" url:"counts,omitempty"` - CreatorBannedFromCommunity bool `json:"creator_banned_from_community" url:"creator_banned_from_community,omitempty"` - MyVote Optional[int] `json:"my_vote" url:"my_vote,omitempty"` - Resolver Optional[PersonSafe] `json:"resolver" url:"resolver,omitempty"` -} - -type ModAddCommunityView struct { - ModAddCommunity ModAddCommunity `json:"mod_add_community" url:"mod_add_community,omitempty"` - Moderator Optional[PersonSafe] `json:"moderator" url:"moderator,omitempty"` - CommunitySafe CommunitySafe `json:"community_safe" url:"community_safe,omitempty"` - ModdedPerson PersonSafe `json:"modded_person" url:"modded_person,omitempty"` -} - -type ModTransferCommunityView struct { - ModTransferCommunity ModTransferCommunity `json:"mod_transfer_community" url:"mod_transfer_community,omitempty"` - Moderator Optional[PersonSafe] `json:"moderator" url:"moderator,omitempty"` - CommunitySafe CommunitySafe `json:"community_safe" url:"community_safe,omitempty"` - ModdedPerson PersonSafe `json:"modded_person" url:"modded_person,omitempty"` -} - -type ModAddView struct { - ModAdd ModAdd `json:"mod_add" url:"mod_add,omitempty"` - Moderator Optional[PersonSafe] `json:"moderator" url:"moderator,omitempty"` - ModdedPerson PersonSafe `json:"modded_person" url:"modded_person,omitempty"` -} - -type ModBanFromCommunityView struct { - ModBanFromCommunity ModBanFromCommunity `json:"mod_ban_from_community" url:"mod_ban_from_community,omitempty"` - Moderator Optional[PersonSafe] `json:"moderator" url:"moderator,omitempty"` - CommunitySafe CommunitySafe `json:"community_safe" url:"community_safe,omitempty"` - BannedPerson PersonSafe `json:"banned_person" url:"banned_person,omitempty"` -} - -type ModBanView struct { - ModBan ModBan `json:"mod_ban" url:"mod_ban,omitempty"` - Moderator Optional[PersonSafe] `json:"moderator" url:"moderator,omitempty"` - BannedPerson PersonSafe `json:"banned_person" url:"banned_person,omitempty"` -} - -type ModLockPostView struct { - ModLockPost ModLockPost `json:"mod_lock_post" url:"mod_lock_post,omitempty"` - Moderator Optional[PersonSafe] `json:"moderator" url:"moderator,omitempty"` - Post Post `json:"post" url:"post,omitempty"` - CommunitySafe CommunitySafe `json:"community_safe" url:"community_safe,omitempty"` -} - -type ModRemoveCommentView struct { - ModRemoveComment ModRemoveComment `json:"mod_remove_comment" url:"mod_remove_comment,omitempty"` - Moderator Optional[PersonSafe] `json:"moderator" url:"moderator,omitempty"` - Comment Comment `json:"comment" url:"comment,omitempty"` - Commenter PersonSafe `json:"commenter" url:"commenter,omitempty"` - Post Post `json:"post" url:"post,omitempty"` - CommunitySafe CommunitySafe `json:"community_safe" url:"community_safe,omitempty"` -} - -type ModRemoveCommunityView struct { - ModRemoveCommunity ModRemoveCommunity `json:"mod_remove_community" url:"mod_remove_community,omitempty"` - Moderator Optional[PersonSafe] `json:"moderator" url:"moderator,omitempty"` - CommunitySafe CommunitySafe `json:"community_safe" url:"community_safe,omitempty"` -} - -type ModRemovePostView struct { - ModRemovePost ModRemovePost `json:"mod_remove_post" url:"mod_remove_post,omitempty"` - Moderator Optional[PersonSafe] `json:"moderator" url:"moderator,omitempty"` - Post Post `json:"post" url:"post,omitempty"` - CommunitySafe CommunitySafe `json:"community_safe" url:"community_safe,omitempty"` -} - -type ModStickyPostView struct { - ModStickyPost ModStickyPost `json:"mod_sticky_post" url:"mod_sticky_post,omitempty"` - Moderator Optional[PersonSafe] `json:"moderator" url:"moderator,omitempty"` - Post Post `json:"post" url:"post,omitempty"` - CommunitySafe CommunitySafe `json:"community_safe" url:"community_safe,omitempty"` -} - -type AdminPurgeCommunityView struct { - AdminPurgeCommunity AdminPurgeCommunity `json:"admin_purge_community" url:"admin_purge_community,omitempty"` - Admin Optional[PersonSafe] `json:"admin" url:"admin,omitempty"` -} - -type AdminPurgePersonView struct { - AdminPurgePerson AdminPurgePerson `json:"admin_purge_person" url:"admin_purge_person,omitempty"` - Admin Optional[PersonSafe] `json:"admin" url:"admin,omitempty"` -} - -type AdminPurgePostView struct { - AdminPurgePost AdminPurgePost `json:"admin_purge_post" url:"admin_purge_post,omitempty"` - Admin Optional[PersonSafe] `json:"admin" url:"admin,omitempty"` - CommunitySafe CommunitySafe `json:"community_safe" url:"community_safe,omitempty"` -} - -type AdminPurgeCommentView struct { - AdminPurgeComment AdminPurgeComment `json:"admin_purge_comment" url:"admin_purge_comment,omitempty"` - Admin Optional[PersonSafe] `json:"admin" url:"admin,omitempty"` - Post Post `json:"post" url:"post,omitempty"` -} - -type CommunityFollowerView struct { - CommunitySafe CommunitySafe `json:"community_safe" url:"community_safe,omitempty"` - Follower PersonSafe `json:"follower" url:"follower,omitempty"` -} - -type CommunityBlockView struct { - PersonSafe PersonSafe `json:"person_safe" url:"person_safe,omitempty"` - CommunitySafe CommunitySafe `json:"community_safe" url:"community_safe,omitempty"` -} - -type CommunityModeratorView struct { - CommunitySafe CommunitySafe `json:"community_safe" url:"community_safe,omitempty"` - Moderator PersonSafe `json:"moderator" url:"moderator,omitempty"` -} - -type CommunityPersonBanView struct { - CommunitySafe CommunitySafe `json:"community_safe" url:"community_safe,omitempty"` - Person PersonSafe `json:"person" url:"person,omitempty"` -} - -type PersonBlockView struct { - PersonSafe PersonSafe `json:"person_safe" url:"person_safe,omitempty"` - Target PersonSafe `json:"target" url:"target,omitempty"` -} - -type CommunityView struct { - CommunitySafe CommunitySafe `json:"community_safe" url:"community_safe,omitempty"` - Subscribed bool `json:"subscribed" url:"subscribed,omitempty"` - Blocked bool `json:"blocked" url:"blocked,omitempty"` - Counts CommunityAggregates `json:"counts" url:"counts,omitempty"` -} - -type RegistrationApplicationView struct { - RegistrationApplication RegistrationApplication `json:"registration_application" url:"registration_application,omitempty"` - CreatorLocalUser LocalUserSettings `json:"creator_local_user" url:"creator_local_user,omitempty"` - Creator PersonSafe `json:"creator" url:"creator,omitempty"` - Admin Optional[PersonSafe] `json:"admin" url:"admin,omitempty"` -} - -type PrivateMessageReportView struct { - PrivateMessageReport PrivateMessageReport `json:"private_message_report" url:"private_message_report,omitempty"` - PrivateMessage PrivateMessage `json:"private_message" url:"private_message,omitempty"` - PrivateMessageCreator PersonSafe `json:"private_message_creator" url:"private_message_creator,omitempty"` - Creator PersonSafe `json:"creator" url:"creator,omitempty"` - Resolver Optional[PersonSafe] `json:"resolver" url:"resolver,omitempty"` -} - -type Tagline struct { - ID int `json:"id" url:"id,omitempty"` - LocalSiteID int `json:"local_site_id" url:"local_site_id,omitempty"` - Content string `json:"content" url:"content,omitempty"` - Published string `json:"published" url:"published,omitempty"` - Updated Optional[string] `json:"updated" url:"updated,omitempty"` -} - -type CommentReplyView struct { - CommentReply CommentReply `json:"comment_reply" url:"comment_reply,omitempty"` - Comment Comment `json:"comment" url:"comment,omitempty"` - Creator PersonSafe `json:"creator" url:"creator,omitempty"` - Post Post `json:"post" url:"post,omitempty"` - Community CommunitySafe `json:"community" url:"community,omitempty"` - Recipient PersonSafe `json:"recipient" url:"recipient,omitempty"` - Counts CommentAggregates `json:"counts" url:"counts,omitempty"` - CreatorBannedFromCommunity bool `json:"creator_banned_from_community" url:"creator_banned_from_community,omitempty"` - Subscribed bool `json:"subscribed" url:"subscribed,omitempty"` - Saved bool `json:"saved" url:"saved,omitempty"` - CreatorBlocked bool `json:"creator_blocked" url:"creator_blocked,omitempty"` - MyVote Optional[int] `json:"my_vote" url:"my_vote,omitempty"` -} diff --git a/types/websocket.gen.go b/types/websocket.gen.go new file mode 100644 index 0000000..ed4c1d8 --- /dev/null +++ b/types/websocket.gen.go @@ -0,0 +1,30 @@ +package types + +type UserJoin struct { + Auth string `json:"auth,omitempty" url:"auth,omitempty"` +} +type UserJoinResponse struct { + Joined bool `json:"joined,omitempty" url:"joined,omitempty"` + LemmyResponse +} +type CommunityJoin struct { + CommunityID int `json:"community_id,omitempty" url:"community_id,omitempty"` +} +type CommunityJoinResponse struct { + Joined bool `json:"joined,omitempty" url:"joined,omitempty"` + LemmyResponse +} +type ModJoin struct { + CommunityID int `json:"community_id,omitempty" url:"community_id,omitempty"` +} +type ModJoinResponse struct { + Joined bool `json:"joined,omitempty" url:"joined,omitempty"` + LemmyResponse +} +type PostJoin struct { + PostID int `json:"post_id,omitempty" url:"post_id,omitempty"` +} +type PostJoinResponse struct { + Joined bool `json:"joined,omitempty" url:"joined,omitempty"` + LemmyResponse +} diff --git a/types/websocket.go b/types/websocket.go deleted file mode 100644 index 8536f9b..0000000 --- a/types/websocket.go +++ /dev/null @@ -1,37 +0,0 @@ -package types - -type UserJoin struct { - Auth string `json:"auth"` -} - -type UserJoinResponse struct { - Joined bool `json:"joined"` - LemmyResponse -} - -type CommunityJoin struct { - CommunityID int `json:"community_id"` -} - -type CommunityJoinResponse struct { - Joined bool `json:"joined"` - LemmyResponse -} - -type ModJoin struct { - CommunityID int `json:"community_id"` -} - -type ModJoinResponse struct { - Joined bool `json:"joined"` - LemmyResponse -} - -type PostJoin struct { - PostID int `json:"post_id"` -} - -type PostJoinResponse struct { - Joined bool `json:"joined"` - LemmyResponse -} diff --git a/websocket.go b/websocket.go index 66f2ce0..9394e1e 100644 --- a/websocket.go +++ b/websocket.go @@ -60,10 +60,10 @@ func NewWebSocket(baseURL string) (*WSClient, error) { return out, nil } -// Login logs in to Lemmy by sending an HTTP request to the +// ClientLogin logs in to Lemmy by sending an HTTP request to the // login endpoint. It stores the returned token in the client // for future use. -func (c *WSClient) Login(ctx context.Context, l types.Login) error { +func (c *WSClient) ClientLogin(ctx context.Context, l types.Login) error { u := &url.URL{} *u = *c.baseURL @@ -74,7 +74,7 @@ func (c *WSClient) Login(ctx context.Context, l types.Login) error { } hc := &Client{baseURL: u, client: http.DefaultClient} - err := hc.Login(ctx, l) + err := hc.ClientLogin(ctx, l) if err != nil { return err }