From a355158d88046868693b6d99ad88e722af8ac6c1 Mon Sep 17 00:00:00 2001 From: Elara Musayelyan Date: Thu, 5 Jan 2023 12:51:45 -0800 Subject: [PATCH] Use autogenerated bindings for Lemmy 0.16.7 --- .gitignore | 3 +- README.md | 16 +- admin.go | 128 ---- cmd/gen/generator/routes.go | 61 ++ cmd/gen/generator/struct.go | 57 ++ cmd/gen/main.go | 160 +++++ cmd/gen/parser/impl.go | 62 ++ cmd/gen/parser/routes.go | 121 ++++ cmd/gen/parser/struct.go | 259 +++++++ cmd/gen/parser/struct_test.go | 49 ++ comment.go | 158 ----- community.go | 173 ----- go.mod | 2 + go.sum | 6 +- lemmy.go | 15 +- person.go | 301 -------- post.go | 233 ------- privateMessage.go | 128 ---- routes.gen.go | 967 ++++++++++++++++++++++++++ search.go | 23 - site.go | 53 -- types/activity.gen.go | 20 + types/aggregates.go | 55 -- types/comment.1.gen.go | 69 ++ types/comment.gen.go | 90 +++ types/comment.go | 105 --- types/comment_report.gen.go | 21 + types/community.1.gen.go | 100 +++ types/community.gen.go | 111 +++ types/community.go | 131 ---- types/community_block.gen.go | 14 + types/email_verification.gen.go | 16 + types/lib.1.gen.go | 36 + types/lib.2.gen.go | 90 +++ types/lib.gen.go | 1 + types/local_user.gen.go | 61 ++ types/mod.gen.go | 1 + types/moderator.gen.go | 160 +++++ types/others.go | 162 ----- types/password_reset_request.gen.go | 14 + types/person.1.gen.go | 155 +++++ types/person.gen.go | 228 ++++++ types/person.go | 243 ------- types/person_block.gen.go | 14 + types/person_mention.gen.go | 16 + types/post.1.gen.go | 77 ++ types/post.gen.go | 123 ++++ types/post.go | 146 ---- types/post_report.gen.go | 25 + types/privateMessage.go | 71 -- types/private_message.gen.go | 27 + types/registration_application.gen.go | 18 + types/request.gen.go | 1 + types/secret.gen.go | 6 + types/sensitive.gen.go | 1 + types/site.1.gen.go | 54 ++ types/site.gen.go | 160 +++++ types/site.go | 256 ------- types/source.go | 402 ----------- types/structs.1.gen.go | 75 ++ types/structs.2.gen.go | 66 ++ types/structs.3.gen.go | 56 ++ types/structs.gen.go | 46 ++ types/utils.gen.go | 1 + types/views.go | 254 ------- types/websocket.gen.go | 30 + types/websocket.go | 37 - websocket.go | 6 +- 68 files changed, 3743 insertions(+), 3083 deletions(-) delete mode 100644 admin.go create mode 100644 cmd/gen/generator/routes.go create mode 100644 cmd/gen/generator/struct.go create mode 100644 cmd/gen/main.go create mode 100644 cmd/gen/parser/impl.go create mode 100644 cmd/gen/parser/routes.go create mode 100644 cmd/gen/parser/struct.go create mode 100644 cmd/gen/parser/struct_test.go delete mode 100644 comment.go delete mode 100644 community.go delete mode 100644 person.go delete mode 100644 post.go delete mode 100644 privateMessage.go create mode 100644 routes.gen.go delete mode 100644 search.go delete mode 100644 site.go create mode 100644 types/activity.gen.go delete mode 100644 types/aggregates.go create mode 100644 types/comment.1.gen.go create mode 100644 types/comment.gen.go delete mode 100644 types/comment.go create mode 100644 types/comment_report.gen.go create mode 100644 types/community.1.gen.go create mode 100644 types/community.gen.go delete mode 100644 types/community.go create mode 100644 types/community_block.gen.go create mode 100644 types/email_verification.gen.go create mode 100644 types/lib.1.gen.go create mode 100644 types/lib.2.gen.go create mode 100644 types/lib.gen.go create mode 100644 types/local_user.gen.go create mode 100644 types/mod.gen.go create mode 100644 types/moderator.gen.go delete mode 100644 types/others.go create mode 100644 types/password_reset_request.gen.go create mode 100644 types/person.1.gen.go create mode 100644 types/person.gen.go delete mode 100644 types/person.go create mode 100644 types/person_block.gen.go create mode 100644 types/person_mention.gen.go create mode 100644 types/post.1.gen.go create mode 100644 types/post.gen.go delete mode 100644 types/post.go create mode 100644 types/post_report.gen.go delete mode 100644 types/privateMessage.go create mode 100644 types/private_message.gen.go create mode 100644 types/registration_application.gen.go create mode 100644 types/request.gen.go create mode 100644 types/secret.gen.go create mode 100644 types/sensitive.gen.go create mode 100644 types/site.1.gen.go create mode 100644 types/site.gen.go delete mode 100644 types/site.go delete mode 100644 types/source.go create mode 100644 types/structs.1.gen.go create mode 100644 types/structs.2.gen.go create mode 100644 types/structs.3.gen.go create mode 100644 types/structs.gen.go create mode 100644 types/utils.gen.go delete mode 100644 types/views.go create mode 100644 types/websocket.gen.go delete mode 100644 types/websocket.go 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 }