Compare commits
	
		
			37 Commits
		
	
	
		
			c9db49c367
			...
			v0.17.0
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 23163a1806 | |||
| 014be78baa | |||
| c0aced05f0 | |||
| f7d3dab036 | |||
| d4c5776790 | |||
| 6465ee25bc | |||
| 9788468c0a | |||
| 6f5a84c24b | |||
| 2e4f4281de | |||
| b32e07b887 | |||
| 862bcd5164 | |||
| 8e0208dec2 | |||
| e5092d3898 | |||
| 754cfa602c | |||
| 0942490238 | |||
| 4ecce09b73 | |||
| cf871efc23 | |||
| cdd67e35a3 | |||
| 7459b363f6 | |||
| e097e6c8b5 | |||
| 92b96981e2 | |||
| b38c6b0a54 | |||
| ce8f58ed2d | |||
| a4a015a4cc | |||
| a90e43691d | |||
| 54c27ff977 | |||
| 6074dcd419 | |||
| 7fc04591ba | |||
| 519c58f847 | |||
| a9f1b2d3bd | |||
| ba705b25f7 | |||
| 6ea2a3bf54 | |||
| 7c15588651 | |||
| 9beccacda1 | |||
| eaebd96419 | |||
| 61030d84a1 | |||
| a9c51dba33 | 
							
								
								
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1 +1,2 @@ | ||||
| /test | ||||
| /test | ||||
| /gen | ||||
							
								
								
									
										51
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										51
									
								
								README.md
									
									
									
									
									
								
							| @@ -2,30 +2,37 @@ | ||||
|  | ||||
| [](https://pkg.go.dev/go.arsenm.dev/go-lemmy) | ||||
|  | ||||
| Go bindings to the [Lemmy](https://join-lemmy.org) API | ||||
| Go bindings to the [Lemmy](https://join-lemmy.org) API, automatically generated directly from Lemmy's source code using the generator in [cmd/gen](cmd/gen). | ||||
|  | ||||
| Example: | ||||
| Examples: | ||||
|  | ||||
| ```go | ||||
| ctx := context.Background() | ||||
| - HTTP: [examples/http](examples/http) | ||||
| - WebSocket: [examples/websocket](examples/websocket) | ||||
|  | ||||
| c, err := lemmy.New("https://lemmy.ml") | ||||
| if err != nil { | ||||
|     panic(err) | ||||
| } | ||||
| ### How to generate | ||||
|  | ||||
| err = c.Login(ctx, types.Login{ | ||||
|     UsernameOrEmail: "email@example.com", | ||||
|     Password:        `TestPwd`, | ||||
| }) | ||||
| if err != nil { | ||||
|     panic(err) | ||||
| } | ||||
| First, build the generator: | ||||
|  | ||||
| _, err = c.SaveUserSettings(ctx, types.SaveUserSettings{ | ||||
|     BotAccount: types.NewOptional(true), | ||||
| }) | ||||
| if err != nil { | ||||
|     panic(err) | ||||
| } | ||||
| ``` | ||||
| ```bash | ||||
| go build ./cmd/gen | ||||
| ``` | ||||
|  | ||||
| Clone Lemmy's source code at whatever version you need: | ||||
|  | ||||
| ```bash | ||||
| git clone https://github.com/LemmyNet/lemmy -b 0.16.7 | ||||
| ``` | ||||
|  | ||||
| Remove all the existing generated code: | ||||
|  | ||||
| ```bash | ||||
| rm **/*.gen.go | ||||
| ``` | ||||
|  | ||||
| Execute the generator: | ||||
|  | ||||
| ```bash | ||||
| ./gen -out-dir . | ||||
| ``` | ||||
|  | ||||
| And that's it! Your generated code should be ready for use. | ||||
							
								
								
									
										128
									
								
								admin.go
									
									
									
									
									
								
							
							
						
						
									
										128
									
								
								admin.go
									
									
									
									
									
								
							| @@ -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) ListRegistrationApplications(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 | ||||
| } | ||||
							
								
								
									
										69
									
								
								cmd/gen/generator/routes.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								cmd/gen/generator/routes.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,69 @@ | ||||
| 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) | ||||
| 	f.HeaderComment("Code generated by go.arsenm.dev/go-lemmy/cmd/gen (routes generator). DO NOT EDIT.") | ||||
|  | ||||
| 	for _, r := range routes { | ||||
| 		resStruct := impls[r.Struct] | ||||
|  | ||||
| 		f.Func().Params( | ||||
| 			jen.Id("c").Id("*Client"), | ||||
| 		).Id(transformName(r.Struct)).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) | ||||
| } | ||||
|  | ||||
| func transformName(s string) string { | ||||
| 	s = strings.TrimPrefix(s, "Get") | ||||
| 	s = strings.TrimPrefix(s, "List") | ||||
| 	return s | ||||
| } | ||||
							
								
								
									
										52
									
								
								cmd/gen/generator/struct.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								cmd/gen/generator/struct.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,52 @@ | ||||
| package generator | ||||
|  | ||||
| import ( | ||||
| 	"io" | ||||
| 	"strings" | ||||
|  | ||||
| 	"github.com/dave/jennifer/jen" | ||||
| 	"go.arsenm.dev/go-lemmy/cmd/gen/parser" | ||||
| ) | ||||
|  | ||||
| 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) | ||||
| 	f.HeaderComment("Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT.") | ||||
| 	 | ||||
| 	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 { | ||||
| 					g.Id(field.Name).Id(field.Type).Tag(map[string]string{ | ||||
| 						"json": field.OrigName, | ||||
| 						"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)).Id(e.Name).Op("=").Lit(string(member)) | ||||
| 				} | ||||
| 			}) | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	return f.Render(s.w) | ||||
| } | ||||
							
								
								
									
										177
									
								
								cmd/gen/main.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										177
									
								
								cmd/gen/main.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,177 @@ | ||||
| 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" | ||||
| 	"go.arsenm.dev/logger" | ||||
| 	"go.arsenm.dev/logger/log" | ||||
| ) | ||||
|  | ||||
| func init() { | ||||
| 	log.Logger = logger.NewPretty(os.Stderr) | ||||
| } | ||||
|  | ||||
| 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_http.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() | ||||
|  | ||||
| 			_, err = outFl.WriteString("//  Source: " + path + "\n") | ||||
| 			if err != nil { | ||||
| 				return err | ||||
| 			} | ||||
|  | ||||
| 			return generator.NewStruct(outFl, "types").Generate(fileStructs) | ||||
| 		}) | ||||
| 		if err != nil { | ||||
| 			log.Fatal("Error walking directory while parsing structs").Err(err).Str("dir", dir).Send() | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	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 { | ||||
| 			log.Fatal("Error walking directory while parsing impls").Err(err).Str("dir", dir).Send() | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	routesPath := filepath.Join(*lemmyDir, routesFile) | ||||
| 	rf, err := os.Open(routesPath) | ||||
| 	if err != nil { | ||||
| 		log.Fatal("Error opening routes file").Err(err).Send() | ||||
| 	} | ||||
| 	defer rf.Close() | ||||
|  | ||||
| 	rp := parser.NewRoutes(rf) | ||||
| 	routes, err := rp.Parse() | ||||
| 	if err != nil { | ||||
| 		log.Fatal("Error parsing routes file").Err(err).Send() | ||||
| 	} | ||||
|  | ||||
| 	orf, err := os.Create(filepath.Join(*outDir, "routes.gen.go")) | ||||
| 	if err != nil { | ||||
| 		log.Fatal("Error creating routes output file").Err(err).Send() | ||||
| 	} | ||||
| 	defer orf.Close() | ||||
|  | ||||
| 	_, err = orf.WriteString("//  Source: " + routesPath + "\n") | ||||
| 	if err != nil { | ||||
| 		log.Fatal("Error writing source string to routes file").Err(err).Send() | ||||
| 	} | ||||
|  | ||||
| 	err = generator.NewRoutes(orf, "lemmy").Generate(routes, impls) | ||||
| 	if err != nil { | ||||
| 		log.Fatal("Error generating output routes file").Err(err).Send() | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										62
									
								
								cmd/gen/parser/impl.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								cmd/gen/parser/impl.go
									
									
									
									
									
										Normal file
									
								
							| @@ -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) | ||||
| } | ||||
							
								
								
									
										121
									
								
								cmd/gen/parser/routes.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										121
									
								
								cmd/gen/parser/routes.go
									
									
									
									
									
										Normal file
									
								
							| @@ -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) | ||||
| } | ||||
							
								
								
									
										267
									
								
								cmd/gen/parser/struct.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										267
									
								
								cmd/gen/parser/struct.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,267 @@ | ||||
| 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 | ||||
| 			} | ||||
| 			structName = s.TransformName(structName) | ||||
|  | ||||
| 			// 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 | ||||
| 			} | ||||
| 			enumName = s.TransformName(enumName) | ||||
|  | ||||
| 			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<Vec<i64>>") // 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 "LemmyTime" | ||||
| 	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 := "" | ||||
|  | ||||
| 	s = strings.ReplaceAll(s, "Crud", "CRUD") | ||||
|  | ||||
| 	splitName := strings.Split(s, "_") | ||||
| 	for _, segment := range splitName { | ||||
| 		switch segment { | ||||
| 		case "id": | ||||
| 			out += "ID" | ||||
| 		case "url": | ||||
| 			out += "URL" | ||||
| 		case "nsfw": | ||||
| 			out += "NSFW" | ||||
| 		case "jwt": | ||||
| 			out += "JWT" | ||||
| 		case "crud": | ||||
| 			out += "CRUD" | ||||
| 		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) | ||||
| } | ||||
							
								
								
									
										49
									
								
								cmd/gen/parser/struct_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								cmd/gen/parser/struct_test.go
									
									
									
									
									
										Normal file
									
								
							| @@ -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<Vec<i64>>", "Optional[[]int64]"}, | ||||
| 		{"Url", "string"}, | ||||
| 		{"Sensitive<String>", "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) | ||||
| 			} | ||||
| 		}) | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										158
									
								
								comment.go
									
									
									
									
									
								
							
							
						
						
									
										158
									
								
								comment.go
									
									
									
									
									
								
							| @@ -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) ListCommentReports(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) MarkCommentReplyRead(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 | ||||
| } | ||||
							
								
								
									
										173
									
								
								community.go
									
									
									
									
									
								
							
							
						
						
									
										173
									
								
								community.go
									
									
									
									
									
								
							| @@ -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 | ||||
| } | ||||
							
								
								
									
										32
									
								
								examples/http/main.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								examples/http/main.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,32 @@ | ||||
| package main | ||||
|  | ||||
| import ( | ||||
| 	"context" | ||||
|  | ||||
| 	"go.arsenm.dev/go-lemmy" | ||||
| 	"go.arsenm.dev/go-lemmy/types" | ||||
| ) | ||||
|  | ||||
| func main() { | ||||
| 	ctx := context.Background() | ||||
|  | ||||
| 	c, err := lemmy.New("https://lemmygrad.ml") | ||||
| 	if err != nil { | ||||
| 		panic(err) | ||||
| 	} | ||||
|  | ||||
| 	err = c.ClientLogin(ctx, types.Login{ | ||||
| 		UsernameOrEmail: "user@example.com", | ||||
| 		Password:        `TestPwd`, | ||||
| 	}) | ||||
| 	if err != nil { | ||||
| 		panic(err) | ||||
| 	} | ||||
|  | ||||
| 	_, err = c.SaveUserSettings(ctx, types.SaveUserSettings{ | ||||
| 		BotAccount: types.NewOptional(true), | ||||
| 	}) | ||||
| 	if err != nil { | ||||
| 		panic(err) | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										66
									
								
								examples/websocket/main.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								examples/websocket/main.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,66 @@ | ||||
| package main | ||||
|  | ||||
| import ( | ||||
| 	"context" | ||||
| 	"log" | ||||
|  | ||||
| 	"go.arsenm.dev/go-lemmy" | ||||
| 	"go.arsenm.dev/go-lemmy/types" | ||||
| ) | ||||
|  | ||||
| func main() { | ||||
| 	ctx := context.Background() | ||||
|  | ||||
| 	c, err := lemmy.NewWebSocket("https://lemmygrad.ml") | ||||
| 	if err != nil { | ||||
| 		panic(err) | ||||
| 	} | ||||
|  | ||||
| 	err = c.ClientLogin(ctx, types.Login{ | ||||
| 		UsernameOrEmail: "user@example.com", | ||||
| 		Password:        `TestPwd`, | ||||
| 	}) | ||||
| 	if err != nil { | ||||
| 		panic(err) | ||||
| 	} | ||||
|  | ||||
| 	// If nil is passed as data, go-lemmy will just send | ||||
| 	// the auth token, which is all that's needed for | ||||
| 	// the UserJoin operation. | ||||
| 	c.Request(types.UserOperationUserJoin, nil) | ||||
|  | ||||
| 	// Subscribe to all communities | ||||
| 	c.Request(types.UserOperationCommunityJoin, types.CommunityJoin{ | ||||
| 		CommunityID: 0, | ||||
| 	}) | ||||
|  | ||||
| 	go handleErrors(c) | ||||
| 	handleResponses(c) | ||||
| } | ||||
|  | ||||
| func handleResponses(c *lemmy.WSClient) { | ||||
| 	for res := range c.Responses() { | ||||
| 		if res.IsOneOf(types.UserOperationCRUDCreateComment) { | ||||
| 			var data types.CommentResponse | ||||
| 			err := lemmy.DecodeResponse(res.Data, &data) | ||||
| 			if err != nil { | ||||
| 				log.Println("Error decoding response:", err) | ||||
| 				continue | ||||
| 			} | ||||
|  | ||||
| 			err = c.Request(types.UserOperationCreateCommentLike, types.CreateCommentLike{ | ||||
| 				CommentID: data.CommentView.Comment.ID, | ||||
| 			}) | ||||
| 			if err != nil { | ||||
| 				log.Println("Error decoding response:", err) | ||||
| 				continue | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func handleErrors(c *lemmy.WSClient) { | ||||
| 	for err := range c.Errors() { | ||||
| 		log.Println("Error decoding response:", err) | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										15
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								go.mod
									
									
									
									
									
								
							| @@ -2,7 +2,20 @@ module go.arsenm.dev/go-lemmy | ||||
|  | ||||
| go 1.19 | ||||
|  | ||||
| retract v0.0.0-20230105203020-27ef17a00e22 | ||||
|  | ||||
| require ( | ||||
| 	github.com/cenkalti/backoff/v4 v4.2.0 | ||||
| 	github.com/dave/jennifer v1.6.0 | ||||
| 	github.com/google/go-querystring v1.1.0 | ||||
| 	github.com/mitchellh/mapstructure v1.5.0 | ||||
| 	github.com/gorilla/websocket v1.4.2 | ||||
| 	go.arsenm.dev/logger v0.0.0-20230104225304-d706171ea6df | ||||
| 	golang.org/x/exp v0.0.0-20230105000112-eab7a2c85304 | ||||
| ) | ||||
|  | ||||
| require ( | ||||
| 	github.com/gookit/color v1.5.1 // indirect | ||||
| 	github.com/mattn/go-isatty v0.0.14 // indirect | ||||
| 	github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778 // indirect | ||||
| 	golang.org/x/sys v0.1.0 // indirect | ||||
| ) | ||||
|   | ||||
							
								
								
									
										34
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										34
									
								
								go.sum
									
									
									
									
									
								
							| @@ -1,7 +1,35 @@ | ||||
| github.com/google/go-cmp v0.5.2 h1:X2ev0eStA3AbceY54o37/0PQ/UWqKEiiO2dKL5OPaFM= | ||||
| github.com/cenkalti/backoff/v4 v4.2.0 h1:HN5dHm3WBOgndBH6E8V0q2jIYIR3s9yglV8k/+MN3u4= | ||||
| github.com/cenkalti/backoff/v4 v4.2.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= | ||||
| github.com/dave/jennifer v1.6.0 h1:MQ/6emI2xM7wt0tJzJzyUik2Q3Tcn2eE0vtYgh4GPVI= | ||||
| github.com/dave/jennifer v1.6.0/go.mod h1:AxTG893FiZKqxy3FP1kL80VMshSMuz2G+EgvszgGRnk= | ||||
| github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= | ||||
| github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||||
| 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/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= | ||||
| github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= | ||||
| github.com/gookit/color v1.5.1 h1:Vjg2VEcdHpwq+oY63s/ksHrgJYCTo0bwWvmmYWdE9fQ= | ||||
| github.com/gookit/color v1.5.1/go.mod h1:wZFzea4X8qN6vHOSP2apMb4/+w/orMznEzYsIHPaqKM= | ||||
| github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= | ||||
| github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= | ||||
| github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y= | ||||
| github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= | ||||
| github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | ||||
| github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | ||||
| github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | ||||
| github.com/stretchr/testify v1.7.2 h1:4jaiDzPyXQvSd7D0EjG45355tLlV3VOECpq10pLC+8s= | ||||
| github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= | ||||
| github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778 h1:QldyIu/L63oPpyvQmHgvgickp1Yw510KJOqX7H24mg8= | ||||
| github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778/go.mod h1:2MuV+tbUrU1zIOPMxZ5EncGwgmMJsa+9ucAQZXxsObs= | ||||
| go.arsenm.dev/logger v0.0.0-20230104225304-d706171ea6df h1:8mBHvEe7BJmpOeKSMA5YLqrGo9dCpePocTeR0C1+/2w= | ||||
| go.arsenm.dev/logger v0.0.0-20230104225304-d706171ea6df/go.mod h1:RV2qydKDdoyaRkhAq8JEGvojR8eJ6bjq5WnSIlH7gYw= | ||||
| 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/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||
| golang.org/x/sys v0.1.0 h1:kunALQeHf1/185U1i0GOB/fy1IPRDDpuoOOqRReG57U= | ||||
| golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||
| golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | ||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||
| gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= | ||||
| gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= | ||||
|   | ||||
							
								
								
									
										57
									
								
								lemmy.go
									
									
									
									
									
								
							
							
						
						
									
										57
									
								
								lemmy.go
									
									
									
									
									
								
							| @@ -13,16 +13,19 @@ import ( | ||||
| 	"go.arsenm.dev/go-lemmy/types" | ||||
| ) | ||||
|  | ||||
| // Client is a client for Lemmy's HTTP API | ||||
| type Client struct { | ||||
| 	client  *http.Client | ||||
| 	baseURL *url.URL | ||||
| 	token   string | ||||
| 	Token   string | ||||
| } | ||||
|  | ||||
| // New creates a new Lemmy client with the default HTTP client. | ||||
| func New(baseURL string) (*Client, error) { | ||||
| 	return NewWithClient(baseURL, http.DefaultClient) | ||||
| } | ||||
|  | ||||
| // NewWithClient creates a new Lemmy client with the given HTTP client | ||||
| func NewWithClient(baseURL string, client *http.Client) (*Client, error) { | ||||
| 	u, err := url.Parse(baseURL) | ||||
| 	if err != nil { | ||||
| @@ -33,31 +36,20 @@ func NewWithClient(baseURL string, client *http.Client) (*Client, error) { | ||||
| 	return &Client{baseURL: u, client: client}, nil | ||||
| } | ||||
|  | ||||
| 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) | ||||
| // 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) 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 | ||||
| } | ||||
|  | ||||
| func (c *Client) Token() string { | ||||
| 	return c.token | ||||
| } | ||||
|  | ||||
| func (c *Client) SetToken(t string) { | ||||
| 	c.token = t | ||||
| } | ||||
|  | ||||
| // req makes a request to the server | ||||
| func (c *Client) req(ctx context.Context, method string, path string, data, resp any) (*http.Response, error) { | ||||
| 	data = c.setAuth(data) | ||||
|  | ||||
| @@ -98,6 +90,9 @@ func (c *Client) req(ctx context.Context, method string, path string, data, resp | ||||
| 	return res, nil | ||||
| } | ||||
|  | ||||
| // getReq makes a get request to the Lemmy server. | ||||
| // It is separate from req() because it uses query | ||||
| // parameters rather than a JSON request body. | ||||
| func (c *Client) getReq(ctx context.Context, method string, path string, data, resp any) (*http.Response, error) { | ||||
| 	data = c.setAuth(data) | ||||
|  | ||||
| @@ -134,13 +129,14 @@ func (c *Client) getReq(ctx context.Context, method string, path string, data, r | ||||
| 	return res, nil | ||||
| } | ||||
|  | ||||
| // resError returns an error if the given response is an error | ||||
| func resError(res *http.Response, lr types.LemmyResponse) error { | ||||
| 	if lr.Error.IsValid() { | ||||
| 		return types.LemmyError{ | ||||
| 			Code:   res.StatusCode, | ||||
| 			ErrStr: lr.Error.MustValue(), | ||||
| 		} | ||||
| 	} else if res.StatusCode > 299 { | ||||
| 	} else if res.StatusCode != http.StatusOK { | ||||
| 		return types.HTTPError{ | ||||
| 			Code: res.StatusCode, | ||||
| 		} | ||||
| @@ -149,7 +145,16 @@ func resError(res *http.Response, lr types.LemmyResponse) error { | ||||
| 	} | ||||
| } | ||||
|  | ||||
| // setAuth uses reflection to automatically | ||||
| // set struct fields called Auth of type | ||||
| // string or types.Optional[string] to the | ||||
| // authentication token, then returns the | ||||
| // updated struct | ||||
| func (c *Client) setAuth(data any) any { | ||||
| 	if data == nil { | ||||
| 		return data | ||||
| 	} | ||||
|  | ||||
| 	val := reflect.New(reflect.TypeOf(data)) | ||||
| 	val.Elem().Set(reflect.ValueOf(data)) | ||||
|  | ||||
| @@ -158,12 +163,16 @@ func (c *Client) setAuth(data any) any { | ||||
| 		return data | ||||
| 	} | ||||
|  | ||||
| 	authType := authField.Kind() | ||||
| 	if authType != reflect.String { | ||||
| 	switch authField.Type().String() { | ||||
| 	case "string": | ||||
| 		authField.SetString(c.Token) | ||||
| 	case "types.Optional[string]": | ||||
| 		setMtd := authField.MethodByName("Set") | ||||
| 		out := setMtd.Call([]reflect.Value{reflect.ValueOf(c.Token)}) | ||||
| 		authField.Set(out[0]) | ||||
| 	default: | ||||
| 		return data | ||||
| 	} | ||||
|  | ||||
| 	authField.SetString(c.token) | ||||
|  | ||||
| 	return val.Elem().Interface() | ||||
| } | ||||
|   | ||||
							
								
								
									
										316
									
								
								person.go
									
									
									
									
									
								
							
							
						
						
									
										316
									
								
								person.go
									
									
									
									
									
								
							| @@ -1,316 +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) MarkCommentReplyAsRead(ctx context.Context, d types.MarkCommentReplyAsRead) (*types.CommentResponse, error) { | ||||
| 	ar := &types.CommentResponse{} | ||||
| 	res, err := c.req(ctx, http.MethodPost, "/user/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) 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 | ||||
| } | ||||
							
								
								
									
										233
									
								
								post.go
									
									
									
									
									
								
							
							
						
						
									
										233
									
								
								post.go
									
									
									
									
									
								
							| @@ -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) ListPostReports(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 | ||||
| } | ||||
| @@ -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 | ||||
| } | ||||
							
								
								
									
										1030
									
								
								routes.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1030
									
								
								routes.gen.go
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										53
									
								
								site.go
									
									
									
									
									
								
							
							
						
						
									
										53
									
								
								site.go
									
									
									
									
									
								
							| @@ -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 | ||||
| } | ||||
							
								
								
									
										27
									
								
								types/activity.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								types/activity.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | ||||
| //  Source: lemmy/crates/db_schema/src/source/activity.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
|  | ||||
| type Activity struct { | ||||
| 	ID        int32          `json:"id" url:"id,omitempty"` | ||||
| 	Data      any            `json:"data" url:"data,omitempty"` | ||||
| 	Local     bool           `json:"local" url:"local,omitempty"` | ||||
| 	Published LemmyTime      `json:"published" url:"published,omitempty"` | ||||
| 	Updated   LemmyTime      `json:"updated" url:"updated,omitempty"` | ||||
| 	ApID      string         `json:"ap_id" url:"ap_id,omitempty"` | ||||
| 	Sensitive Optional[bool] `json:"sensitive" url:"sensitive,omitempty"` | ||||
| } | ||||
| type ActivityInsertForm struct { | ||||
| 	Data      any            `json:"data" url:"data,omitempty"` | ||||
| 	Local     Optional[bool] `json:"local" url:"local,omitempty"` | ||||
| 	Updated   LemmyTime      `json:"updated" url:"updated,omitempty"` | ||||
| 	ApID      string         `json:"ap_id" url:"ap_id,omitempty"` | ||||
| 	Sensitive Optional[bool] `json:"sensitive" url:"sensitive,omitempty"` | ||||
| } | ||||
| type ActivityUpdateForm struct { | ||||
| 	Data      any                      `json:"data" url:"data,omitempty"` | ||||
| 	Local     Optional[bool]           `json:"local" url:"local,omitempty"` | ||||
| 	Updated   LemmyTime                `json:"updated" url:"updated,omitempty"` | ||||
| 	Sensitive Optional[Optional[bool]] `json:"sensitive" url:"sensitive,omitempty"` | ||||
| } | ||||
							
								
								
									
										32
									
								
								types/actor_language.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								types/actor_language.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,32 @@ | ||||
| //  Source: lemmy/crates/db_schema/src/source/actor_language.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
|  | ||||
| type LocalUserLanguage struct { | ||||
| 	ID          int `json:"id" url:"id,omitempty"` | ||||
| 	LocalUserID int `json:"local_user_id" url:"local_user_id,omitempty"` | ||||
| 	LanguageID  int `json:"language_id" url:"language_id,omitempty"` | ||||
| } | ||||
| type LocalUserLanguageForm struct { | ||||
| 	LocalUserID int `json:"local_user_id" url:"local_user_id,omitempty"` | ||||
| 	LanguageID  int `json:"language_id" url:"language_id,omitempty"` | ||||
| } | ||||
| type CommunityLanguage struct { | ||||
| 	ID          int `json:"id" url:"id,omitempty"` | ||||
| 	CommunityID int `json:"community_id" url:"community_id,omitempty"` | ||||
| 	LanguageID  int `json:"language_id" url:"language_id,omitempty"` | ||||
| } | ||||
| type CommunityLanguageForm struct { | ||||
| 	CommunityID int `json:"community_id" url:"community_id,omitempty"` | ||||
| 	LanguageID  int `json:"language_id" url:"language_id,omitempty"` | ||||
| } | ||||
| type SiteLanguage struct { | ||||
| 	ID         int `json:"id" url:"id,omitempty"` | ||||
| 	SiteID     int `json:"site_id" url:"site_id,omitempty"` | ||||
| 	LanguageID int `json:"language_id" url:"language_id,omitempty"` | ||||
| } | ||||
| type SiteLanguageForm struct { | ||||
| 	SiteID     int `json:"site_id" url:"site_id,omitempty"` | ||||
| 	LanguageID int `json:"language_id" url:"language_id,omitempty"` | ||||
| } | ||||
| @@ -1,55 +0,0 @@ | ||||
| package types | ||||
|  | ||||
| type PersonAggregates struct { | ||||
| 	ID           int `json:"id,omitempty" url:"id,omitempty"` | ||||
| 	PersonID     int `json:"person_id,omitempty" url:"person_id,omitempty"` | ||||
| 	PostCount    int `json:"post_count,omitempty" url:"post_count,omitempty"` | ||||
| 	PostScore    int `json:"post_score,omitempty" url:"post_score,omitempty"` | ||||
| 	CommentCount int `json:"comment_count,omitempty" url:"comment_count,omitempty"` | ||||
| 	CommentScore int `json:"comment_score,omitempty" url:"comment_score,omitempty"` | ||||
| } | ||||
|  | ||||
| type SiteAggregates struct { | ||||
| 	ID                  int `json:"id,omitempty" url:"id,omitempty"` | ||||
| 	SiteID              int `json:"site_id,omitempty" url:"site_id,omitempty"` | ||||
| 	Users               int `json:"users,omitempty" url:"users,omitempty"` | ||||
| 	Posts               int `json:"posts,omitempty" url:"posts,omitempty"` | ||||
| 	Comments            int `json:"comments,omitempty" url:"comments,omitempty"` | ||||
| 	Communities         int `json:"communities,omitempty" url:"communities,omitempty"` | ||||
| 	UsersActiveDay      int `json:"users_active_day,omitempty" url:"users_active_day,omitempty"` | ||||
| 	UsersActiveWeek     int `json:"users_active_week,omitempty" url:"users_active_week,omitempty"` | ||||
| 	UsersActiveMonth    int `json:"users_active_month,omitempty" url:"users_active_month,omitempty"` | ||||
| 	UsersActiveHalfYear int `json:"users_active_half_year,omitempty" url:"users_active_half_year,omitempty"` | ||||
| } | ||||
|  | ||||
| type PostAggregates struct { | ||||
| 	ID                     int    `json:"id,omitempty" url:"id,omitempty"` | ||||
| 	PostID                 int    `json:"post_id,omitempty" url:"post_id,omitempty"` | ||||
| 	Comments               int    `json:"comments,omitempty" url:"comments,omitempty"` | ||||
| 	Score                  int    `json:"score,omitempty" url:"score,omitempty"` | ||||
| 	Upvotes                int    `json:"upvotes,omitempty" url:"upvotes,omitempty"` | ||||
| 	Downvotes              int    `json:"downvotes,omitempty" url:"downvotes,omitempty"` | ||||
| 	NewestCommentTimeNecro string `json:"newest_comment_time_necro,omitempty" url:"newest_comment_time_necro,omitempty"` | ||||
| 	NewestCommentTime      string `json:"newest_comment_time,omitempty" url:"newest_comment_time,omitempty"` | ||||
| } | ||||
|  | ||||
| type CommunityAggregates struct { | ||||
| 	ID                  int `json:"id,omitempty" url:"id,omitempty"` | ||||
| 	CommunityID         int `json:"community_id,omitempty" url:"community_id,omitempty"` | ||||
| 	Subscribers         int `json:"subscribers,omitempty" url:"subscribers,omitempty"` | ||||
| 	Posts               int `json:"posts,omitempty" url:"posts,omitempty"` | ||||
| 	Comments            int `json:"comments,omitempty" url:"comments,omitempty"` | ||||
| 	UsersActiveDay      int `json:"users_active_day,omitempty" url:"users_active_day,omitempty"` | ||||
| 	UsersActiveWeek     int `json:"users_active_week,omitempty" url:"users_active_week,omitempty"` | ||||
| 	UsersActiveMonth    int `json:"users_active_month,omitempty" url:"users_active_month,omitempty"` | ||||
| 	UsersActiveHalfYear int `json:"users_active_half_year,omitempty" url:"users_active_half_year,omitempty"` | ||||
| } | ||||
|  | ||||
| type CommentAggregates struct { | ||||
| 	ID         int `json:"id,omitempty" url:"id,omitempty"` | ||||
| 	CommentID  int `json:"comment_id,omitempty" url:"comment_id,omitempty"` | ||||
| 	Score      int `json:"score,omitempty" url:"score,omitempty"` | ||||
| 	Upvotes    int `json:"upvotes,omitempty" url:"upvotes,omitempty"` | ||||
| 	Downvotes  int `json:"downvotes,omitempty" url:"downvotes,omitempty"` | ||||
| 	ChildCount int `json:"child_count,omitempty" url:"child_count,omitempty"` | ||||
| } | ||||
							
								
								
									
										67
									
								
								types/comment.1.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								types/comment.1.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,67 @@ | ||||
| //  Source: lemmy/crates/db_schema/src/source/comment.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
|  | ||||
| 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     LemmyTime `json:"published" url:"published,omitempty"` | ||||
| 	Updated       LemmyTime `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 CommentInsertForm struct { | ||||
| 	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       Optional[bool]   `json:"removed" url:"removed,omitempty"` | ||||
| 	Published     LemmyTime        `json:"published" url:"published,omitempty"` | ||||
| 	Updated       LemmyTime        `json:"updated" url:"updated,omitempty"` | ||||
| 	Deleted       Optional[bool]   `json:"deleted" url:"deleted,omitempty"` | ||||
| 	ApID          Optional[string] `json:"ap_id" url:"ap_id,omitempty"` | ||||
| 	Local         Optional[bool]   `json:"local" url:"local,omitempty"` | ||||
| 	Distinguished Optional[bool]   `json:"distinguished" url:"distinguished,omitempty"` | ||||
| 	LanguageID    Optional[int]    `json:"language_id" url:"language_id,omitempty"` | ||||
| } | ||||
| type CommentUpdateForm struct { | ||||
| 	Content       Optional[string] `json:"content" url:"content,omitempty"` | ||||
| 	Removed       Optional[bool]   `json:"removed" url:"removed,omitempty"` | ||||
| 	Updated       LemmyTime        `json:"updated" url:"updated,omitempty"` | ||||
| 	Deleted       Optional[bool]   `json:"deleted" url:"deleted,omitempty"` | ||||
| 	ApID          Optional[string] `json:"ap_id" url:"ap_id,omitempty"` | ||||
| 	Local         Optional[bool]   `json:"local" url:"local,omitempty"` | ||||
| 	Distinguished Optional[bool]   `json:"distinguished" url:"distinguished,omitempty"` | ||||
| 	LanguageID    Optional[int]    `json:"language_id" url:"language_id,omitempty"` | ||||
| } | ||||
| type CommentLike struct { | ||||
| 	ID        int32     `json:"id" url:"id,omitempty"` | ||||
| 	PersonID  int       `json:"person_id" url:"person_id,omitempty"` | ||||
| 	CommentID int       `json:"comment_id" url:"comment_id,omitempty"` | ||||
| 	PostID    int       `json:"post_id" url:"post_id,omitempty"` | ||||
| 	Score     int16     `json:"score" url:"score,omitempty"` | ||||
| 	Published LemmyTime `json:"published" url:"published,omitempty"` | ||||
| } | ||||
| type CommentLikeForm struct { | ||||
| 	PersonID  int   `json:"person_id" url:"person_id,omitempty"` | ||||
| 	CommentID int   `json:"comment_id" url:"comment_id,omitempty"` | ||||
| 	PostID    int   `json:"post_id" url:"post_id,omitempty"` | ||||
| 	Score     int16 `json:"score" url:"score,omitempty"` | ||||
| } | ||||
| type CommentSaved struct { | ||||
| 	ID        int32     `json:"id" url:"id,omitempty"` | ||||
| 	CommentID int       `json:"comment_id" url:"comment_id,omitempty"` | ||||
| 	PersonID  int       `json:"person_id" url:"person_id,omitempty"` | ||||
| 	Published LemmyTime `json:"published" url:"published,omitempty"` | ||||
| } | ||||
| type CommentSavedForm struct { | ||||
| 	CommentID int `json:"comment_id" url:"comment_id,omitempty"` | ||||
| 	PersonID  int `json:"person_id" url:"person_id,omitempty"` | ||||
| } | ||||
							
								
								
									
										94
									
								
								types/comment.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										94
									
								
								types/comment.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,94 @@ | ||||
| //  Source: lemmy/crates/api_common/src/comment.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| 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_ids" url:"recipient_ids,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[int32]           `json:"max_depth" url:"max_depth,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"` | ||||
| 	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[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           string          `json:"auth" url:"auth,omitempty"` | ||||
| } | ||||
| type ListCommentReportsResponse struct { | ||||
| 	CommentReports []CommentReportView `json:"comment_reports" url:"comment_reports,omitempty"` | ||||
| 	LemmyResponse | ||||
| } | ||||
							
								
								
									
										105
									
								
								types/comment.go
									
									
									
									
									
								
							
							
						
						
									
										105
									
								
								types/comment.go
									
									
									
									
									
								
							| @@ -1,105 +0,0 @@ | ||||
| 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"` | ||||
| 	LanguageID Optional[int]    `json:"language_id,omitempty" url:"language_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 { | ||||
| 	CommentID     int              `json:"comment_id,omitempty" url:"comment_id,omitempty"` | ||||
| 	Content       Optional[string] `json:"content,omitempty" url:"content,omitempty"` | ||||
| 	Distinguished Optional[bool]   `json:"distinguished,omitempty" url:"distinguished,omitempty"` | ||||
| 	LanguageID    Optional[int]    `json:"language_id,omitempty" url:"language_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 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_i_ds,omitempty" url:"recipient_i_ds,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[CommentSortType] `json:"sort,omitempty" url:"sort,omitempty"` | ||||
| 	MaxDepth      Optional[int]             `json:"max_depth,omitempty" url:"max_depth,omitempty"` | ||||
| 	Page          Optional[int]             `json:"page,omitempty" url:"page,omitempty"` | ||||
| 	Limit         Optional[int]             `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"` | ||||
| 	PostID        Optional[int]             `json:"post_id,omitempty" url:"post_id,omitempty"` | ||||
| 	ParentID      Optional[int]             `json:"parent_id,omitempty" url:"parent_id,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[int]  `json:"page,omitempty" url:"page,omitempty"` | ||||
| 	Limit          Optional[int]  `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 | ||||
| } | ||||
							
								
								
									
										20
									
								
								types/comment_reply.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								types/comment_reply.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | ||||
| //  Source: lemmy/crates/db_schema/src/source/comment_reply.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
|  | ||||
| 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   LemmyTime `json:"published" url:"published,omitempty"` | ||||
| } | ||||
| type CommentReplyInsertForm struct { | ||||
| 	RecipientID int            `json:"recipient_id" url:"recipient_id,omitempty"` | ||||
| 	CommentID   int            `json:"comment_id" url:"comment_id,omitempty"` | ||||
| 	Read        Optional[bool] `json:"read" url:"read,omitempty"` | ||||
| } | ||||
| type CommentReplyUpdateForm struct { | ||||
| 	Read Optional[bool] `json:"read" url:"read,omitempty"` | ||||
| } | ||||
							
								
								
									
										22
									
								
								types/comment_report.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								types/comment_report.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | ||||
| //  Source: lemmy/crates/db_schema/src/source/comment_report.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
|  | ||||
| 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           LemmyTime     `json:"published" url:"published,omitempty"` | ||||
| 	Updated             LemmyTime     `json:"updated" url:"updated,omitempty"` | ||||
| } | ||||
| type CommentReportForm struct { | ||||
| 	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"` | ||||
| } | ||||
							
								
								
									
										125
									
								
								types/community.1.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										125
									
								
								types/community.1.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,125 @@ | ||||
| //  Source: lemmy/crates/db_schema/src/source/community.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
|  | ||||
| type Community 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               LemmyTime        `json:"published" url:"published,omitempty"` | ||||
| 	Updated                 LemmyTime        `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"` | ||||
| 	PrivateKey              Optional[string] `json:"private_key" url:"private_key,omitempty"` | ||||
| 	PublicKey               string           `json:"public_key" url:"public_key,omitempty"` | ||||
| 	LastRefreshedAt         LemmyTime        `json:"last_refreshed_at" url:"last_refreshed_at,omitempty"` | ||||
| 	Icon                    Optional[string] `json:"icon" url:"icon,omitempty"` | ||||
| 	Banner                  Optional[string] `json:"banner" url:"banner,omitempty"` | ||||
| 	FollowersURL            string           `json:"followers_url" url:"followers_url,omitempty"` | ||||
| 	InboxURL                string           `json:"inbox_url" url:"inbox_url,omitempty"` | ||||
| 	SharedInboxURL          Optional[string] `json:"shared_inbox_url" url:"shared_inbox_url,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 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               LemmyTime        `json:"published" url:"published,omitempty"` | ||||
| 	Updated                 LemmyTime        `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 CommunityInsertForm struct { | ||||
| 	Name                    string           `json:"name" url:"name,omitempty"` | ||||
| 	Title                   string           `json:"title" url:"title,omitempty"` | ||||
| 	Description             Optional[string] `json:"description" url:"description,omitempty"` | ||||
| 	Removed                 Optional[bool]   `json:"removed" url:"removed,omitempty"` | ||||
| 	Published               LemmyTime        `json:"published" url:"published,omitempty"` | ||||
| 	Updated                 LemmyTime        `json:"updated" url:"updated,omitempty"` | ||||
| 	Deleted                 Optional[bool]   `json:"deleted" url:"deleted,omitempty"` | ||||
| 	NSFW                    Optional[bool]   `json:"nsfw" url:"nsfw,omitempty"` | ||||
| 	ActorID                 Optional[string] `json:"actor_id" url:"actor_id,omitempty"` | ||||
| 	Local                   Optional[bool]   `json:"local" url:"local,omitempty"` | ||||
| 	PrivateKey              Optional[string] `json:"private_key" url:"private_key,omitempty"` | ||||
| 	PublicKey               string           `json:"public_key" url:"public_key,omitempty"` | ||||
| 	LastRefreshedAt         LemmyTime        `json:"last_refreshed_at" url:"last_refreshed_at,omitempty"` | ||||
| 	Icon                    Optional[string] `json:"icon" url:"icon,omitempty"` | ||||
| 	Banner                  Optional[string] `json:"banner" url:"banner,omitempty"` | ||||
| 	FollowersURL            Optional[string] `json:"followers_url" url:"followers_url,omitempty"` | ||||
| 	InboxURL                Optional[string] `json:"inbox_url" url:"inbox_url,omitempty"` | ||||
| 	SharedInboxURL          Optional[string] `json:"shared_inbox_url" url:"shared_inbox_url,omitempty"` | ||||
| 	Hidden                  Optional[bool]   `json:"hidden" url:"hidden,omitempty"` | ||||
| 	PostingRestrictedToMods Optional[bool]   `json:"posting_restricted_to_mods" url:"posting_restricted_to_mods,omitempty"` | ||||
| 	InstanceID              int              `json:"instance_id" url:"instance_id,omitempty"` | ||||
| } | ||||
| type CommunityUpdateForm struct { | ||||
| 	Title                   Optional[string]           `json:"title" url:"title,omitempty"` | ||||
| 	Description             Optional[Optional[string]] `json:"description" url:"description,omitempty"` | ||||
| 	Removed                 Optional[bool]             `json:"removed" url:"removed,omitempty"` | ||||
| 	Published               LemmyTime                  `json:"published" url:"published,omitempty"` | ||||
| 	Updated                 LemmyTime                  `json:"updated" url:"updated,omitempty"` | ||||
| 	Deleted                 Optional[bool]             `json:"deleted" url:"deleted,omitempty"` | ||||
| 	NSFW                    Optional[bool]             `json:"nsfw" url:"nsfw,omitempty"` | ||||
| 	ActorID                 Optional[string]           `json:"actor_id" url:"actor_id,omitempty"` | ||||
| 	Local                   Optional[bool]             `json:"local" url:"local,omitempty"` | ||||
| 	PublicKey               Optional[string]           `json:"public_key" url:"public_key,omitempty"` | ||||
| 	PrivateKey              Optional[Optional[string]] `json:"private_key" url:"private_key,omitempty"` | ||||
| 	LastRefreshedAt         LemmyTime                  `json:"last_refreshed_at" url:"last_refreshed_at,omitempty"` | ||||
| 	Icon                    Optional[Optional[string]] `json:"icon" url:"icon,omitempty"` | ||||
| 	Banner                  Optional[Optional[string]] `json:"banner" url:"banner,omitempty"` | ||||
| 	FollowersURL            Optional[string]           `json:"followers_url" url:"followers_url,omitempty"` | ||||
| 	InboxURL                Optional[string]           `json:"inbox_url" url:"inbox_url,omitempty"` | ||||
| 	SharedInboxURL          Optional[Optional[string]] `json:"shared_inbox_url" url:"shared_inbox_url,omitempty"` | ||||
| 	Hidden                  Optional[bool]             `json:"hidden" url:"hidden,omitempty"` | ||||
| 	PostingRestrictedToMods Optional[bool]             `json:"posting_restricted_to_mods" url:"posting_restricted_to_mods,omitempty"` | ||||
| } | ||||
| type CommunityModerator struct { | ||||
| 	ID          int32     `json:"id" url:"id,omitempty"` | ||||
| 	CommunityID int       `json:"community_id" url:"community_id,omitempty"` | ||||
| 	PersonID    int       `json:"person_id" url:"person_id,omitempty"` | ||||
| 	Published   LemmyTime `json:"published" url:"published,omitempty"` | ||||
| } | ||||
| type CommunityModeratorForm struct { | ||||
| 	CommunityID int `json:"community_id" url:"community_id,omitempty"` | ||||
| 	PersonID    int `json:"person_id" url:"person_id,omitempty"` | ||||
| } | ||||
| type CommunityPersonBan struct { | ||||
| 	ID          int32     `json:"id" url:"id,omitempty"` | ||||
| 	CommunityID int       `json:"community_id" url:"community_id,omitempty"` | ||||
| 	PersonID    int       `json:"person_id" url:"person_id,omitempty"` | ||||
| 	Published   LemmyTime `json:"published" url:"published,omitempty"` | ||||
| 	Expires     LemmyTime `json:"expires" url:"expires,omitempty"` | ||||
| } | ||||
| type CommunityPersonBanForm struct { | ||||
| 	CommunityID int       `json:"community_id" url:"community_id,omitempty"` | ||||
| 	PersonID    int       `json:"person_id" url:"person_id,omitempty"` | ||||
| 	Expires     LemmyTime `json:"expires" url:"expires,omitempty"` | ||||
| } | ||||
| type CommunityFollower struct { | ||||
| 	ID          int32     `json:"id" url:"id,omitempty"` | ||||
| 	CommunityID int       `json:"community_id" url:"community_id,omitempty"` | ||||
| 	PersonID    int       `json:"person_id" url:"person_id,omitempty"` | ||||
| 	Published   LemmyTime `json:"published" url:"published,omitempty"` | ||||
| 	Pending     bool      `json:"pending" url:"pending,omitempty"` | ||||
| } | ||||
| type CommunityFollowerForm struct { | ||||
| 	CommunityID int  `json:"community_id" url:"community_id,omitempty"` | ||||
| 	PersonID    int  `json:"person_id" url:"person_id,omitempty"` | ||||
| 	Pending     bool `json:"pending" url:"pending,omitempty"` | ||||
| } | ||||
							
								
								
									
										119
									
								
								types/community.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										119
									
								
								types/community.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,119 @@ | ||||
| //  Source: lemmy/crates/api_common/src/community.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| 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"` | ||||
| 	DiscussionLanguages     Optional[[]int]  `json:"discussion_languages" url:"discussion_languages,omitempty"` | ||||
| 	Auth                    string           `json:"auth" url:"auth,omitempty"` | ||||
| } | ||||
| type CommunityResponse struct { | ||||
| 	CommunityView       CommunityView `json:"community_view" url:"community_view,omitempty"` | ||||
| 	DiscussionLanguages []int         `json:"discussion_languages" url:"discussion_languages,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"` | ||||
| } | ||||
| @@ -1,131 +0,0 @@ | ||||
| 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"` | ||||
| 	DiscussionLanguages []int                    `json:"discussion_languages,omitempty" url:"discussion_languages,omitempty"` | ||||
| 	DefaultPostLanguage Optional[int]            `json:"default_post_language,omitempty" url:"default_post_language,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"` | ||||
| 	DiscussionLanguages     Optional[[]int]  `json:"discussion_languages,omitempty" url:"discussion_languages,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"` | ||||
| } | ||||
							
								
								
									
										15
									
								
								types/community_block.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								types/community_block.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | ||||
| //  Source: lemmy/crates/db_schema/src/source/community_block.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
|  | ||||
| type CommunityBlock struct { | ||||
| 	ID          int       `json:"id" url:"id,omitempty"` | ||||
| 	PersonID    int       `json:"person_id" url:"person_id,omitempty"` | ||||
| 	CommunityID int       `json:"community_id" url:"community_id,omitempty"` | ||||
| 	Published   LemmyTime `json:"published" url:"published,omitempty"` | ||||
| } | ||||
| type CommunityBlockForm struct { | ||||
| 	PersonID    int `json:"person_id" url:"person_id,omitempty"` | ||||
| 	CommunityID int `json:"community_id" url:"community_id,omitempty"` | ||||
| } | ||||
							
								
								
									
										17
									
								
								types/email_verification.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								types/email_verification.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | ||||
| //  Source: lemmy/crates/db_schema/src/source/email_verification.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
|  | ||||
| type EmailVerification struct { | ||||
| 	ID               int32     `json:"id" url:"id,omitempty"` | ||||
| 	LocalUserID      int       `json:"local_user_id" url:"local_user_id,omitempty"` | ||||
| 	Email            string    `json:"email" url:"email,omitempty"` | ||||
| 	VerificationCode string    `json:"verification_code" url:"verification_code,omitempty"` | ||||
| 	Published        LemmyTime `json:"published" url:"published,omitempty"` | ||||
| } | ||||
| type EmailVerificationForm struct { | ||||
| 	LocalUserID       int    `json:"local_user_id" url:"local_user_id,omitempty"` | ||||
| 	Email             string `json:"email" url:"email,omitempty"` | ||||
| 	VerificationToken string `json:"verification_token" url:"verification_token,omitempty"` | ||||
| } | ||||
							
								
								
									
										15
									
								
								types/federation_allowlist.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								types/federation_allowlist.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | ||||
| //  Source: lemmy/crates/db_schema/src/source/federation_allowlist.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
|  | ||||
| type FederationAllowList struct { | ||||
| 	ID         int32     `json:"id" url:"id,omitempty"` | ||||
| 	InstanceID int       `json:"instance_id" url:"instance_id,omitempty"` | ||||
| 	Published  LemmyTime `json:"published" url:"published,omitempty"` | ||||
| 	Updated    LemmyTime `json:"updated" url:"updated,omitempty"` | ||||
| } | ||||
| type FederationAllowListForm struct { | ||||
| 	InstanceID int       `json:"instance_id" url:"instance_id,omitempty"` | ||||
| 	Updated    LemmyTime `json:"updated" url:"updated,omitempty"` | ||||
| } | ||||
							
								
								
									
										15
									
								
								types/federation_blocklist.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								types/federation_blocklist.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | ||||
| //  Source: lemmy/crates/db_schema/src/source/federation_blocklist.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
|  | ||||
| type FederationBlockList struct { | ||||
| 	ID         int32     `json:"id" url:"id,omitempty"` | ||||
| 	InstanceID int       `json:"instance_id" url:"instance_id,omitempty"` | ||||
| 	Published  LemmyTime `json:"published" url:"published,omitempty"` | ||||
| 	Updated    LemmyTime `json:"updated" url:"updated,omitempty"` | ||||
| } | ||||
| type FederationBlockListForm struct { | ||||
| 	InstanceID int       `json:"instance_id" url:"instance_id,omitempty"` | ||||
| 	Updated    LemmyTime `json:"updated" url:"updated,omitempty"` | ||||
| } | ||||
							
								
								
									
										4
									
								
								types/handlers.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								types/handlers.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | ||||
| //  Source: lemmy/crates/api_common/src/websocket/handlers.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
							
								
								
									
										15
									
								
								types/instance.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								types/instance.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | ||||
| //  Source: lemmy/crates/db_schema/src/source/instance.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
|  | ||||
| type Instance struct { | ||||
| 	ID        int       `json:"id" url:"id,omitempty"` | ||||
| 	Domain    string    `json:"domain" url:"domain,omitempty"` | ||||
| 	Published LemmyTime `json:"published" url:"published,omitempty"` | ||||
| 	Updated   LemmyTime `json:"updated" url:"updated,omitempty"` | ||||
| } | ||||
| type InstanceForm struct { | ||||
| 	Domain  string    `json:"domain" url:"domain,omitempty"` | ||||
| 	Updated LemmyTime `json:"updated" url:"updated,omitempty"` | ||||
| } | ||||
							
								
								
									
										10
									
								
								types/language.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								types/language.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | ||||
| //  Source: lemmy/crates/db_schema/src/source/language.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
|  | ||||
| type Language struct { | ||||
| 	ID   int    `json:"id" url:"id,omitempty"` | ||||
| 	Code string `json:"code" url:"code,omitempty"` | ||||
| 	Name string `json:"name" url:"name,omitempty"` | ||||
| } | ||||
							
								
								
									
										84
									
								
								types/lib.1.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										84
									
								
								types/lib.1.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,84 @@ | ||||
| //  Source: lemmy/crates/db_schema/src/lib.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
|  | ||||
| type SortType string | ||||
|  | ||||
| const ( | ||||
| 	SortTypeActive       SortType = "Active" | ||||
| 	SortTypeHot          SortType = "Hot" | ||||
| 	SortTypeNew          SortType = "New" | ||||
| 	SortTypeOld          SortType = "Old" | ||||
| 	SortTypeTopDay       SortType = "TopDay" | ||||
| 	SortTypeTopWeek      SortType = "TopWeek" | ||||
| 	SortTypeTopMonth     SortType = "TopMonth" | ||||
| 	SortTypeTopYear      SortType = "TopYear" | ||||
| 	SortTypeTopAll       SortType = "TopAll" | ||||
| 	SortTypeMostComments SortType = "MostComments" | ||||
| 	SortTypeNewComments  SortType = "NewComments" | ||||
| ) | ||||
|  | ||||
| type CommentSortType string | ||||
|  | ||||
| const ( | ||||
| 	CommentSortTypeHot CommentSortType = "Hot" | ||||
| 	CommentSortTypeTop CommentSortType = "Top" | ||||
| 	CommentSortTypeNew CommentSortType = "New" | ||||
| 	CommentSortTypeOld CommentSortType = "Old" | ||||
| ) | ||||
|  | ||||
| type ListingType string | ||||
|  | ||||
| const ( | ||||
| 	ListingTypeAll        ListingType = "All" | ||||
| 	ListingTypeLocal      ListingType = "Local" | ||||
| 	ListingTypeSubscribed ListingType = "Subscribed" | ||||
| ) | ||||
|  | ||||
| type SearchType string | ||||
|  | ||||
| const ( | ||||
| 	SearchTypeAll         SearchType = "All" | ||||
| 	SearchTypeComments    SearchType = "Comments" | ||||
| 	SearchTypePosts       SearchType = "Posts" | ||||
| 	SearchTypeCommunities SearchType = "Communities" | ||||
| 	SearchTypeUsers       SearchType = "Users" | ||||
| 	SearchTypeUrl         SearchType = "Url" | ||||
| ) | ||||
|  | ||||
| type SubscribedType string | ||||
|  | ||||
| const ( | ||||
| 	SubscribedTypeSubscribed    SubscribedType = "Subscribed" | ||||
| 	SubscribedTypeNotSubscribed SubscribedType = "NotSubscribed" | ||||
| 	SubscribedTypePending       SubscribedType = "Pending" | ||||
| ) | ||||
|  | ||||
| type ModlogActionType string | ||||
|  | ||||
| const ( | ||||
| 	ModlogActionTypeAll                  ModlogActionType = "All" | ||||
| 	ModlogActionTypeModRemovePost        ModlogActionType = "ModRemovePost" | ||||
| 	ModlogActionTypeModLockPost          ModlogActionType = "ModLockPost" | ||||
| 	ModlogActionTypeModFeaturePost       ModlogActionType = "ModFeaturePost" | ||||
| 	ModlogActionTypeModRemoveComment     ModlogActionType = "ModRemoveComment" | ||||
| 	ModlogActionTypeModRemoveCommunity   ModlogActionType = "ModRemoveCommunity" | ||||
| 	ModlogActionTypeModBanFromCommunity  ModlogActionType = "ModBanFromCommunity" | ||||
| 	ModlogActionTypeModAddCommunity      ModlogActionType = "ModAddCommunity" | ||||
| 	ModlogActionTypeModTransferCommunity ModlogActionType = "ModTransferCommunity" | ||||
| 	ModlogActionTypeModAdd               ModlogActionType = "ModAdd" | ||||
| 	ModlogActionTypeModBan               ModlogActionType = "ModBan" | ||||
| 	ModlogActionTypeModHideCommunity     ModlogActionType = "ModHideCommunity" | ||||
| 	ModlogActionTypeAdminPurgePerson     ModlogActionType = "AdminPurgePerson" | ||||
| 	ModlogActionTypeAdminPurgeCommunity  ModlogActionType = "AdminPurgeCommunity" | ||||
| 	ModlogActionTypeAdminPurgePost       ModlogActionType = "AdminPurgePost" | ||||
| 	ModlogActionTypeAdminPurgeComment    ModlogActionType = "AdminPurgeComment" | ||||
| ) | ||||
|  | ||||
| type PostFeatureType string | ||||
|  | ||||
| const ( | ||||
| 	PostFeatureTypeLocal     PostFeatureType = "Local" | ||||
| 	PostFeatureTypeCommunity PostFeatureType = "Community" | ||||
| ) | ||||
							
								
								
									
										4
									
								
								types/lib.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								types/lib.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | ||||
| //  Source: lemmy/crates/api_common/src/lib.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
							
								
								
									
										84
									
								
								types/local_site.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										84
									
								
								types/local_site.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,84 @@ | ||||
| //  Source: lemmy/crates/db_schema/src/source/local_site.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
|  | ||||
| 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"` | ||||
| 	EnableNSFW                 bool             `json:"enable_nsfw" url:"enable_nsfw,omitempty"` | ||||
| 	CommunityCreationAdminOnly bool             `json:"community_creation_admin_only" url:"community_creation_admin_only,omitempty"` | ||||
| 	RequireEmailVerification   bool             `json:"require_email_verification" url:"require_email_verification,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         int32            `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"` | ||||
| 	FederationWorkerCount      int32            `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"` | ||||
| 	RegistrationMode           RegistrationMode `json:"registration_mode" url:"registration_mode,omitempty"` | ||||
| 	Published                  LemmyTime        `json:"published" url:"published,omitempty"` | ||||
| 	Updated                    LemmyTime        `json:"updated" url:"updated,omitempty"` | ||||
| } | ||||
| type LocalSiteInsertForm struct { | ||||
| 	SiteID                     int                        `json:"site_id" url:"site_id,omitempty"` | ||||
| 	SiteSetup                  Optional[bool]             `json:"site_setup" url:"site_setup,omitempty"` | ||||
| 	EnableDownvotes            Optional[bool]             `json:"enable_downvotes" url:"enable_downvotes,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"` | ||||
| 	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"` | ||||
| 	HideModlogModNames         Optional[bool]             `json:"hide_modlog_mod_names" url:"hide_modlog_mod_names,omitempty"` | ||||
| 	ApplicationEmailAdmins     Optional[bool]             `json:"application_email_admins" url:"application_email_admins,omitempty"` | ||||
| 	SlurFilterRegex            Optional[string]           `json:"slur_filter_regex" url:"slur_filter_regex,omitempty"` | ||||
| 	ActorNameMaxLength         Optional[int32]            `json:"actor_name_max_length" url:"actor_name_max_length,omitempty"` | ||||
| 	FederationEnabled          Optional[bool]             `json:"federation_enabled" url:"federation_enabled,omitempty"` | ||||
| 	FederationDebug            Optional[bool]             `json:"federation_debug" url:"federation_debug,omitempty"` | ||||
| 	FederationWorkerCount      Optional[int32]            `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"` | ||||
| 	RegistrationMode           Optional[RegistrationMode] `json:"registration_mode" url:"registration_mode,omitempty"` | ||||
| } | ||||
| type LocalSiteUpdateForm struct { | ||||
| 	SiteSetup                  Optional[bool]             `json:"site_setup" url:"site_setup,omitempty"` | ||||
| 	EnableDownvotes            Optional[bool]             `json:"enable_downvotes" url:"enable_downvotes,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"` | ||||
| 	ApplicationQuestion        Optional[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[Optional[string]] `json:"legal_information" url:"legal_information,omitempty"` | ||||
| 	HideModlogModNames         Optional[bool]             `json:"hide_modlog_mod_names" url:"hide_modlog_mod_names,omitempty"` | ||||
| 	ApplicationEmailAdmins     Optional[bool]             `json:"application_email_admins" url:"application_email_admins,omitempty"` | ||||
| 	SlurFilterRegex            Optional[Optional[string]] `json:"slur_filter_regex" url:"slur_filter_regex,omitempty"` | ||||
| 	ActorNameMaxLength         Optional[int32]            `json:"actor_name_max_length" url:"actor_name_max_length,omitempty"` | ||||
| 	FederationEnabled          Optional[bool]             `json:"federation_enabled" url:"federation_enabled,omitempty"` | ||||
| 	FederationDebug            Optional[bool]             `json:"federation_debug" url:"federation_debug,omitempty"` | ||||
| 	FederationWorkerCount      Optional[int32]            `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"` | ||||
| 	RegistrationMode           Optional[RegistrationMode] `json:"registration_mode" url:"registration_mode,omitempty"` | ||||
| 	Updated                    LemmyTime                  `json:"updated" url:"updated,omitempty"` | ||||
| } | ||||
| type RegistrationMode string | ||||
|  | ||||
| const ( | ||||
| 	RegistrationModeClosed             RegistrationMode = "Closed" | ||||
| 	RegistrationModeRequireApplication RegistrationMode = "RequireApplication" | ||||
| 	RegistrationModeOpen               RegistrationMode = "Open" | ||||
| ) | ||||
							
								
								
									
										53
									
								
								types/local_site_rate_limit.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								types/local_site_rate_limit.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | ||||
| //  Source: lemmy/crates/db_schema/src/source/local_site_rate_limit.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
|  | ||||
| type LocalSiteRateLimit struct { | ||||
| 	ID                int32     `json:"id" url:"id,omitempty"` | ||||
| 	LocalSiteID       int       `json:"local_site_id" url:"local_site_id,omitempty"` | ||||
| 	Message           int32     `json:"message" url:"message,omitempty"` | ||||
| 	MessagePerSecond  int32     `json:"message_per_second" url:"message_per_second,omitempty"` | ||||
| 	Post              int32     `json:"post" url:"post,omitempty"` | ||||
| 	PostPerSecond     int32     `json:"post_per_second" url:"post_per_second,omitempty"` | ||||
| 	Register          int32     `json:"register" url:"register,omitempty"` | ||||
| 	RegisterPerSecond int32     `json:"register_per_second" url:"register_per_second,omitempty"` | ||||
| 	Image             int32     `json:"image" url:"image,omitempty"` | ||||
| 	ImagePerSecond    int32     `json:"image_per_second" url:"image_per_second,omitempty"` | ||||
| 	Comment           int32     `json:"comment" url:"comment,omitempty"` | ||||
| 	CommentPerSecond  int32     `json:"comment_per_second" url:"comment_per_second,omitempty"` | ||||
| 	Search            int32     `json:"search" url:"search,omitempty"` | ||||
| 	SearchPerSecond   int32     `json:"search_per_second" url:"search_per_second,omitempty"` | ||||
| 	Published         LemmyTime `json:"published" url:"published,omitempty"` | ||||
| 	Updated           LemmyTime `json:"updated" url:"updated,omitempty"` | ||||
| } | ||||
| type LocalSiteRateLimitInsertForm struct { | ||||
| 	LocalSiteID       int             `json:"local_site_id" url:"local_site_id,omitempty"` | ||||
| 	Message           Optional[int32] `json:"message" url:"message,omitempty"` | ||||
| 	MessagePerSecond  Optional[int32] `json:"message_per_second" url:"message_per_second,omitempty"` | ||||
| 	Post              Optional[int32] `json:"post" url:"post,omitempty"` | ||||
| 	PostPerSecond     Optional[int32] `json:"post_per_second" url:"post_per_second,omitempty"` | ||||
| 	Register          Optional[int32] `json:"register" url:"register,omitempty"` | ||||
| 	RegisterPerSecond Optional[int32] `json:"register_per_second" url:"register_per_second,omitempty"` | ||||
| 	Image             Optional[int32] `json:"image" url:"image,omitempty"` | ||||
| 	ImagePerSecond    Optional[int32] `json:"image_per_second" url:"image_per_second,omitempty"` | ||||
| 	Comment           Optional[int32] `json:"comment" url:"comment,omitempty"` | ||||
| 	CommentPerSecond  Optional[int32] `json:"comment_per_second" url:"comment_per_second,omitempty"` | ||||
| 	Search            Optional[int32] `json:"search" url:"search,omitempty"` | ||||
| 	SearchPerSecond   Optional[int32] `json:"search_per_second" url:"search_per_second,omitempty"` | ||||
| } | ||||
| type LocalSiteRateLimitUpdateForm struct { | ||||
| 	Message           Optional[int32] `json:"message" url:"message,omitempty"` | ||||
| 	MessagePerSecond  Optional[int32] `json:"message_per_second" url:"message_per_second,omitempty"` | ||||
| 	Post              Optional[int32] `json:"post" url:"post,omitempty"` | ||||
| 	PostPerSecond     Optional[int32] `json:"post_per_second" url:"post_per_second,omitempty"` | ||||
| 	Register          Optional[int32] `json:"register" url:"register,omitempty"` | ||||
| 	RegisterPerSecond Optional[int32] `json:"register_per_second" url:"register_per_second,omitempty"` | ||||
| 	Image             Optional[int32] `json:"image" url:"image,omitempty"` | ||||
| 	ImagePerSecond    Optional[int32] `json:"image_per_second" url:"image_per_second,omitempty"` | ||||
| 	Comment           Optional[int32] `json:"comment" url:"comment,omitempty"` | ||||
| 	CommentPerSecond  Optional[int32] `json:"comment_per_second" url:"comment_per_second,omitempty"` | ||||
| 	Search            Optional[int32] `json:"search" url:"search,omitempty"` | ||||
| 	SearchPerSecond   Optional[int32] `json:"search_per_second" url:"search_per_second,omitempty"` | ||||
| 	Updated           LemmyTime       `json:"updated" url:"updated,omitempty"` | ||||
| } | ||||
							
								
								
									
										79
									
								
								types/local_user.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										79
									
								
								types/local_user.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,79 @@ | ||||
| //  Source: lemmy/crates/db_schema/src/source/local_user.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
|  | ||||
| type LocalUser struct { | ||||
| 	ID                       int              `json:"id" url:"id,omitempty"` | ||||
| 	PersonID                 int              `json:"person_id" url:"person_id,omitempty"` | ||||
| 	PasswordEncrypted        string           `json:"password_encrypted" url:"password_encrypted,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          int16            `json:"default_sort_type" url:"default_sort_type,omitempty"` | ||||
| 	DefaultListingType       int16            `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"` | ||||
| 	SendNotificationsToEmail bool             `json:"send_notifications_to_email" url:"send_notifications_to_email,omitempty"` | ||||
| 	ValidatorTime            LemmyTime        `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 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          int16            `json:"default_sort_type" url:"default_sort_type,omitempty"` | ||||
| 	DefaultListingType       int16            `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"` | ||||
| 	SendNotificationsToEmail bool             `json:"send_notifications_to_email" url:"send_notifications_to_email,omitempty"` | ||||
| 	ValidatorTime            LemmyTime        `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 LocalUserInsertForm struct { | ||||
| 	PersonID                 int              `json:"person_id" url:"person_id,omitempty"` | ||||
| 	PasswordEncrypted        string           `json:"password_encrypted" url:"password_encrypted,omitempty"` | ||||
| 	Email                    Optional[string] `json:"email" url:"email,omitempty"` | ||||
| 	ShowNSFW                 Optional[bool]   `json:"show_nsfw" url:"show_nsfw,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"` | ||||
| 	ShowAvatars              Optional[bool]   `json:"show_avatars" url:"show_avatars,omitempty"` | ||||
| 	SendNotificationsToEmail Optional[bool]   `json:"send_notifications_to_email" url:"send_notifications_to_email,omitempty"` | ||||
| 	ShowBotAccounts          Optional[bool]   `json:"show_bot_accounts" url:"show_bot_accounts,omitempty"` | ||||
| 	ShowScores               Optional[bool]   `json:"show_scores" url:"show_scores,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"` | ||||
| 	EmailVerified            Optional[bool]   `json:"email_verified" url:"email_verified,omitempty"` | ||||
| 	AcceptedApplication      Optional[bool]   `json:"accepted_application" url:"accepted_application,omitempty"` | ||||
| } | ||||
| type LocalUserUpdateForm struct { | ||||
| 	PasswordEncrypted        Optional[string]           `json:"password_encrypted" url:"password_encrypted,omitempty"` | ||||
| 	Email                    Optional[Optional[string]] `json:"email" url:"email,omitempty"` | ||||
| 	ShowNSFW                 Optional[bool]             `json:"show_nsfw" url:"show_nsfw,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"` | ||||
| 	ShowAvatars              Optional[bool]             `json:"show_avatars" url:"show_avatars,omitempty"` | ||||
| 	SendNotificationsToEmail Optional[bool]             `json:"send_notifications_to_email" url:"send_notifications_to_email,omitempty"` | ||||
| 	ShowBotAccounts          Optional[bool]             `json:"show_bot_accounts" url:"show_bot_accounts,omitempty"` | ||||
| 	ShowScores               Optional[bool]             `json:"show_scores" url:"show_scores,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"` | ||||
| 	EmailVerified            Optional[bool]             `json:"email_verified" url:"email_verified,omitempty"` | ||||
| 	AcceptedApplication      Optional[bool]             `json:"accepted_application" url:"accepted_application,omitempty"` | ||||
| } | ||||
							
								
								
									
										4
									
								
								types/mod.1.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								types/mod.1.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | ||||
| //  Source: lemmy/crates/db_schema/src/source/mod.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
							
								
								
									
										103
									
								
								types/mod.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										103
									
								
								types/mod.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,103 @@ | ||||
| //  Source: lemmy/crates/api_common/src/websocket/mod.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
|  | ||||
| type UserOperation string | ||||
|  | ||||
| const ( | ||||
| 	UserOperationLogin                                 UserOperation = "Login" | ||||
| 	UserOperationGetCaptcha                            UserOperation = "GetCaptcha" | ||||
| 	UserOperationSaveComment                           UserOperation = "SaveComment" | ||||
| 	UserOperationCreateCommentLike                     UserOperation = "CreateCommentLike" | ||||
| 	UserOperationCreateCommentReport                   UserOperation = "CreateCommentReport" | ||||
| 	UserOperationResolveCommentReport                  UserOperation = "ResolveCommentReport" | ||||
| 	UserOperationListCommentReports                    UserOperation = "ListCommentReports" | ||||
| 	UserOperationCreatePostLike                        UserOperation = "CreatePostLike" | ||||
| 	UserOperationLockPost                              UserOperation = "LockPost" | ||||
| 	UserOperationFeaturePost                           UserOperation = "FeaturePost" | ||||
| 	UserOperationMarkPostAsRead                        UserOperation = "MarkPostAsRead" | ||||
| 	UserOperationSavePost                              UserOperation = "SavePost" | ||||
| 	UserOperationCreatePostReport                      UserOperation = "CreatePostReport" | ||||
| 	UserOperationResolvePostReport                     UserOperation = "ResolvePostReport" | ||||
| 	UserOperationListPostReports                       UserOperation = "ListPostReports" | ||||
| 	UserOperationGetReportCount                        UserOperation = "GetReportCount" | ||||
| 	UserOperationGetUnreadCount                        UserOperation = "GetUnreadCount" | ||||
| 	UserOperationVerifyEmail                           UserOperation = "VerifyEmail" | ||||
| 	UserOperationFollowCommunity                       UserOperation = "FollowCommunity" | ||||
| 	UserOperationGetReplies                            UserOperation = "GetReplies" | ||||
| 	UserOperationGetPersonMentions                     UserOperation = "GetPersonMentions" | ||||
| 	UserOperationMarkPersonMentionAsRead               UserOperation = "MarkPersonMentionAsRead" | ||||
| 	UserOperationMarkCommentReplyAsRead                UserOperation = "MarkCommentReplyAsRead" | ||||
| 	UserOperationGetModlog                             UserOperation = "GetModlog" | ||||
| 	UserOperationBanFromCommunity                      UserOperation = "BanFromCommunity" | ||||
| 	UserOperationAddModToCommunity                     UserOperation = "AddModToCommunity" | ||||
| 	UserOperationAddAdmin                              UserOperation = "AddAdmin" | ||||
| 	UserOperationGetUnreadRegistrationApplicationCount UserOperation = "GetUnreadRegistrationApplicationCount" | ||||
| 	UserOperationListRegistrationApplications          UserOperation = "ListRegistrationApplications" | ||||
| 	UserOperationApproveRegistrationApplication        UserOperation = "ApproveRegistrationApplication" | ||||
| 	UserOperationBanPerson                             UserOperation = "BanPerson" | ||||
| 	UserOperationGetBannedPersons                      UserOperation = "GetBannedPersons" | ||||
| 	UserOperationMarkAllAsRead                         UserOperation = "MarkAllAsRead" | ||||
| 	UserOperationSaveUserSettings                      UserOperation = "SaveUserSettings" | ||||
| 	UserOperationTransferCommunity                     UserOperation = "TransferCommunity" | ||||
| 	UserOperationLeaveAdmin                            UserOperation = "LeaveAdmin" | ||||
| 	UserOperationPasswordReset                         UserOperation = "PasswordReset" | ||||
| 	UserOperationPasswordChange                        UserOperation = "PasswordChange" | ||||
| 	UserOperationMarkPrivateMessageAsRead              UserOperation = "MarkPrivateMessageAsRead" | ||||
| 	UserOperationCreatePrivateMessageReport            UserOperation = "CreatePrivateMessageReport" | ||||
| 	UserOperationResolvePrivateMessageReport           UserOperation = "ResolvePrivateMessageReport" | ||||
| 	UserOperationListPrivateMessageReports             UserOperation = "ListPrivateMessageReports" | ||||
| 	UserOperationUserJoin                              UserOperation = "UserJoin" | ||||
| 	UserOperationPostJoin                              UserOperation = "PostJoin" | ||||
| 	UserOperationCommunityJoin                         UserOperation = "CommunityJoin" | ||||
| 	UserOperationModJoin                               UserOperation = "ModJoin" | ||||
| 	UserOperationChangePassword                        UserOperation = "ChangePassword" | ||||
| 	UserOperationGetSiteMetadata                       UserOperation = "GetSiteMetadata" | ||||
| 	UserOperationBlockCommunity                        UserOperation = "BlockCommunity" | ||||
| 	UserOperationBlockPerson                           UserOperation = "BlockPerson" | ||||
| 	UserOperationPurgePerson                           UserOperation = "PurgePerson" | ||||
| 	UserOperationPurgeCommunity                        UserOperation = "PurgeCommunity" | ||||
| 	UserOperationPurgePost                             UserOperation = "PurgePost" | ||||
| 	UserOperationPurgeComment                          UserOperation = "PurgeComment" | ||||
| ) | ||||
|  | ||||
| type UserOperationCRUD string | ||||
|  | ||||
| const ( | ||||
| 	UserOperationCRUDCreateSite           UserOperationCRUD = "CreateSite" | ||||
| 	UserOperationCRUDGetSite              UserOperationCRUD = "GetSite" | ||||
| 	UserOperationCRUDEditSite             UserOperationCRUD = "EditSite" | ||||
| 	UserOperationCRUDCreateCommunity      UserOperationCRUD = "CreateCommunity" | ||||
| 	UserOperationCRUDListCommunities      UserOperationCRUD = "ListCommunities" | ||||
| 	UserOperationCRUDEditCommunity        UserOperationCRUD = "EditCommunity" | ||||
| 	UserOperationCRUDDeleteCommunity      UserOperationCRUD = "DeleteCommunity" | ||||
| 	UserOperationCRUDRemoveCommunity      UserOperationCRUD = "RemoveCommunity" | ||||
| 	UserOperationCRUDCreatePost           UserOperationCRUD = "CreatePost" | ||||
| 	UserOperationCRUDGetPost              UserOperationCRUD = "GetPost" | ||||
| 	UserOperationCRUDEditPost             UserOperationCRUD = "EditPost" | ||||
| 	UserOperationCRUDDeletePost           UserOperationCRUD = "DeletePost" | ||||
| 	UserOperationCRUDRemovePost           UserOperationCRUD = "RemovePost" | ||||
| 	UserOperationCRUDCreateComment        UserOperationCRUD = "CreateComment" | ||||
| 	UserOperationCRUDGetComment           UserOperationCRUD = "GetComment" | ||||
| 	UserOperationCRUDEditComment          UserOperationCRUD = "EditComment" | ||||
| 	UserOperationCRUDDeleteComment        UserOperationCRUD = "DeleteComment" | ||||
| 	UserOperationCRUDRemoveComment        UserOperationCRUD = "RemoveComment" | ||||
| 	UserOperationCRUDRegister             UserOperationCRUD = "Register" | ||||
| 	UserOperationCRUDDeleteAccount        UserOperationCRUD = "DeleteAccount" | ||||
| 	UserOperationCRUDCreatePrivateMessage UserOperationCRUD = "CreatePrivateMessage" | ||||
| 	UserOperationCRUDGetPrivateMessages   UserOperationCRUD = "GetPrivateMessages" | ||||
| 	UserOperationCRUDEditPrivateMessage   UserOperationCRUD = "EditPrivateMessage" | ||||
| 	UserOperationCRUDDeletePrivateMessage UserOperationCRUD = "DeletePrivateMessage" | ||||
| ) | ||||
|  | ||||
| type UserOperationApub string | ||||
|  | ||||
| const ( | ||||
| 	UserOperationApubGetPosts         UserOperationApub = "GetPosts" | ||||
| 	UserOperationApubGetCommunity     UserOperationApub = "GetCommunity" | ||||
| 	UserOperationApubGetComments      UserOperationApub = "GetComments" | ||||
| 	UserOperationApubGetPersonDetails UserOperationApub = "GetPersonDetails" | ||||
| 	UserOperationApubSearch           UserOperationApub = "Search" | ||||
| 	UserOperationApubResolveObject    UserOperationApub = "ResolveObject" | ||||
| ) | ||||
							
								
								
									
										207
									
								
								types/moderator.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										207
									
								
								types/moderator.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,207 @@ | ||||
| //  Source: lemmy/crates/db_schema/src/source/moderator.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
|  | ||||
| type ModRemovePost struct { | ||||
| 	ID          int32            `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        LemmyTime        `json:"when_" url:"when_,omitempty"` | ||||
| } | ||||
| type ModRemovePostForm struct { | ||||
| 	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"` | ||||
| } | ||||
| type ModLockPost struct { | ||||
| 	ID          int32          `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        LemmyTime      `json:"when_" url:"when_,omitempty"` | ||||
| } | ||||
| type ModLockPostForm struct { | ||||
| 	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"` | ||||
| } | ||||
| type ModFeaturePost struct { | ||||
| 	ID                  int32     `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"` | ||||
| 	Featured            bool      `json:"featured" url:"featured,omitempty"` | ||||
| 	When                LemmyTime `json:"when_" url:"when_,omitempty"` | ||||
| 	IsFeaturedCommunity bool      `json:"is_featured_community" url:"is_featured_community,omitempty"` | ||||
| } | ||||
| type ModFeaturePostForm struct { | ||||
| 	ModPersonID         int  `json:"mod_person_id" url:"mod_person_id,omitempty"` | ||||
| 	PostID              int  `json:"post_id" url:"post_id,omitempty"` | ||||
| 	Featured            bool `json:"featured" url:"featured,omitempty"` | ||||
| 	IsFeaturedCommunity bool `json:"is_featured_community" url:"is_featured_community,omitempty"` | ||||
| } | ||||
| type ModRemoveComment struct { | ||||
| 	ID          int32            `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        LemmyTime        `json:"when_" url:"when_,omitempty"` | ||||
| } | ||||
| type ModRemoveCommentForm struct { | ||||
| 	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"` | ||||
| } | ||||
| type ModRemoveCommunity struct { | ||||
| 	ID          int32            `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     LemmyTime        `json:"expires" url:"expires,omitempty"` | ||||
| 	When        LemmyTime        `json:"when_" url:"when_,omitempty"` | ||||
| } | ||||
| type ModRemoveCommunityForm struct { | ||||
| 	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     LemmyTime        `json:"expires" url:"expires,omitempty"` | ||||
| } | ||||
| type ModBanFromCommunity struct { | ||||
| 	ID            int32            `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       LemmyTime        `json:"expires" url:"expires,omitempty"` | ||||
| 	When          LemmyTime        `json:"when_" url:"when_,omitempty"` | ||||
| } | ||||
| type ModBanFromCommunityForm struct { | ||||
| 	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       LemmyTime        `json:"expires" url:"expires,omitempty"` | ||||
| } | ||||
| type ModBan struct { | ||||
| 	ID            int32            `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       LemmyTime        `json:"expires" url:"expires,omitempty"` | ||||
| 	When          LemmyTime        `json:"when_" url:"when_,omitempty"` | ||||
| } | ||||
| type ModHideCommunityForm struct { | ||||
| 	CommunityID int              `json:"community_id" url:"community_id,omitempty"` | ||||
| 	ModPersonID int              `json:"mod_person_id" url:"mod_person_id,omitempty"` | ||||
| 	Hidden      Optional[bool]   `json:"hidden" url:"hidden,omitempty"` | ||||
| 	Reason      Optional[string] `json:"reason" url:"reason,omitempty"` | ||||
| } | ||||
| type ModHideCommunity struct { | ||||
| 	ID          int32            `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        LemmyTime        `json:"when_" url:"when_,omitempty"` | ||||
| } | ||||
| type ModBanForm struct { | ||||
| 	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       LemmyTime        `json:"expires" url:"expires,omitempty"` | ||||
| } | ||||
| type ModAddCommunity struct { | ||||
| 	ID            int32          `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          LemmyTime      `json:"when_" url:"when_,omitempty"` | ||||
| } | ||||
| type ModAddCommunityForm struct { | ||||
| 	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"` | ||||
| } | ||||
| type ModTransferCommunity struct { | ||||
| 	ID            int32          `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          LemmyTime      `json:"when_" url:"when_,omitempty"` | ||||
| } | ||||
| type ModTransferCommunityForm struct { | ||||
| 	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"` | ||||
| } | ||||
| type ModAdd struct { | ||||
| 	ID            int32          `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          LemmyTime      `json:"when_" url:"when_,omitempty"` | ||||
| } | ||||
| type ModAddForm struct { | ||||
| 	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"` | ||||
| } | ||||
| type AdminPurgePerson struct { | ||||
| 	ID            int32            `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          LemmyTime        `json:"when_" url:"when_,omitempty"` | ||||
| } | ||||
| type AdminPurgePersonForm struct { | ||||
| 	AdminPersonID int              `json:"admin_person_id" url:"admin_person_id,omitempty"` | ||||
| 	Reason        Optional[string] `json:"reason" url:"reason,omitempty"` | ||||
| } | ||||
| type AdminPurgeCommunity struct { | ||||
| 	ID            int32            `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          LemmyTime        `json:"when_" url:"when_,omitempty"` | ||||
| } | ||||
| type AdminPurgeCommunityForm struct { | ||||
| 	AdminPersonID int              `json:"admin_person_id" url:"admin_person_id,omitempty"` | ||||
| 	Reason        Optional[string] `json:"reason" url:"reason,omitempty"` | ||||
| } | ||||
| type AdminPurgePost struct { | ||||
| 	ID            int32            `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          LemmyTime        `json:"when_" url:"when_,omitempty"` | ||||
| } | ||||
| type AdminPurgePostForm struct { | ||||
| 	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"` | ||||
| } | ||||
| type AdminPurgeComment struct { | ||||
| 	ID            int32            `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          LemmyTime        `json:"when_" url:"when_,omitempty"` | ||||
| } | ||||
| type AdminPurgeCommentForm struct { | ||||
| 	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"` | ||||
| } | ||||
							
								
								
									
										169
									
								
								types/others.go
									
									
									
									
									
								
							
							
						
						
									
										169
									
								
								types/others.go
									
									
									
									
									
								
							| @@ -1,169 +0,0 @@ | ||||
| package types | ||||
|  | ||||
| /*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"` | ||||
| }*/ | ||||
|  | ||||
| type UserOperation int | ||||
|  | ||||
| const ( | ||||
| 	LoginOp UserOperation = iota | ||||
| 	RegisterOp | ||||
| 	GetCaptchaOp | ||||
| 	CreateCommunityOp | ||||
| 	CreatePostOp | ||||
| 	ListCommunitiesOp | ||||
| 	GetPostOp | ||||
| 	GetCommunityOp | ||||
| 	CreateCommentOp | ||||
| 	EditCommentOp | ||||
| 	DeleteCommentOp | ||||
| 	RemoveCommentOp | ||||
| 	SaveCommentOp | ||||
| 	CreateCommentLikeOp | ||||
| 	GetPostsOp | ||||
| 	CreatePostLikeOp | ||||
| 	EditPostOp | ||||
| 	DeletePostOp | ||||
| 	RemovePostOp | ||||
| 	LockPostOp | ||||
| 	StickyPostOp | ||||
| 	MarkPostAsReadOp | ||||
| 	SavePostOp | ||||
| 	EditCommunityOp | ||||
| 	DeleteCommunityOp | ||||
| 	RemoveCommunityOp | ||||
| 	FollowCommunityOp | ||||
| 	GetPersonDetailsOp | ||||
| 	GetRepliesOp | ||||
| 	GetPersonMentionsOp | ||||
| 	MarkPersonMentionAsReadOp | ||||
| 	MarkCommentReplyAsReadOp | ||||
| 	GetModlogOp | ||||
| 	BanFromCommunityOp | ||||
| 	AddModToCommunityOp | ||||
| 	CreateSiteOp | ||||
| 	EditSiteOp | ||||
| 	GetSiteOp | ||||
| 	AddAdminOp | ||||
| 	GetUnreadRegistrationApplicationCountOp | ||||
| 	ListRegistrationApplicationsOp | ||||
| 	ApproveRegistrationApplicationOp | ||||
| 	BanPersonOp | ||||
| 	GetBannedPersonsOp | ||||
| 	SearchOp | ||||
| 	ResolveObjectOp | ||||
| 	MarkAllAsReadOp | ||||
| 	SaveUserSettingsOp | ||||
| 	TransferCommunityOp | ||||
| 	LeaveAdminOp | ||||
| 	DeleteAccountOp | ||||
| 	PasswordResetOp | ||||
| 	PasswordChangeOp | ||||
| 	CreatePrivateMessageOp | ||||
| 	EditPrivateMessageOp | ||||
| 	DeletePrivateMessageOp | ||||
| 	MarkPrivateMessageAsReadOp | ||||
| 	CreatePrivateMessageReportOp | ||||
| 	ResolvePrivateMessageReportOp | ||||
| 	ListPrivateMessageReportsOp | ||||
| 	GetPrivateMessagesOp | ||||
| 	UserJoinOp | ||||
| 	GetCommentsOp | ||||
| 	PostJoinOp | ||||
| 	CommunityJoinOp | ||||
| 	ChangePasswordOp | ||||
| 	GetSiteMetadataOp | ||||
| 	BlockCommunityOp | ||||
| 	BlockPersonOp | ||||
| 	PurgePersonOp | ||||
| 	PurgeCommunityOp | ||||
| 	PurgePostOp | ||||
| 	PurgeCommentOp | ||||
| 	CreateCommentReportOp | ||||
| 	ResolveCommentReportOp | ||||
| 	ListCommentReportsOp | ||||
| 	CreatePostReportOp | ||||
| 	ResolvePostReportOp | ||||
| 	ListPostReportsOp | ||||
| 	GetReportCountOp | ||||
| 	GetUnreadCountOp | ||||
| 	VerifyEmailOp | ||||
| ) | ||||
|  | ||||
| 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" | ||||
| ) | ||||
							
								
								
									
										15
									
								
								types/password_reset_request.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								types/password_reset_request.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | ||||
| //  Source: lemmy/crates/db_schema/src/source/password_reset_request.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
|  | ||||
| type PasswordResetRequest struct { | ||||
| 	ID             int32     `json:"id" url:"id,omitempty"` | ||||
| 	TokenEncrypted string    `json:"token_encrypted" url:"token_encrypted,omitempty"` | ||||
| 	Published      LemmyTime `json:"published" url:"published,omitempty"` | ||||
| 	LocalUserID    int       `json:"local_user_id" url:"local_user_id,omitempty"` | ||||
| } | ||||
| type PasswordResetRequestForm struct { | ||||
| 	LocalUserID    int    `json:"local_user_id" url:"local_user_id,omitempty"` | ||||
| 	TokenEncrypted string `json:"token_encrypted" url:"token_encrypted,omitempty"` | ||||
| } | ||||
							
								
								
									
										105
									
								
								types/person.1.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										105
									
								
								types/person.1.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,105 @@ | ||||
| //  Source: lemmy/crates/db_schema/src/source/person.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
|  | ||||
| type Person 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       LemmyTime        `json:"published" url:"published,omitempty"` | ||||
| 	Updated         LemmyTime        `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"` | ||||
| 	PrivateKey      Optional[string] `json:"private_key" url:"private_key,omitempty"` | ||||
| 	PublicKey       string           `json:"public_key" url:"public_key,omitempty"` | ||||
| 	LastRefreshedAt LemmyTime        `json:"last_refreshed_at" url:"last_refreshed_at,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      LemmyTime        `json:"ban_expires" url:"ban_expires,omitempty"` | ||||
| 	InstanceID      int              `json:"instance_id" url:"instance_id,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      LemmyTime        `json:"published" url:"published,omitempty"` | ||||
| 	Updated        LemmyTime        `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     LemmyTime        `json:"ban_expires" url:"ban_expires,omitempty"` | ||||
| 	InstanceID     int              `json:"instance_id" url:"instance_id,omitempty"` | ||||
| } | ||||
| type PersonInsertForm struct { | ||||
| 	Name            string           `json:"name" url:"name,omitempty"` | ||||
| 	PublicKey       string           `json:"public_key" url:"public_key,omitempty"` | ||||
| 	InstanceID      int              `json:"instance_id" url:"instance_id,omitempty"` | ||||
| 	DisplayName     Optional[string] `json:"display_name" url:"display_name,omitempty"` | ||||
| 	Avatar          Optional[string] `json:"avatar" url:"avatar,omitempty"` | ||||
| 	Banned          Optional[bool]   `json:"banned" url:"banned,omitempty"` | ||||
| 	Published       LemmyTime        `json:"published" url:"published,omitempty"` | ||||
| 	Updated         LemmyTime        `json:"updated" url:"updated,omitempty"` | ||||
| 	ActorID         Optional[string] `json:"actor_id" url:"actor_id,omitempty"` | ||||
| 	Bio             Optional[string] `json:"bio" url:"bio,omitempty"` | ||||
| 	Local           Optional[bool]   `json:"local" url:"local,omitempty"` | ||||
| 	PrivateKey      Optional[string] `json:"private_key" url:"private_key,omitempty"` | ||||
| 	LastRefreshedAt LemmyTime        `json:"last_refreshed_at" url:"last_refreshed_at,omitempty"` | ||||
| 	Banner          Optional[string] `json:"banner" url:"banner,omitempty"` | ||||
| 	Deleted         Optional[bool]   `json:"deleted" url:"deleted,omitempty"` | ||||
| 	InboxURL        Optional[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           Optional[bool]   `json:"admin" url:"admin,omitempty"` | ||||
| 	BotAccount      Optional[bool]   `json:"bot_account" url:"bot_account,omitempty"` | ||||
| 	BanExpires      LemmyTime        `json:"ban_expires" url:"ban_expires,omitempty"` | ||||
| } | ||||
| type PersonUpdateForm struct { | ||||
| 	DisplayName     Optional[Optional[string]] `json:"display_name" url:"display_name,omitempty"` | ||||
| 	Avatar          Optional[Optional[string]] `json:"avatar" url:"avatar,omitempty"` | ||||
| 	Banned          Optional[bool]             `json:"banned" url:"banned,omitempty"` | ||||
| 	Updated         LemmyTime                  `json:"updated" url:"updated,omitempty"` | ||||
| 	ActorID         Optional[string]           `json:"actor_id" url:"actor_id,omitempty"` | ||||
| 	Bio             Optional[Optional[string]] `json:"bio" url:"bio,omitempty"` | ||||
| 	Local           Optional[bool]             `json:"local" url:"local,omitempty"` | ||||
| 	PublicKey       Optional[string]           `json:"public_key" url:"public_key,omitempty"` | ||||
| 	PrivateKey      Optional[Optional[string]] `json:"private_key" url:"private_key,omitempty"` | ||||
| 	LastRefreshedAt LemmyTime                  `json:"last_refreshed_at" url:"last_refreshed_at,omitempty"` | ||||
| 	Banner          Optional[Optional[string]] `json:"banner" url:"banner,omitempty"` | ||||
| 	Deleted         Optional[bool]             `json:"deleted" url:"deleted,omitempty"` | ||||
| 	InboxURL        Optional[string]           `json:"inbox_url" url:"inbox_url,omitempty"` | ||||
| 	SharedInboxURL  Optional[Optional[string]] `json:"shared_inbox_url" url:"shared_inbox_url,omitempty"` | ||||
| 	MatrixUserID    Optional[Optional[string]] `json:"matrix_user_id" url:"matrix_user_id,omitempty"` | ||||
| 	Admin           Optional[bool]             `json:"admin" url:"admin,omitempty"` | ||||
| 	BotAccount      Optional[bool]             `json:"bot_account" url:"bot_account,omitempty"` | ||||
| 	BanExpires      LemmyTime                  `json:"ban_expires" url:"ban_expires,omitempty"` | ||||
| } | ||||
| type PersonFollower struct { | ||||
| 	ID         int32     `json:"id" url:"id,omitempty"` | ||||
| 	PersonID   int       `json:"person_id" url:"person_id,omitempty"` | ||||
| 	FollowerID int       `json:"follower_id" url:"follower_id,omitempty"` | ||||
| 	Published  LemmyTime `json:"published" url:"published,omitempty"` | ||||
| 	Pending    bool      `json:"pending" url:"pending,omitempty"` | ||||
| } | ||||
| type PersonFollowerForm struct { | ||||
| 	PersonID   int  `json:"person_id" url:"person_id,omitempty"` | ||||
| 	FollowerID int  `json:"follower_id" url:"follower_id,omitempty"` | ||||
| 	Pending    bool `json:"pending" url:"pending,omitempty"` | ||||
| } | ||||
							
								
								
									
										208
									
								
								types/person.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										208
									
								
								types/person.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,208 @@ | ||||
| //  Source: lemmy/crates/api_common/src/person.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
|  | ||||
| type Login struct { | ||||
| 	UsernameOrEmail string `json:"username_or_email" url:"username_or_email,omitempty"` | ||||
| 	Password        string `json:"password" url:"password,omitempty"` | ||||
| } | ||||
| 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 GetCaptchaResponse struct { | ||||
| 	Ok Optional[CaptchaResponse] `json:"ok" url:"ok,omitempty"` | ||||
| 	LemmyResponse | ||||
| } | ||||
| 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 LoginResponse struct { | ||||
| 	JWT                 Optional[string] `json:"jwt" url:"jwt,omitempty"` | ||||
| 	RegistrationCreated bool             `json:"registration_created" url:"registration_created,omitempty"` | ||||
| 	VerifyEmailSent     bool             `json:"verify_email_sent" url:"verify_email_sent,omitempty"` | ||||
| 	LemmyResponse | ||||
| } | ||||
| 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 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 BannedPersonsResponse struct { | ||||
| 	Banned []PersonViewSafe `json:"banned" url:"banned,omitempty"` | ||||
| 	LemmyResponse | ||||
| } | ||||
| 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 BlockPersonResponse struct { | ||||
| 	PersonView PersonViewSafe `json:"person_view" url:"person_view,omitempty"` | ||||
| 	Blocked    bool           `json:"blocked" url:"blocked,omitempty"` | ||||
| 	LemmyResponse | ||||
| } | ||||
| type GetReplies 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 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 | ||||
| } | ||||
							
								
								
									
										243
									
								
								types/person.go
									
									
									
									
									
								
							
							
						
						
									
										243
									
								
								types/person.go
									
									
									
									
									
								
							| @@ -1,243 +0,0 @@ | ||||
| package types | ||||
|  | ||||
| type Login struct { | ||||
| 	Password        string `json:"password,omitempty" url:"password,omitempty"` | ||||
| 	UsernameOrEmail string `json:"username_or_email,omitempty" url:"username_or_email,omitempty"` | ||||
| } | ||||
|  | ||||
| type LoginResponse struct { | ||||
| 	JWT                 Optional[string] `json:"jwt,omitempty" url:"jwt,omitempty"` | ||||
| 	RegistrationCreated bool             `json:"registration_created,omitempty" url:"registration_created,omitempty"` | ||||
| 	VeriftEmailSent     bool             `json:"verify_email_sent,omitempty" url:"verify_email_sent,omitempty"` | ||||
| 	LemmyResponse | ||||
| } | ||||
|  | ||||
| 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 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"` | ||||
| 	InterfaceLanguage        Optional[string] `json:"interface_language,omitempty" url:"interface_language,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"` | ||||
| 	DiscussionLanguages      Optional[[]int]  `json:"discussion_languages,omitempty" url:"discussion_languages,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 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 GetReplies struct { | ||||
| 	Limit      Optional[int]             `json:"limit,omitempty" url:"limit,omitempty"` | ||||
| 	Page       Optional[int]             `json:"page,omitempty" url:"page,omitempty"` | ||||
| 	Sort       Optional[CommentSortType] `json:"sort,omitempty" url:"sort,omitempty"` | ||||
| 	UnreadOnly Optional[bool]            `json:"unread_only,omitempty" url:"unread_only,omitempty"` | ||||
| 	Auth       string                    `json:"auth,omitempty" url:"auth,omitempty"` | ||||
| } | ||||
|  | ||||
| type GetRepliesResponse struct { | ||||
| 	Replies []CommentReplyView `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 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 GetPersonMentions struct { | ||||
| 	Sort       Optional[CommentSortType] `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 MarkCommentReplyAsRead struct { | ||||
| 	CommentReplyID int    `json:"comment_reply_id,omitempty" url:"comment_reply_id,omitempty"` | ||||
| 	Read           bool   `json:"read,omitempty" url:"read,omitempty"` | ||||
| 	Auth           string `json:"auth,omitempty" url:"auth,omitempty"` | ||||
| } | ||||
|  | ||||
| type CommentReplyResponse struct { | ||||
| 	CommentReplyView CommentReplyView `json:"comment_reply_view,omitempty" url:"comment_reply_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 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"` | ||||
| 	PrivateMessageReports Optional[int64] `json:"private_message_reports,omitempty" url:"private_message_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 | ||||
| } | ||||
|  | ||||
| type BlockPersonResponse struct { | ||||
| 	Blocked    bool           `json:"blocked,omitempty" url:"blocked,omitempty"` | ||||
| 	PersonView PersonViewSafe `json:"person_view,omitempty" url:"person_view,omitempty"` | ||||
| 	LemmyResponse | ||||
| } | ||||
|  | ||||
| type BannedPersonsResponse struct { | ||||
| 	Banned []PersonViewSafe `json:"banned,omitempty" url:"banned,omitempty"` | ||||
| 	LemmyResponse | ||||
| } | ||||
|  | ||||
| type PasswordChange struct { | ||||
| 	Password       string `json:"password,omitempty" url:"password,omitempty"` | ||||
| 	PasswordVerify string `json:"password_verify,omitempty" url:"password_verify,omitempty"` | ||||
| 	Token          string `json:"token,omitempty" url:"token,omitempty"` | ||||
| } | ||||
							
								
								
									
										15
									
								
								types/person_block.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								types/person_block.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | ||||
| //  Source: lemmy/crates/db_schema/src/source/person_block.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
|  | ||||
| type PersonBlock struct { | ||||
| 	ID        int       `json:"id" url:"id,omitempty"` | ||||
| 	PersonID  int       `json:"person_id" url:"person_id,omitempty"` | ||||
| 	TargetID  int       `json:"target_id" url:"target_id,omitempty"` | ||||
| 	Published LemmyTime `json:"published" url:"published,omitempty"` | ||||
| } | ||||
| type PersonBlockForm struct { | ||||
| 	PersonID int `json:"person_id" url:"person_id,omitempty"` | ||||
| 	TargetID int `json:"target_id" url:"target_id,omitempty"` | ||||
| } | ||||
							
								
								
									
										20
									
								
								types/person_mention.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								types/person_mention.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | ||||
| //  Source: lemmy/crates/db_schema/src/source/person_mention.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
|  | ||||
| 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   LemmyTime `json:"published" url:"published,omitempty"` | ||||
| } | ||||
| type PersonMentionInsertForm struct { | ||||
| 	RecipientID int            `json:"recipient_id" url:"recipient_id,omitempty"` | ||||
| 	CommentID   int            `json:"comment_id" url:"comment_id,omitempty"` | ||||
| 	Read        Optional[bool] `json:"read" url:"read,omitempty"` | ||||
| } | ||||
| type PersonMentionUpdateForm struct { | ||||
| 	Read Optional[bool] `json:"read" url:"read,omitempty"` | ||||
| } | ||||
							
								
								
									
										102
									
								
								types/post.1.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										102
									
								
								types/post.1.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,102 @@ | ||||
| //  Source: lemmy/crates/db_schema/src/source/post.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
|  | ||||
| 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         LemmyTime        `json:"published" url:"published,omitempty"` | ||||
| 	Updated           LemmyTime        `json:"updated" url:"updated,omitempty"` | ||||
| 	Deleted           bool             `json:"deleted" url:"deleted,omitempty"` | ||||
| 	NSFW              bool             `json:"nsfw" url:"nsfw,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"` | ||||
| 	FeaturedCommunity bool             `json:"featured_community" url:"featured_community,omitempty"` | ||||
| 	FeaturedLocal     bool             `json:"featured_local" url:"featured_local,omitempty"` | ||||
| } | ||||
| type PostInsertForm struct { | ||||
| 	Name              string           `json:"name" url:"name,omitempty"` | ||||
| 	CreatorID         int              `json:"creator_id" url:"creator_id,omitempty"` | ||||
| 	CommunityID       int              `json:"community_id" url:"community_id,omitempty"` | ||||
| 	NSFW              Optional[bool]   `json:"nsfw" url:"nsfw,omitempty"` | ||||
| 	URL               Optional[string] `json:"url" url:"url,omitempty"` | ||||
| 	Body              Optional[string] `json:"body" url:"body,omitempty"` | ||||
| 	Removed           Optional[bool]   `json:"removed" url:"removed,omitempty"` | ||||
| 	Locked            Optional[bool]   `json:"locked" url:"locked,omitempty"` | ||||
| 	Updated           LemmyTime        `json:"updated" url:"updated,omitempty"` | ||||
| 	Published         LemmyTime        `json:"published" url:"published,omitempty"` | ||||
| 	Deleted           Optional[bool]   `json:"deleted" url:"deleted,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              Optional[string] `json:"ap_id" url:"ap_id,omitempty"` | ||||
| 	Local             Optional[bool]   `json:"local" url:"local,omitempty"` | ||||
| 	LanguageID        Optional[int]    `json:"language_id" url:"language_id,omitempty"` | ||||
| 	FeaturedCommunity Optional[bool]   `json:"featured_community" url:"featured_community,omitempty"` | ||||
| 	FeaturedLocal     Optional[bool]   `json:"featured_local" url:"featured_local,omitempty"` | ||||
| } | ||||
| type PostUpdateForm struct { | ||||
| 	Name              Optional[string]           `json:"name" url:"name,omitempty"` | ||||
| 	NSFW              Optional[bool]             `json:"nsfw" url:"nsfw,omitempty"` | ||||
| 	URL               Optional[Optional[string]] `json:"url" url:"url,omitempty"` | ||||
| 	Body              Optional[Optional[string]] `json:"body" url:"body,omitempty"` | ||||
| 	Removed           Optional[bool]             `json:"removed" url:"removed,omitempty"` | ||||
| 	Locked            Optional[bool]             `json:"locked" url:"locked,omitempty"` | ||||
| 	Published         LemmyTime                  `json:"published" url:"published,omitempty"` | ||||
| 	Updated           LemmyTime                  `json:"updated" url:"updated,omitempty"` | ||||
| 	Deleted           Optional[bool]             `json:"deleted" url:"deleted,omitempty"` | ||||
| 	EmbedTitle        Optional[Optional[string]] `json:"embed_title" url:"embed_title,omitempty"` | ||||
| 	EmbedDescription  Optional[Optional[string]] `json:"embed_description" url:"embed_description,omitempty"` | ||||
| 	EmbedVideoURL     Optional[Optional[string]] `json:"embed_video_url" url:"embed_video_url,omitempty"` | ||||
| 	ThumbnailURL      Optional[Optional[string]] `json:"thumbnail_url" url:"thumbnail_url,omitempty"` | ||||
| 	ApID              Optional[string]           `json:"ap_id" url:"ap_id,omitempty"` | ||||
| 	Local             Optional[bool]             `json:"local" url:"local,omitempty"` | ||||
| 	LanguageID        Optional[int]              `json:"language_id" url:"language_id,omitempty"` | ||||
| 	FeaturedCommunity Optional[bool]             `json:"featured_community" url:"featured_community,omitempty"` | ||||
| 	FeaturedLocal     Optional[bool]             `json:"featured_local" url:"featured_local,omitempty"` | ||||
| } | ||||
| type PostLike struct { | ||||
| 	ID        int32     `json:"id" url:"id,omitempty"` | ||||
| 	PostID    int       `json:"post_id" url:"post_id,omitempty"` | ||||
| 	PersonID  int       `json:"person_id" url:"person_id,omitempty"` | ||||
| 	Score     int16     `json:"score" url:"score,omitempty"` | ||||
| 	Published LemmyTime `json:"published" url:"published,omitempty"` | ||||
| } | ||||
| type PostLikeForm struct { | ||||
| 	PostID   int   `json:"post_id" url:"post_id,omitempty"` | ||||
| 	PersonID int   `json:"person_id" url:"person_id,omitempty"` | ||||
| 	Score    int16 `json:"score" url:"score,omitempty"` | ||||
| } | ||||
| type PostSaved struct { | ||||
| 	ID        int32     `json:"id" url:"id,omitempty"` | ||||
| 	PostID    int       `json:"post_id" url:"post_id,omitempty"` | ||||
| 	PersonID  int       `json:"person_id" url:"person_id,omitempty"` | ||||
| 	Published LemmyTime `json:"published" url:"published,omitempty"` | ||||
| } | ||||
| type PostSavedForm struct { | ||||
| 	PostID   int `json:"post_id" url:"post_id,omitempty"` | ||||
| 	PersonID int `json:"person_id" url:"person_id,omitempty"` | ||||
| } | ||||
| type PostRead struct { | ||||
| 	ID        int32     `json:"id" url:"id,omitempty"` | ||||
| 	PostID    int       `json:"post_id" url:"post_id,omitempty"` | ||||
| 	PersonID  int       `json:"person_id" url:"person_id,omitempty"` | ||||
| 	Published LemmyTime `json:"published" url:"published,omitempty"` | ||||
| } | ||||
| type PostReadForm struct { | ||||
| 	PostID   int `json:"post_id" url:"post_id,omitempty"` | ||||
| 	PersonID int `json:"person_id" url:"person_id,omitempty"` | ||||
| } | ||||
							
								
								
									
										129
									
								
								types/post.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										129
									
								
								types/post.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,129 @@ | ||||
| //  Source: lemmy/crates/api_common/src/post.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| 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   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       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    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    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   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   string `json:"auth" url:"auth,omitempty"` | ||||
| } | ||||
| type FeaturePost struct { | ||||
| 	PostID      int             `json:"post_id" url:"post_id,omitempty"` | ||||
| 	Featured    bool            `json:"featured" url:"featured,omitempty"` | ||||
| 	FeatureType PostFeatureType `json:"feature_type" url:"feature_type,omitempty"` | ||||
| 	Auth        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   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   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     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           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"` | ||||
| } | ||||
							
								
								
									
										146
									
								
								types/post.go
									
									
									
									
									
								
							
							
						
						
									
										146
									
								
								types/post.go
									
									
									
									
									
								
							| @@ -1,146 +0,0 @@ | ||||
| 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"` | ||||
| 	LanguageID  Optional[int]    `json:"language_id,omitempty" url:"language_id,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        Optional[int]    `json:"id,omitempty" url:"id,omitempty"` | ||||
| 	CommentID Optional[int]    `json:"comment_id,omitempty" url:"comment_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"` | ||||
| 	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   Optional[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"` | ||||
| 	LanguageID Optional[int]    `json:"language_id,omitempty" url:"language_id,omitempty"` | ||||
| 	Auth       Optional[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    Optional[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    Optional[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   Optional[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   Optional[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     Optional[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   Optional[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   Optional[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     Optional[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           Optional[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"` | ||||
| 	EmbedVideoURL Optional[string] `json:"embed_video_url,omitempty" url:"embed_video_url,omitempty"` | ||||
| } | ||||
							
								
								
									
										26
									
								
								types/post_report.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								types/post_report.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | ||||
| //  Source: lemmy/crates/db_schema/src/source/post_report.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
|  | ||||
| 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        LemmyTime        `json:"published" url:"published,omitempty"` | ||||
| 	Updated          LemmyTime        `json:"updated" url:"updated,omitempty"` | ||||
| } | ||||
| type PostReportForm struct { | ||||
| 	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"` | ||||
| } | ||||
| @@ -1,71 +0,0 @@ | ||||
| package types | ||||
|  | ||||
| type CreatePrivateMessage struct { | ||||
| 	Content     string           `json:"content,omitempty" url:"content,omitempty"` | ||||
| 	RecipientID int              `json:"recipient_id,omitempty" url:"recipient_id,omitempty"` | ||||
| 	Auth        Optional[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             Optional[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             Optional[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             Optional[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       Optional[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 CreatePrivateMessageReport struct { | ||||
| 	PrivateMessageID int              `json:"private_message_id,omitempty" url:"private_message_id,omitempty"` | ||||
| 	Reason           string           `json:"reason,omitempty" url:"reason,omitempty"` | ||||
| 	Auth             Optional[string] `json:"auth,omitempty" url:"auth,omitempty"` | ||||
| } | ||||
|  | ||||
| type PrivateMessageReportResponse struct { | ||||
| 	PrivateMessageReportView PrivateMessageReportView `json:"private_message_report_view,omitempty" url:"private_message_report_view,omitempty"` | ||||
| 	LemmyResponse | ||||
| } | ||||
|  | ||||
| type ResolvePrivateMessageReport struct { | ||||
| 	ReportID int              `json:"report_id,omitempty" url:"report_id,omitempty"` | ||||
| 	Resolved bool             `json:"resolved,omitempty" url:"resolved,omitempty"` | ||||
| 	Auth     Optional[string] `json:"auth,omitempty" url:"auth,omitempty"` | ||||
| } | ||||
|  | ||||
| type ListPrivateMessageReports 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"` | ||||
| 	Auth           Optional[string] `json:"auth,omitempty" url:"auth,omitempty"` | ||||
| } | ||||
|  | ||||
| type ListPrivateMessageReportsResponse struct { | ||||
| 	PrivateMessageReports []PrivateMessageReportView `json:"private_message_reports,omitempty" url:"private_message_reports,omitempty"` | ||||
| 	LemmyResponse | ||||
| } | ||||
							
								
								
									
										37
									
								
								types/private_message.1.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								types/private_message.1.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,37 @@ | ||||
| //  Source: lemmy/crates/db_schema/src/source/private_message.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
|  | ||||
| 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   LemmyTime `json:"published" url:"published,omitempty"` | ||||
| 	Updated     LemmyTime `json:"updated" url:"updated,omitempty"` | ||||
| 	ApID        string    `json:"ap_id" url:"ap_id,omitempty"` | ||||
| 	Local       bool      `json:"local" url:"local,omitempty"` | ||||
| } | ||||
| type PrivateMessageInsertForm struct { | ||||
| 	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     Optional[bool]   `json:"deleted" url:"deleted,omitempty"` | ||||
| 	Read        Optional[bool]   `json:"read" url:"read,omitempty"` | ||||
| 	Published   LemmyTime        `json:"published" url:"published,omitempty"` | ||||
| 	Updated     LemmyTime        `json:"updated" url:"updated,omitempty"` | ||||
| 	ApID        Optional[string] `json:"ap_id" url:"ap_id,omitempty"` | ||||
| 	Local       Optional[bool]   `json:"local" url:"local,omitempty"` | ||||
| } | ||||
| type PrivateMessageUpdateForm struct { | ||||
| 	Content   Optional[string] `json:"content" url:"content,omitempty"` | ||||
| 	Deleted   Optional[bool]   `json:"deleted" url:"deleted,omitempty"` | ||||
| 	Read      Optional[bool]   `json:"read" url:"read,omitempty"` | ||||
| 	Published LemmyTime        `json:"published" url:"published,omitempty"` | ||||
| 	Updated   LemmyTime        `json:"updated" url:"updated,omitempty"` | ||||
| 	ApID      Optional[string] `json:"ap_id" url:"ap_id,omitempty"` | ||||
| 	Local     Optional[bool]   `json:"local" url:"local,omitempty"` | ||||
| } | ||||
							
								
								
									
										63
									
								
								types/private_message.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								types/private_message.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,63 @@ | ||||
| //  Source: lemmy/crates/api_common/src/private_message.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
|  | ||||
| type CreatePrivateMessage struct { | ||||
| 	Content     string `json:"content" url:"content,omitempty"` | ||||
| 	RecipientID int    `json:"recipient_id" url:"recipient_id,omitempty"` | ||||
| 	Auth        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             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             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             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       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             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     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           string          `json:"auth" url:"auth,omitempty"` | ||||
| } | ||||
| type ListPrivateMessageReportsResponse struct { | ||||
| 	PrivateMessageReports []PrivateMessageReportView `json:"private_message_reports" url:"private_message_reports,omitempty"` | ||||
| 	LemmyResponse | ||||
| } | ||||
							
								
								
									
										22
									
								
								types/private_message_report.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								types/private_message_report.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | ||||
| //  Source: lemmy/crates/db_schema/src/source/private_message_report.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
|  | ||||
| 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        LemmyTime     `json:"published" url:"published,omitempty"` | ||||
| 	Updated          LemmyTime     `json:"updated" url:"updated,omitempty"` | ||||
| } | ||||
| type PrivateMessageReportForm struct { | ||||
| 	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"` | ||||
| } | ||||
							
								
								
									
										21
									
								
								types/registration_application.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								types/registration_application.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,21 @@ | ||||
| //  Source: lemmy/crates/db_schema/src/source/registration_application.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
|  | ||||
| type RegistrationApplication struct { | ||||
| 	ID          int32            `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   LemmyTime        `json:"published" url:"published,omitempty"` | ||||
| } | ||||
| type RegistrationApplicationInsertForm struct { | ||||
| 	LocalUserID int    `json:"local_user_id" url:"local_user_id,omitempty"` | ||||
| 	Answer      string `json:"answer" url:"answer,omitempty"` | ||||
| } | ||||
| type RegistrationApplicationUpdateForm struct { | ||||
| 	AdminID    Optional[Optional[int]]    `json:"admin_id" url:"admin_id,omitempty"` | ||||
| 	DenyReason Optional[Optional[string]] `json:"deny_reason" url:"deny_reason,omitempty"` | ||||
| } | ||||
							
								
								
									
										4
									
								
								types/request.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								types/request.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | ||||
| //  Source: lemmy/crates/api_common/src/request.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
							
								
								
									
										9
									
								
								types/secret.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								types/secret.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | ||||
| //  Source: lemmy/crates/db_schema/src/source/secret.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
|  | ||||
| type Secret struct { | ||||
| 	ID        int32  `json:"id" url:"id,omitempty"` | ||||
| 	JWTSecret string `json:"jwt_secret" url:"jwt_secret,omitempty"` | ||||
| } | ||||
							
								
								
									
										4
									
								
								types/send.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								types/send.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | ||||
| //  Source: lemmy/crates/api_common/src/websocket/send.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
							
								
								
									
										4
									
								
								types/sensitive.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								types/sensitive.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | ||||
| //  Source: lemmy/crates/api_common/src/sensitive.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
							
								
								
									
										48
									
								
								types/site.1.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								types/site.1.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,48 @@ | ||||
| //  Source: lemmy/crates/db_schema/src/source/site.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
|  | ||||
| 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       LemmyTime        `json:"published" url:"published,omitempty"` | ||||
| 	Updated         LemmyTime        `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 LemmyTime        `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 SiteInsertForm struct { | ||||
| 	Name            string           `json:"name" url:"name,omitempty"` | ||||
| 	Sidebar         Optional[string] `json:"sidebar" url:"sidebar,omitempty"` | ||||
| 	Updated         LemmyTime        `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         Optional[string] `json:"actor_id" url:"actor_id,omitempty"` | ||||
| 	LastRefreshedAt LemmyTime        `json:"last_refreshed_at" url:"last_refreshed_at,omitempty"` | ||||
| 	InboxURL        Optional[string] `json:"inbox_url" url:"inbox_url,omitempty"` | ||||
| 	PrivateKey      Optional[string] `json:"private_key" url:"private_key,omitempty"` | ||||
| 	PublicKey       Optional[string] `json:"public_key" url:"public_key,omitempty"` | ||||
| 	InstanceID      int              `json:"instance_id" url:"instance_id,omitempty"` | ||||
| } | ||||
| type SiteUpdateForm struct { | ||||
| 	Name            Optional[string]           `json:"name" url:"name,omitempty"` | ||||
| 	Sidebar         Optional[Optional[string]] `json:"sidebar" url:"sidebar,omitempty"` | ||||
| 	Updated         LemmyTime                  `json:"updated" url:"updated,omitempty"` | ||||
| 	Icon            Optional[Optional[string]] `json:"icon" url:"icon,omitempty"` | ||||
| 	Banner          Optional[Optional[string]] `json:"banner" url:"banner,omitempty"` | ||||
| 	Description     Optional[Optional[string]] `json:"description" url:"description,omitempty"` | ||||
| 	ActorID         Optional[string]           `json:"actor_id" url:"actor_id,omitempty"` | ||||
| 	LastRefreshedAt LemmyTime                  `json:"last_refreshed_at" url:"last_refreshed_at,omitempty"` | ||||
| 	InboxURL        Optional[string]           `json:"inbox_url" url:"inbox_url,omitempty"` | ||||
| 	PrivateKey      Optional[Optional[string]] `json:"private_key" url:"private_key,omitempty"` | ||||
| 	PublicKey       Optional[string]           `json:"public_key" url:"public_key,omitempty"` | ||||
| } | ||||
							
								
								
									
										235
									
								
								types/site.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										235
									
								
								types/site.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,235 @@ | ||||
| //  Source: lemmy/crates/api_common/src/site.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
|  | ||||
| type Search struct { | ||||
| 	Q             string                `json:"q" url:"q,omitempty"` | ||||
| 	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"` | ||||
| 	Type          Optional[SearchType]  `json:"type_" url:"type_,omitempty"` | ||||
| 	Sort          Optional[SortType]    `json:"sort" url:"sort,omitempty"` | ||||
| 	ListingType   Optional[ListingType] `json:"listing_type" url:"listing_type,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 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 { | ||||
| 	Q    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"` | ||||
| 	FeaturedPosts          []ModFeaturePostView       `json:"featured_posts" url:"featured_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"` | ||||
| 	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"` | ||||
| 	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[int32]            `json:"actor_name_max_length" url:"actor_name_max_length,omitempty"` | ||||
| 	RateLimitMessage           Optional[int32]            `json:"rate_limit_message" url:"rate_limit_message,omitempty"` | ||||
| 	RateLimitMessagePerSecond  Optional[int32]            `json:"rate_limit_message_per_second" url:"rate_limit_message_per_second,omitempty"` | ||||
| 	RateLimitPost              Optional[int32]            `json:"rate_limit_post" url:"rate_limit_post,omitempty"` | ||||
| 	RateLimitPostPerSecond     Optional[int32]            `json:"rate_limit_post_per_second" url:"rate_limit_post_per_second,omitempty"` | ||||
| 	RateLimitRegister          Optional[int32]            `json:"rate_limit_register" url:"rate_limit_register,omitempty"` | ||||
| 	RateLimitRegisterPerSecond Optional[int32]            `json:"rate_limit_register_per_second" url:"rate_limit_register_per_second,omitempty"` | ||||
| 	RateLimitImage             Optional[int32]            `json:"rate_limit_image" url:"rate_limit_image,omitempty"` | ||||
| 	RateLimitImagePerSecond    Optional[int32]            `json:"rate_limit_image_per_second" url:"rate_limit_image_per_second,omitempty"` | ||||
| 	RateLimitComment           Optional[int32]            `json:"rate_limit_comment" url:"rate_limit_comment,omitempty"` | ||||
| 	RateLimitCommentPerSecond  Optional[int32]            `json:"rate_limit_comment_per_second" url:"rate_limit_comment_per_second,omitempty"` | ||||
| 	RateLimitSearch            Optional[int32]            `json:"rate_limit_search" url:"rate_limit_search,omitempty"` | ||||
| 	RateLimitSearchPerSecond   Optional[int32]            `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[int32]            `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"` | ||||
| 	RegistrationMode           Optional[RegistrationMode] `json:"registration_mode" url:"registration_mode,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"` | ||||
| 	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"` | ||||
| 	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[int32]            `json:"actor_name_max_length" url:"actor_name_max_length,omitempty"` | ||||
| 	RateLimitMessage           Optional[int32]            `json:"rate_limit_message" url:"rate_limit_message,omitempty"` | ||||
| 	RateLimitMessagePerSecond  Optional[int32]            `json:"rate_limit_message_per_second" url:"rate_limit_message_per_second,omitempty"` | ||||
| 	RateLimitPost              Optional[int32]            `json:"rate_limit_post" url:"rate_limit_post,omitempty"` | ||||
| 	RateLimitPostPerSecond     Optional[int32]            `json:"rate_limit_post_per_second" url:"rate_limit_post_per_second,omitempty"` | ||||
| 	RateLimitRegister          Optional[int32]            `json:"rate_limit_register" url:"rate_limit_register,omitempty"` | ||||
| 	RateLimitRegisterPerSecond Optional[int32]            `json:"rate_limit_register_per_second" url:"rate_limit_register_per_second,omitempty"` | ||||
| 	RateLimitImage             Optional[int32]            `json:"rate_limit_image" url:"rate_limit_image,omitempty"` | ||||
| 	RateLimitImagePerSecond    Optional[int32]            `json:"rate_limit_image_per_second" url:"rate_limit_image_per_second,omitempty"` | ||||
| 	RateLimitComment           Optional[int32]            `json:"rate_limit_comment" url:"rate_limit_comment,omitempty"` | ||||
| 	RateLimitCommentPerSecond  Optional[int32]            `json:"rate_limit_comment_per_second" url:"rate_limit_comment_per_second,omitempty"` | ||||
| 	RateLimitSearch            Optional[int32]            `json:"rate_limit_search" url:"rate_limit_search,omitempty"` | ||||
| 	RateLimitSearchPerSecond   Optional[int32]            `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[int32]            `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"` | ||||
| 	RegistrationMode           Optional[RegistrationMode] `json:"registration_mode" url:"registration_mode,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              uint                         `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 []int                    `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[int64] `json:"page" url:"page,omitempty"` | ||||
| 	Limit      Optional[int64] `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         int32            `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 int64 `json:"registration_applications" url:"registration_applications,omitempty"` | ||||
| 	LemmyResponse | ||||
| } | ||||
							
								
								
									
										244
									
								
								types/site.go
									
									
									
									
									
								
							
							
						
						
									
										244
									
								
								types/site.go
									
									
									
									
									
								
							| @@ -1,244 +0,0 @@ | ||||
| package types | ||||
|  | ||||
| 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          Optional[ModlogActionType] `json:"type,omitempty" url:"type,omitempty"` | ||||
| 	OtherPersonID Optional[int]              `json:"other_person_id,omitempty" url:"other_person_id,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"` | ||||
| 	AdminPurgedPersons     []AdminPurgePersonView     `json:"admin_purged_persons,omitempty" url:"admin_purged_persons,omitempty"` | ||||
| 	AdminPurgedCommunities []AdminPurgeCommunityView  `json:"admin_purged_communities,omitempty" url:"admin_purged_communities,omitempty"` | ||||
| 	AdminPurgedPosts       []AdminPurgePostView       `json:"admin_purged_posts,omitempty" url:"admin_purged_posts,omitempty"` | ||||
| 	AdminPurgedComments    []AdminPurgeCommentView    `json:"admin_purged_comments,omitempty" url:"admin_purged_comments,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"` | ||||
| 	LegalInformation           Optional[string]   `json:"legal_information,omitempty" url:"legal_information,omitempty"` | ||||
| 	ApplicationEmailAdmins     Optional[bool]     `json:"application_email_admins,omitempty" url:"application_email_admins,omitempty"` | ||||
| 	HideModlogModNames         Optional[bool]     `json:"hide_modlog_mod_names,omitempty" url:"hide_modlog_mod_names,omitempty"` | ||||
| 	DiscussionLanguages        Optional[[]int]    `json:"discussion_languages,omitempty" url:"discussion_languages,omitempty"` | ||||
| 	SlurFilterRegex            Optional[string]   `json:"slur_filter_regex,omitempty" url:"slur_filter_regex,omitempty"` | ||||
| 	ActorNameMaxLength         Optional[int]      `json:"actor_name_max_length,omitempty" url:"actor_name_max_length,omitempty"` | ||||
| 	RateLimitMessage           Optional[int]      `json:"rate_limit_message,omitempty" url:"rate_limit_message,omitempty"` | ||||
| 	RateLimitMessagePerSecond  Optional[int]      `json:"rate_limit_message_per_second,omitempty" url:"rate_limit_message_per_second,omitempty"` | ||||
| 	RateLimitPost              Optional[int]      `json:"rate_limit_post,omitempty" url:"rate_limit_post,omitempty"` | ||||
| 	RateLimitPostPerSecond     Optional[int]      `json:"rate_limit_post_per_second,omitempty" url:"rate_limit_post_per_second,omitempty"` | ||||
| 	RateLimitRegister          Optional[int]      `json:"rate_limit_register,omitempty" url:"rate_limit_register,omitempty"` | ||||
| 	RateLimitRegisterPerSecond Optional[int]      `json:"rate_limit_register_per_second,omitempty" url:"rate_limit_register_per_second,omitempty"` | ||||
| 	RateLimitImage             Optional[int]      `json:"rate_limit_image,omitempty" url:"rate_limit_image,omitempty"` | ||||
| 	RateLimitImagePerSecond    Optional[int]      `json:"rate_limit_image_per_second,omitempty" url:"rate_limit_image_per_second,omitempty"` | ||||
| 	RateLimitComment           Optional[int]      `json:"rate_limit_comment,omitempty" url:"rate_limit_comment,omitempty"` | ||||
| 	RateLimitCommentPerSecond  Optional[int]      `json:"rate_limit_comment_per_second,omitempty" url:"rate_limit_comment_per_second,omitempty"` | ||||
| 	RateLimitSearch            Optional[int]      `json:"rate_limit_search,omitempty" url:"rate_limit_search,omitempty"` | ||||
| 	RateLimitSearchPerSecond   Optional[int]      `json:"rate_limit_search_per_second,omitempty" url:"rate_limit_search_per_second,omitempty"` | ||||
| 	FederationEnabled          Optional[bool]     `json:"federation_enabled,omitempty" url:"federation_enabled,omitempty"` | ||||
| 	FederationDebug            Optional[bool]     `json:"federation_debug,omitempty" url:"federation_debug,omitempty"` | ||||
| 	FederationWorkerCount      Optional[int]      `json:"federation_worker_count,omitempty" url:"federation_worker_count,omitempty"` | ||||
| 	CaptchaEnabled             Optional[bool]     `json:"captcha_enabled,omitempty" url:"captcha_enabled,omitempty"` | ||||
| 	CaptchaDifficulty          Optional[string]   `json:"captcha_difficulty,omitempty" url:"captcha_difficulty,omitempty"` | ||||
| 	AllowedInstances           Optional[[]string] `json:"allowed_instances,omitempty" url:"allowed_instances,omitempty"` | ||||
| 	BlockedInstances           Optional[[]string] `json:"blocked_instances,omitempty" url:"blocked_instances,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"` | ||||
| 	ApplicationEmailAdmins     Optional[bool]     `json:"application_email_admins,omitempty" url:"application_email_admins,omitempty"` | ||||
| 	HideModlogModNames         Optional[bool]     `json:"hide_modlog_mod_names,omitempty" url:"hide_modlog_mod_names,omitempty"` | ||||
| 	DiscussionLanguages        Optional[[]int]    `json:"discussion_languages,omitempty" url:"discussion_languages,omitempty"` | ||||
| 	SlurFilterRegex            Optional[string]   `json:"slur_filter_regex,omitempty" url:"slur_filter_regex,omitempty"` | ||||
| 	ActorNameMaxLength         Optional[int]      `json:"actor_name_max_length,omitempty" url:"actor_name_max_length,omitempty"` | ||||
| 	RateLimitMessage           Optional[int]      `json:"rate_limit_message,omitempty" url:"rate_limit_message,omitempty"` | ||||
| 	RateLimitMessagePerSecond  Optional[int]      `json:"rate_limit_message_per_second,omitempty" url:"rate_limit_message_per_second,omitempty"` | ||||
| 	RateLimitPost              Optional[int]      `json:"rate_limit_post,omitempty" url:"rate_limit_post,omitempty"` | ||||
| 	RateLimitPostPerSecond     Optional[int]      `json:"rate_limit_post_per_second,omitempty" url:"rate_limit_post_per_second,omitempty"` | ||||
| 	RateLimitRegister          Optional[int]      `json:"rate_limit_register,omitempty" url:"rate_limit_register,omitempty"` | ||||
| 	RateLimitRegisterPerSecond Optional[int]      `json:"rate_limit_register_per_second,omitempty" url:"rate_limit_register_per_second,omitempty"` | ||||
| 	RateLimitImage             Optional[int]      `json:"rate_limit_image,omitempty" url:"rate_limit_image,omitempty"` | ||||
| 	RateLimitImagePerSecond    Optional[int]      `json:"rate_limit_image_per_second,omitempty" url:"rate_limit_image_per_second,omitempty"` | ||||
| 	RateLimitComment           Optional[int]      `json:"rate_limit_comment,omitempty" url:"rate_limit_comment,omitempty"` | ||||
| 	RateLimitCommentPerSecond  Optional[int]      `json:"rate_limit_comment_per_second,omitempty" url:"rate_limit_comment_per_second,omitempty"` | ||||
| 	RateLimitSearch            Optional[int]      `json:"rate_limit_search,omitempty" url:"rate_limit_search,omitempty"` | ||||
| 	RateLimitSearchPerSecond   Optional[int]      `json:"rate_limit_search_per_second,omitempty" url:"rate_limit_search_per_second,omitempty"` | ||||
| 	FederationEnabled          Optional[bool]     `json:"federation_enabled,omitempty" url:"federation_enabled,omitempty"` | ||||
| 	FederationDebug            Optional[bool]     `json:"federation_debug,omitempty" url:"federation_debug,omitempty"` | ||||
| 	FederationWorkerCount      Optional[int]      `json:"federation_worker_count,omitempty" url:"federation_worker_count,omitempty"` | ||||
| 	CaptchaEnabled             Optional[bool]     `json:"captcha_enabled,omitempty" url:"captcha_enabled,omitempty"` | ||||
| 	CaptchaDifficulty          Optional[string]   `json:"captcha_difficulty,omitempty" url:"captcha_difficulty,omitempty"` | ||||
| 	AllowedInstances           Optional[[]string] `json:"allowed_instances,omitempty" url:"allowed_instances,omitempty"` | ||||
| 	BlockedInstances           Optional[[]string] `json:"blocked_instances,omitempty" url:"blocked_instances,omitempty"` | ||||
| 	Taglines                   Optional[[]string] `json:"taglines,omitempty" url:"taglines,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            SiteView                     `json:"site_view,omitempty" url:"site_view,omitempty"` | ||||
| 	Admins              []PersonViewSafe             `json:"admins,omitempty" url:"admins,omitempty"` | ||||
| 	Online              int                          `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"` | ||||
| 	AllLanguages        []Language                   `json:"all_languages,omitempty" url:"all_languages,omitempty"` | ||||
| 	DiscussionLanguages []int                        `json:"discussion_languages,omitempty" url:"discussion_languages,omitempty"` | ||||
| 	Taglines            Optional[[]Tagline]          `json:"taglines,omitempty" url:"taglines,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"` | ||||
| 	DiscussionLanguages []Language               `json:"discussion_languages,omitempty" url:"discussion_languages,omitempty"` | ||||
| } | ||||
|  | ||||
| type LeaveAdmin struct { | ||||
| 	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 PurgePerson struct { | ||||
| 	PersonID int              `json:"person_id,omitempty" url:"person_id,omitempty"` | ||||
| 	Reason   Optional[string] `json:"reason,omitempty" url:"reason,omitempty"` | ||||
| 	Auth     string           `json:"auth,omitempty" url:"auth,omitempty"` | ||||
| } | ||||
|  | ||||
| type PurgeCommunity struct { | ||||
| 	CommunityID int              `json:"community_id,omitempty" url:"community_id,omitempty"` | ||||
| 	Reason      Optional[string] `json:"reason,omitempty" url:"reason,omitempty"` | ||||
| 	Auth        string           `json:"auth,omitempty" url:"auth,omitempty"` | ||||
| } | ||||
|  | ||||
| type PurgePost struct { | ||||
| 	PostID int              `json:"post_id,omitempty" url:"post_id,omitempty"` | ||||
| 	Reason Optional[string] `json:"reason,omitempty" url:"reason,omitempty"` | ||||
| 	Auth   string           `json:"auth,omitempty" url:"auth,omitempty"` | ||||
| } | ||||
|  | ||||
| type PurgeComment struct { | ||||
| 	CommentID int              `json:"comment_id,omitempty" url:"comment_id,omitempty"` | ||||
| 	Reason    Optional[string] `json:"reason,omitempty" url:"reason,omitempty"` | ||||
| 	Auth      string           `json:"auth,omitempty" url:"auth,omitempty"` | ||||
| } | ||||
|  | ||||
| type PurgeItemResponse struct { | ||||
| 	Success bool `json:"success,omitempty" url:"success,omitempty"` | ||||
| 	LemmyResponse | ||||
| } | ||||
|  | ||||
| type ListRegistrationApplications struct { | ||||
| 	UnreadOnly Optional[bool] `json:"unread_only,omitempty" url:"unread_only,omitempty"` | ||||
| 	Page       Optional[int]  `json:"page,omitempty" url:"page,omitempty"` | ||||
| 	Limit      Optional[int]  `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         int              `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 int `json:"registration_applications,omitempty" url:"registration_applications,omitempty"` | ||||
| 	LemmyResponse | ||||
| } | ||||
							
								
								
									
										402
									
								
								types/source.go
									
									
									
									
									
								
							
							
						
						
									
										402
									
								
								types/source.go
									
									
									
									
									
								
							| @@ -1,402 +0,0 @@ | ||||
| package types | ||||
|  | ||||
| import "time" | ||||
|  | ||||
| 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     int              `json:"default_sort_type,omitempty" url:"default_sort_type,omitempty"` | ||||
| 	DefaultListingType  int              `json:"default_listing_type,omitempty" url:"default_listing_type,omitempty"` | ||||
| 	InterfaceLanguage   string           `json:"interface_language,omitempty" url:"interface_language,omitempty"` | ||||
| 	ShowAvatars         bool             `json:"show_avatars,omitempty" url:"show_avatars,omitempty"` | ||||
| 	SendNotifications   bool             `json:"send_notifications_to_email,omitempty" url:"send_notifications_to_email,omitempty"` | ||||
| 	ValidatorTime       string           `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 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      string           `json:"published,omitempty" url:"published,omitempty"` | ||||
| 	Updated        Optional[string] `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     Optional[string] `json:"ban_expires,omitempty" url:"ban_expires,omitempty"` | ||||
| 	InstanceID     int              `json:"instance_id,omitempty" url:"instance_id,omitempty"` | ||||
| } | ||||
|  | ||||
| type Site struct { | ||||
| 	ID              int              `json:"id,omitempty" url:"id,omitempty"` | ||||
| 	Name            string           `json:"name,omitempty" url:"name,omitempty"` | ||||
| 	Sidebar         Optional[string] `json:"sidebar,omitempty" url:"sidebar,omitempty"` | ||||
| 	Published       string           `json:"published,omitempty" url:"published,omitempty"` | ||||
| 	Updated         Optional[string] `json:"updated,omitempty" url:"updated,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"` | ||||
| 	ActorID         string           `json:"actor_id,omitempty" url:"actor_id,omitempty"` | ||||
| 	LastRefreshedAt string           `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"` | ||||
| 	InstanceID      int              `json:"instance_id,omitempty" url:"instance_id,omitempty"` | ||||
| } | ||||
|  | ||||
| type LocalSite struct { | ||||
| 	ID                         int              `json:"id,omitempty" url:"id,omitempty"` | ||||
| 	SiteID                     int              `json:"site_id,omitempty" url:"site_id,omitempty"` | ||||
| 	SiteSetup                  bool             `json:"site_setup,omitempty" url:"site_setup,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"` | ||||
| 	AdminOnlyCommunityCreation 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"` | ||||
| 	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"` | ||||
| 	HideModlogModNames         bool             `json:"hide_modlog_mod_names,omitempty" url:"hide_modlog_mod_names,omitempty"` | ||||
| 	ApplicationEmailAdmins     bool             `json:"application_email_admins,omitempty" url:"application_email_admins,omitempty"` | ||||
| 	SlurFilterRegex            Optional[string] `json:"slur_filter_regex,omitempty" url:"slur_filter_regex,omitempty"` | ||||
| 	ActorNameMaxLength         int              `json:"actor_name_max_length,omitempty" url:"actor_name_max_length,omitempty"` | ||||
| 	FederationEnabled          bool             `json:"federation_enabled,omitempty" url:"federation_enabled,omitempty"` | ||||
| 	FederationDebug            bool             `json:"federation_debug,omitempty" url:"federation_debug,omitempty"` | ||||
| 	FederationStrictAllowlist  bool             `json:"federation_strict_allowlist,omitempty" url:"federation_strict_allowlist,omitempty"` | ||||
| 	FederationRetryLimit       int              `json:"federation_http_fetch_retry_limit,omitempty" url:"federation_http_fetch_retry_limit,omitempty"` | ||||
| 	FederationWorkerCount      int              `json:"federation_worker_count,omitempty" url:"federation_worker_count,omitempty"` | ||||
| 	CaptchaEnabled             bool             `json:"captcha_enabled,omitempty" url:"captcha_enabled,omitempty"` | ||||
| 	CaptchaDifficulty          string           `json:"captcha_difficulty,omitempty" url:"captcha_difficulty,omitempty"` | ||||
| 	Published                  string           `json:"published,omitempty" url:"published,omitempty"` | ||||
| 	Updated                    Optional[string] `json:"updated,omitempty" url:"updated,omitempty"` | ||||
| } | ||||
|  | ||||
| type LocalSiteRateLimit struct { | ||||
| 	ID                int              `json:"id,omitempty" url:"id,omitempty"` | ||||
| 	LocalSiteID       int              `json:"local_site_id,omitempty" url:"local_site_id,omitempty"` | ||||
| 	Message           int              `json:"message,omitempty" url:"message,omitempty"` | ||||
| 	MessagePerSecond  int              `json:"message_per_second,omitempty" url:"message_per_second,omitempty"` | ||||
| 	Post              int              `json:"post,omitempty" url:"post,omitempty"` | ||||
| 	PostPerSecond     int              `json:"post_per_second,omitempty" url:"post_per_second,omitempty"` | ||||
| 	Register          int              `json:"register,omitempty" url:"register,omitempty"` | ||||
| 	RegisterPerSecond int              `json:"register_per_second,omitempty" url:"register_per_second,omitempty"` | ||||
| 	Image             int              `json:"image,omitempty" url:"image,omitempty"` | ||||
| 	ImagePerSecond    int              `json:"image_per_second,omitempty" url:"image_per_second,omitempty"` | ||||
| 	Comment           int              `json:"comment,omitempty" url:"comment,omitempty"` | ||||
| 	CommentPerSecond  int              `json:"comment_per_second,omitempty" url:"comment_per_second,omitempty"` | ||||
| 	Search            int              `json:"search,omitempty" url:"search,omitempty"` | ||||
| 	SearchPerSecond   int              `json:"search_per_second,omitempty" url:"search_per_second,omitempty"` | ||||
| 	Published         string           `json:"published,omitempty" url:"published,omitempty"` | ||||
| 	Updated           Optional[string] `json:"updated,omitempty" url:"updated,omitempty"` | ||||
| } | ||||
|  | ||||
| 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   string           `json:"published,omitempty" url:"published,omitempty"` | ||||
| 	Updated     Optional[string] `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 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        string           `json:"published,omitempty" url:"published,omitempty"` | ||||
| 	Updated          Optional[string] `json:"updated,omitempty" url:"updated,omitempty"` | ||||
| } | ||||
|  | ||||
| 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        string           `json:"published,omitempty" url:"published,omitempty"` | ||||
| 	Updated          Optional[string] `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"` | ||||
| 	EmbedVideoURL    Optional[string] `json:"embed_video_url,omitempty" url:"embed_video_url,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"` | ||||
| 	LanguageID       int              `json:"language_id,omitempty" url:"language_id,omitempty"` | ||||
| } | ||||
|  | ||||
| type PasswordResetRequest struct { | ||||
| 	ID             int    `json:"id,omitempty" url:"id,omitempty"` | ||||
| 	LocalUserID    int    `json:"local_user_id,omitempty" url:"local_user_id,omitempty"` | ||||
| 	TokenEncrypted string `json:"token_encrypted,omitempty" url:"token_encrypted,omitempty"` | ||||
| 	Published      string `json:"published,omitempty" url:"published,omitempty"` | ||||
| } | ||||
|  | ||||
| type ModRemovePost struct { | ||||
| 	ID          int              `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        string           `json:"when_,omitempty" url:"when_,omitempty"` | ||||
| } | ||||
|  | ||||
| type ModLockPost struct { | ||||
| 	ID          int            `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        string         `json:"when_,omitempty" url:"when_,omitempty"` | ||||
| } | ||||
|  | ||||
| // ModStickyPost represents a post stickied by a moderator. | ||||
| type ModStickyPost struct { | ||||
| 	ID          int            `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        string         `json:"when_,omitempty" url:"when_,omitempty"` | ||||
| } | ||||
|  | ||||
| // ModRemoveComment represents a comment removal by a moderator. | ||||
| type ModRemoveComment struct { | ||||
| 	ID          int              `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        string           `json:"when_,omitempty" url:"when_,omitempty"` | ||||
| } | ||||
|  | ||||
| // ModRemoveCommunity represents a community removal by a moderator. | ||||
| type ModRemoveCommunity struct { | ||||
| 	ID          int              `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     Optional[string] `json:"expires,omitempty" url:"expires,omitempty"` | ||||
| 	When        string           `json:"when_,omitempty" url:"when_,omitempty"` | ||||
| } | ||||
|  | ||||
| // ModBanFromCommunity represents a user being banned from a community by a moderator. | ||||
| type ModBanFromCommunity struct { | ||||
| 	ID            int              `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       Optional[string] `json:"expires,omitempty" url:"expires,omitempty"` | ||||
| 	When          string           `json:"when_,omitempty" url:"when_,omitempty"` | ||||
| } | ||||
|  | ||||
| // ModBan represents a user being banned by a moderator. | ||||
| type ModBan struct { | ||||
| 	ID            int              `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       Optional[string] `json:"expires,omitempty" url:"expires,omitempty"` | ||||
| 	When          string           `json:"when_,omitempty" url:"when_,omitempty"` | ||||
| } | ||||
|  | ||||
| // ModAddCommunity represents a user being added as a moderator of a community. | ||||
| type ModAddCommunity struct { | ||||
| 	ID            int            `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          string         `json:"when_,omitempty" url:"when_,omitempty"` | ||||
| } | ||||
|  | ||||
| // ModTransferCommunity represents a community being transferred to another moderator. | ||||
| type ModTransferCommunity struct { | ||||
| 	ID            int            `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          string         `json:"when_,omitempty" url:"when_,omitempty"` | ||||
| } | ||||
|  | ||||
| // ModAdd represents a user being added as a moderator. | ||||
| type ModAdd struct { | ||||
| 	ID            int            `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          string         `json:"when_,omitempty" url:"when_,omitempty"` | ||||
| } | ||||
|  | ||||
| type AdminPurgePerson struct { | ||||
| 	ID            int              `json:"id,omitempty" url:"id,omitempty"` | ||||
| 	AdminPersonID int              `json:"admin_person_id,omitempty" url:"admin_person_id,omitempty"` | ||||
| 	Reason        Optional[string] `json:"reason,omitempty" url:"reason,omitempty"` | ||||
| 	When          string           `json:"when_,omitempty" url:"when_,omitempty"` | ||||
| } | ||||
|  | ||||
| type AdminPurgeCommunity struct { | ||||
| 	ID            int              `json:"id,omitempty" url:"id,omitempty"` | ||||
| 	AdminPersonID int              `json:"admin_person_id,omitempty" url:"admin_person_id,omitempty"` | ||||
| 	Reason        Optional[string] `json:"reason,omitempty" url:"reason,omitempty"` | ||||
| 	When          string           `json:"when_,omitempty" url:"when_,omitempty"` | ||||
| } | ||||
|  | ||||
| type AdminPurgePost struct { | ||||
| 	ID            int              `json:"id,omitempty" url:"id,omitempty"` | ||||
| 	AdminPersonID int              `json:"admin_person_id,omitempty" url:"admin_person_id,omitempty"` | ||||
| 	CommunityID   int              `json:"community_id,omitempty" url:"community_id,omitempty"` | ||||
| 	Reason        Optional[string] `json:"reason,omitempty" url:"reason,omitempty"` | ||||
| 	When          string           `json:"when_,omitempty" url:"when_,omitempty"` | ||||
| } | ||||
|  | ||||
| type AdminPurgeComment struct { | ||||
| 	ID            int              `json:"id,omitempty" url:"id,omitempty"` | ||||
| 	AdminPersonID int              `json:"admin_person_id,omitempty" url:"admin_person_id,omitempty"` | ||||
| 	PostID        int              `json:"post_id,omitempty" url:"post_id,omitempty"` | ||||
| 	Reason        Optional[string] `json:"reason,omitempty" url:"reason,omitempty"` | ||||
| 	When          string           `json:"when_,omitempty" url:"when_,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               string           `json:"published,omitempty" url:"published,omitempty"` | ||||
| 	Updated                 Optional[string] `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"` | ||||
| 	InstanceID              int              `json:"instance_id,omitempty" url:"instance_id,omitempty"` | ||||
| } | ||||
|  | ||||
| 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           string           `json:"published,omitempty" url:"published,omitempty"` | ||||
| 	Updated             Optional[string] `json:"updated,omitempty" url:"updated,omitempty"` | ||||
| } | ||||
|  | ||||
| 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"` | ||||
| 	Content       string           `json:"content,omitempty" url:"content,omitempty"` | ||||
| 	Removed       bool             `json:"removed,omitempty" url:"removed,omitempty"` | ||||
| 	Published     string           `json:"published,omitempty" url:"published,omitempty"` | ||||
| 	Updated       Optional[string] `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"` | ||||
| 	Path          string           `json:"path,omitempty" url:"path,omitempty"` | ||||
| 	Distinguished bool             `json:"distinguished,omitempty" url:"distinguished,omitempty"` | ||||
| 	LanguageID    int              `json:"language_id,omitempty" url:"language_id,omitempty"` | ||||
| } | ||||
|  | ||||
| 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   string `json:"published,omitempty" url:"published,omitempty"` | ||||
| } | ||||
|  | ||||
| type Language struct { | ||||
| 	ID   int    `json:"id,omitempty" url:"id,omitempty"` | ||||
| 	Code string `json:"code,omitempty" url:"code,omitempty"` | ||||
| 	Name string `json:"name,omitempty" url:"name,omitempty"` | ||||
| } | ||||
|  | ||||
| type PrivateMessageReport struct { | ||||
| 	ID               int              `json:"id,omitempty" url:"id,omitempty"` | ||||
| 	CreatorID        int              `json:"creator_id,omitempty" url:"creator_id,omitempty"` | ||||
| 	PrivateMessageID int              `json:"private_message_id,omitempty" url:"private_message_id,omitempty"` | ||||
| 	OriginalPMText   string           `json:"original_pm_text,omitempty" url:"original_pm_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        string           `json:"published,omitempty" url:"published,omitempty"` | ||||
| 	Updated          Optional[string] `json:"updated,omitempty" url:"updated,omitempty"` | ||||
| } | ||||
|  | ||||
| type RegistrationApplication struct { | ||||
| 	ID          int              `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   string           `json:"published,omitempty" url:"published,omitempty"` | ||||
| } | ||||
|  | ||||
| type ModHideCommunityView struct { | ||||
| 	ModHideCommunity ModHideCommunity     `json:"mod_hide_community,omitempty" url:"mod_hide_community,omitempty"` | ||||
| 	Admin            Optional[PersonSafe] `json:"admin,omitempty" url:"admin,omitempty"` | ||||
| 	Community        CommunitySafe        `json:"community,omitempty" url:"community,omitempty"` | ||||
| } | ||||
|  | ||||
| type ModHideCommunity struct { | ||||
| 	ID          int              `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 CommentReply 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   string `json:"published,omitempty" url:"published,omitempty"` | ||||
| } | ||||
							
								
								
									
										63
									
								
								types/structs.1.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								types/structs.1.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,63 @@ | ||||
| //  Source: lemmy/crates/db_views_actor/src/structs.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
|  | ||||
| type CommunityBlockView struct { | ||||
| 	Person    PersonSafe    `json:"person" url:"person,omitempty"` | ||||
| 	Community CommunitySafe `json:"community" url:"community,omitempty"` | ||||
| } | ||||
| type CommunityFollowerView struct { | ||||
| 	Community CommunitySafe `json:"community" url:"community,omitempty"` | ||||
| 	Follower  PersonSafe    `json:"follower" url:"follower,omitempty"` | ||||
| } | ||||
| type CommunityModeratorView struct { | ||||
| 	Community CommunitySafe `json:"community" url:"community,omitempty"` | ||||
| 	Moderator PersonSafe    `json:"moderator" url:"moderator,omitempty"` | ||||
| } | ||||
| type CommunityPersonBanView struct { | ||||
| 	Community CommunitySafe `json:"community" url:"community,omitempty"` | ||||
| 	Person    PersonSafe    `json:"person" url:"person,omitempty"` | ||||
| } | ||||
| type CommunityView struct { | ||||
| 	Community  CommunitySafe       `json:"community" url:"community,omitempty"` | ||||
| 	Subscribed SubscribedType      `json:"subscribed" url:"subscribed,omitempty"` | ||||
| 	Blocked    bool                `json:"blocked" url:"blocked,omitempty"` | ||||
| 	Counts     CommunityAggregates `json:"counts" url:"counts,omitempty"` | ||||
| } | ||||
| type PersonBlockView struct { | ||||
| 	Person PersonSafe `json:"person" url:"person,omitempty"` | ||||
| 	Target PersonSafe `json:"target" url:"target,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"` | ||||
| 	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                 SubscribedType    `json:"subscribed" url:"subscribed,omitempty"` | ||||
| 	Saved                      bool              `json:"saved" url:"saved,omitempty"` | ||||
| 	CreatorBlocked             bool              `json:"creator_blocked" url:"creator_blocked,omitempty"` | ||||
| 	MyVote                     Optional[int16]   `json:"my_vote" url:"my_vote,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                 SubscribedType    `json:"subscribed" url:"subscribed,omitempty"` | ||||
| 	Saved                      bool              `json:"saved" url:"saved,omitempty"` | ||||
| 	CreatorBlocked             bool              `json:"creator_blocked" url:"creator_blocked,omitempty"` | ||||
| 	MyVote                     Optional[int16]   `json:"my_vote" url:"my_vote,omitempty"` | ||||
| } | ||||
| type PersonViewSafe struct { | ||||
| 	Person PersonSafe       `json:"person" url:"person,omitempty"` | ||||
| 	Counts PersonAggregates `json:"counts" url:"counts,omitempty"` | ||||
| } | ||||
							
								
								
									
										87
									
								
								types/structs.2.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										87
									
								
								types/structs.2.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,87 @@ | ||||
| //  Source: lemmy/crates/db_views/src/structs.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
|  | ||||
| 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"` | ||||
| 	Community                  CommunitySafe        `json:"community" url:"community,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[int16]      `json:"my_vote" url:"my_vote,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                 SubscribedType    `json:"subscribed" url:"subscribed,omitempty"` | ||||
| 	Saved                      bool              `json:"saved" url:"saved,omitempty"` | ||||
| 	CreatorBlocked             bool              `json:"creator_blocked" url:"creator_blocked,omitempty"` | ||||
| 	MyVote                     Optional[int16]   `json:"my_vote" url:"my_vote,omitempty"` | ||||
| } | ||||
| type LocalUserView struct { | ||||
| 	LocalUser LocalUser        `json:"local_user" url:"local_user,omitempty"` | ||||
| 	Person    Person           `json:"person" url:"person,omitempty"` | ||||
| 	Counts    PersonAggregates `json:"counts" url:"counts,omitempty"` | ||||
| } | ||||
| type LocalUserSettingsView struct { | ||||
| 	LocalUser LocalUserSettings `json:"local_user" url:"local_user,omitempty"` | ||||
| 	Person    PersonSafe        `json:"person" url:"person,omitempty"` | ||||
| 	Counts    PersonAggregates  `json:"counts" url:"counts,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[int16]      `json:"my_vote" url:"my_vote,omitempty"` | ||||
| 	Counts                     PostAggregates       `json:"counts" url:"counts,omitempty"` | ||||
| 	Resolver                   Optional[PersonSafe] `json:"resolver" url:"resolver,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                 SubscribedType  `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[int16] `json:"my_vote" url:"my_vote,omitempty"` | ||||
| 	UnreadComments             int64           `json:"unread_comments" url:"unread_comments,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 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 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 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"` | ||||
| 	Counts             SiteAggregates     `json:"counts" url:"counts,omitempty"` | ||||
| } | ||||
							
								
								
									
										95
									
								
								types/structs.3.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										95
									
								
								types/structs.3.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,95 @@ | ||||
| //  Source: lemmy/crates/db_views_moderator/src/structs.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
|  | ||||
| type ModAddCommunityView struct { | ||||
| 	ModAddCommunity ModAddCommunity      `json:"mod_add_community" url:"mod_add_community,omitempty"` | ||||
| 	Moderator       Optional[PersonSafe] `json:"moderator" url:"moderator,omitempty"` | ||||
| 	Community       CommunitySafe        `json:"community" url:"community,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"` | ||||
| 	Community           CommunitySafe        `json:"community" url:"community,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 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 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"` | ||||
| 	Community   CommunitySafe        `json:"community" url:"community,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"` | ||||
| 	Community        CommunitySafe        `json:"community" url:"community,omitempty"` | ||||
| } | ||||
| type ModRemoveCommunityView struct { | ||||
| 	ModRemoveCommunity ModRemoveCommunity   `json:"mod_remove_community" url:"mod_remove_community,omitempty"` | ||||
| 	Moderator          Optional[PersonSafe] `json:"moderator" url:"moderator,omitempty"` | ||||
| 	Community          CommunitySafe        `json:"community" url:"community,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"` | ||||
| 	Community     CommunitySafe        `json:"community" url:"community,omitempty"` | ||||
| } | ||||
| type ModFeaturePostView struct { | ||||
| 	ModFeaturePost ModFeaturePost       `json:"mod_feature_post" url:"mod_feature_post,omitempty"` | ||||
| 	Moderator      Optional[PersonSafe] `json:"moderator" url:"moderator,omitempty"` | ||||
| 	Post           Post                 `json:"post" url:"post,omitempty"` | ||||
| 	Community      CommunitySafe        `json:"community" url:"community,omitempty"` | ||||
| } | ||||
| type ModTransferCommunityView struct { | ||||
| 	ModTransferCommunity ModTransferCommunity `json:"mod_transfer_community" url:"mod_transfer_community,omitempty"` | ||||
| 	Moderator            Optional[PersonSafe] `json:"moderator" url:"moderator,omitempty"` | ||||
| 	Community            CommunitySafe        `json:"community" url:"community,omitempty"` | ||||
| 	ModdedPerson         PersonSafe           `json:"modded_person" url:"modded_person,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 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"` | ||||
| 	Community      CommunitySafe        `json:"community" url:"community,omitempty"` | ||||
| } | ||||
| type ModlogListParams struct { | ||||
| 	CommunityID     Optional[int]   `json:"community_id" url:"community_id,omitempty"` | ||||
| 	ModPersonID     Optional[int]   `json:"mod_person_id" url:"mod_person_id,omitempty"` | ||||
| 	OtherPersonID   Optional[int]   `json:"other_person_id" url:"other_person_id,omitempty"` | ||||
| 	Page            Optional[int64] `json:"page" url:"page,omitempty"` | ||||
| 	Limit           Optional[int64] `json:"limit" url:"limit,omitempty"` | ||||
| 	HideModlogNames bool            `json:"hide_modlog_names" url:"hide_modlog_names,omitempty"` | ||||
| } | ||||
							
								
								
									
										72
									
								
								types/structs.4.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								types/structs.4.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,72 @@ | ||||
| //  Source: lemmy/crates/db_schema/src/aggregates/structs.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
|  | ||||
| type CommentAggregates struct { | ||||
| 	ID         int32     `json:"id" url:"id,omitempty"` | ||||
| 	CommentID  int       `json:"comment_id" url:"comment_id,omitempty"` | ||||
| 	Score      int64     `json:"score" url:"score,omitempty"` | ||||
| 	Upvotes    int64     `json:"upvotes" url:"upvotes,omitempty"` | ||||
| 	Downvotes  int64     `json:"downvotes" url:"downvotes,omitempty"` | ||||
| 	Published  LemmyTime `json:"published" url:"published,omitempty"` | ||||
| 	ChildCount int32     `json:"child_count" url:"child_count,omitempty"` | ||||
| } | ||||
| type CommunityAggregates struct { | ||||
| 	ID                  int32     `json:"id" url:"id,omitempty"` | ||||
| 	CommunityID         int       `json:"community_id" url:"community_id,omitempty"` | ||||
| 	Subscribers         int64     `json:"subscribers" url:"subscribers,omitempty"` | ||||
| 	Posts               int64     `json:"posts" url:"posts,omitempty"` | ||||
| 	Comments            int64     `json:"comments" url:"comments,omitempty"` | ||||
| 	Published           LemmyTime `json:"published" url:"published,omitempty"` | ||||
| 	UsersActiveDay      int64     `json:"users_active_day" url:"users_active_day,omitempty"` | ||||
| 	UsersActiveWeek     int64     `json:"users_active_week" url:"users_active_week,omitempty"` | ||||
| 	UsersActiveMonth    int64     `json:"users_active_month" url:"users_active_month,omitempty"` | ||||
| 	UsersActiveHalfYear int64     `json:"users_active_half_year" url:"users_active_half_year,omitempty"` | ||||
| } | ||||
| type PersonAggregates struct { | ||||
| 	ID           int32 `json:"id" url:"id,omitempty"` | ||||
| 	PersonID     int   `json:"person_id" url:"person_id,omitempty"` | ||||
| 	PostCount    int64 `json:"post_count" url:"post_count,omitempty"` | ||||
| 	PostScore    int64 `json:"post_score" url:"post_score,omitempty"` | ||||
| 	CommentCount int64 `json:"comment_count" url:"comment_count,omitempty"` | ||||
| 	CommentScore int64 `json:"comment_score" url:"comment_score,omitempty"` | ||||
| } | ||||
| type PostAggregates struct { | ||||
| 	ID                     int32     `json:"id" url:"id,omitempty"` | ||||
| 	PostID                 int       `json:"post_id" url:"post_id,omitempty"` | ||||
| 	Comments               int64     `json:"comments" url:"comments,omitempty"` | ||||
| 	Score                  int64     `json:"score" url:"score,omitempty"` | ||||
| 	Upvotes                int64     `json:"upvotes" url:"upvotes,omitempty"` | ||||
| 	Downvotes              int64     `json:"downvotes" url:"downvotes,omitempty"` | ||||
| 	Published              LemmyTime `json:"published" url:"published,omitempty"` | ||||
| 	NewestCommentTimeNecro LemmyTime `json:"newest_comment_time_necro" url:"newest_comment_time_necro,omitempty"` | ||||
| 	NewestCommentTime      LemmyTime `json:"newest_comment_time" url:"newest_comment_time,omitempty"` | ||||
| 	FeaturedCommunity      bool      `json:"featured_community" url:"featured_community,omitempty"` | ||||
| 	FeaturedLocal          bool      `json:"featured_local" url:"featured_local,omitempty"` | ||||
| } | ||||
| type PersonPostAggregates struct { | ||||
| 	ID           int32     `json:"id" url:"id,omitempty"` | ||||
| 	PersonID     int       `json:"person_id" url:"person_id,omitempty"` | ||||
| 	PostID       int       `json:"post_id" url:"post_id,omitempty"` | ||||
| 	ReadComments int64     `json:"read_comments" url:"read_comments,omitempty"` | ||||
| 	Published    LemmyTime `json:"published" url:"published,omitempty"` | ||||
| } | ||||
| type PersonPostAggregatesForm struct { | ||||
| 	PersonID     int       `json:"person_id" url:"person_id,omitempty"` | ||||
| 	PostID       int       `json:"post_id" url:"post_id,omitempty"` | ||||
| 	ReadComments int64     `json:"read_comments" url:"read_comments,omitempty"` | ||||
| 	Published    LemmyTime `json:"published" url:"published,omitempty"` | ||||
| } | ||||
| type SiteAggregates struct { | ||||
| 	ID                  int32 `json:"id" url:"id,omitempty"` | ||||
| 	SiteID              int   `json:"site_id" url:"site_id,omitempty"` | ||||
| 	Users               int64 `json:"users" url:"users,omitempty"` | ||||
| 	Posts               int64 `json:"posts" url:"posts,omitempty"` | ||||
| 	Comments            int64 `json:"comments" url:"comments,omitempty"` | ||||
| 	Communities         int64 `json:"communities" url:"communities,omitempty"` | ||||
| 	UsersActiveDay      int64 `json:"users_active_day" url:"users_active_day,omitempty"` | ||||
| 	UsersActiveWeek     int64 `json:"users_active_week" url:"users_active_week,omitempty"` | ||||
| 	UsersActiveMonth    int64 `json:"users_active_month" url:"users_active_month,omitempty"` | ||||
| 	UsersActiveHalfYear int64 `json:"users_active_half_year" url:"users_active_half_year,omitempty"` | ||||
| } | ||||
							
								
								
									
										38
									
								
								types/structs.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								types/structs.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,38 @@ | ||||
| //  Source: lemmy/crates/api_common/src/websocket/structs.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
|  | ||||
| type UserJoin struct { | ||||
| 	Auth string `json:"auth" url:"auth,omitempty"` | ||||
| } | ||||
| type UserJoinResponse struct { | ||||
| 	Joined bool `json:"joined" url:"joined,omitempty"` | ||||
| 	LemmyResponse | ||||
| } | ||||
| type CommunityJoin struct { | ||||
| 	CommunityID int `json:"community_id" url:"community_id,omitempty"` | ||||
| } | ||||
| type CommunityJoinResponse struct { | ||||
| 	Joined bool `json:"joined" url:"joined,omitempty"` | ||||
| 	LemmyResponse | ||||
| } | ||||
| type ModJoin struct { | ||||
| 	CommunityID int `json:"community_id" url:"community_id,omitempty"` | ||||
| } | ||||
| type ModJoinResponse struct { | ||||
| 	Joined bool `json:"joined" url:"joined,omitempty"` | ||||
| 	LemmyResponse | ||||
| } | ||||
| type PostJoin struct { | ||||
| 	PostID int `json:"post_id" url:"post_id,omitempty"` | ||||
| } | ||||
| type PostJoinResponse struct { | ||||
| 	Joined bool `json:"joined" url:"joined,omitempty"` | ||||
| 	LemmyResponse | ||||
| } | ||||
| type CaptchaItem struct { | ||||
| 	Uuid    string    `json:"uuid" url:"uuid,omitempty"` | ||||
| 	Answer  string    `json:"answer" url:"answer,omitempty"` | ||||
| 	Expires LemmyTime `json:"expires" url:"expires,omitempty"` | ||||
| } | ||||
							
								
								
									
										17
									
								
								types/tagline.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								types/tagline.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | ||||
| //  Source: lemmy/crates/db_schema/src/source/tagline.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
|  | ||||
| type Tagline struct { | ||||
| 	ID          int32     `json:"id" url:"id,omitempty"` | ||||
| 	LocalSiteID int       `json:"local_site_id" url:"local_site_id,omitempty"` | ||||
| 	Content     string    `json:"content" url:"content,omitempty"` | ||||
| 	Published   LemmyTime `json:"published" url:"published,omitempty"` | ||||
| 	Updated     LemmyTime `json:"updated" url:"updated,omitempty"` | ||||
| } | ||||
| type TaglineForm struct { | ||||
| 	LocalSiteID int       `json:"local_site_id" url:"local_site_id,omitempty"` | ||||
| 	Content     string    `json:"content" url:"content,omitempty"` | ||||
| 	Updated     LemmyTime `json:"updated" url:"updated,omitempty"` | ||||
| } | ||||
| @@ -1,12 +1,14 @@ | ||||
| package types | ||||
|  | ||||
| import ( | ||||
| 	"encoding/json" | ||||
| 	"fmt" | ||||
| 	"net/http" | ||||
| 	"time" | ||||
| ) | ||||
|  | ||||
| type LemmyResponse struct { | ||||
| 	Error Optional[string] `json:"error,omitempty" url:"error,omitempty"` | ||||
| 	Error Optional[string] `json:"error" url:"error,omitempty"` | ||||
| } | ||||
|  | ||||
| type HTTPError struct { | ||||
| @@ -25,3 +27,59 @@ type LemmyError struct { | ||||
| func (le LemmyError) Error() string { | ||||
| 	return fmt.Sprintf("%d %s: %s", le.Code, http.StatusText(le.Code), le.ErrStr) | ||||
| } | ||||
|  | ||||
| type LemmyTime struct { | ||||
| 	time.Time | ||||
| } | ||||
|  | ||||
| func (lt *LemmyTime) UnmarshalJSON(b []byte) error { | ||||
| 	var timeStr string | ||||
| 	err := json.Unmarshal(b, &timeStr) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	if timeStr == "" { | ||||
| 		lt.Time = time.Unix(0, 0) | ||||
| 		return nil | ||||
| 	} | ||||
|  | ||||
| 	t, err := time.Parse("2006-01-02T15:04:05", timeStr) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	lt.Time = t | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| type LemmyWebSocketMsg struct { | ||||
| 	Op   string          `json:"op"` | ||||
| 	Data json.RawMessage `json:"data"` | ||||
| } | ||||
|  | ||||
| // IsOneOf checks if the message is one of the given operations. | ||||
| func (msg LemmyWebSocketMsg) IsOneOf(ops ...Operation) bool { | ||||
| 	for _, op := range ops { | ||||
| 		if op.Operation() == msg.Op { | ||||
| 			return true | ||||
| 		} | ||||
| 	} | ||||
| 	return false | ||||
| } | ||||
|  | ||||
| type Operation interface { | ||||
| 	Operation() string | ||||
| } | ||||
|  | ||||
| func (u UserOperation) Operation() string { | ||||
| 	return string(u) | ||||
| } | ||||
|  | ||||
| func (u UserOperationCRUD) Operation() string { | ||||
| 	return string(u) | ||||
| } | ||||
|  | ||||
| func (u UserOperationApub) Operation() string { | ||||
| 	return string(u) | ||||
| } | ||||
|   | ||||
							
								
								
									
										14
									
								
								types/utils.gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								types/utils.gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | ||||
| //  Source: lemmy/crates/api_common/src/utils.rs | ||||
| // Code generated by go.arsenm.dev/go-lemmy/cmd/gen (struct generator). DO NOT EDIT. | ||||
|  | ||||
| package types | ||||
|  | ||||
| type EndpointType string | ||||
|  | ||||
| const ( | ||||
| 	EndpointTypeCommunity      EndpointType = "Community" | ||||
| 	EndpointTypePerson         EndpointType = "Person" | ||||
| 	EndpointTypePost           EndpointType = "Post" | ||||
| 	EndpointTypeComment        EndpointType = "Comment" | ||||
| 	EndpointTypePrivateMessage EndpointType = "PrivateMessage" | ||||
| ) | ||||
							
								
								
									
										254
									
								
								types/views.go
									
									
									
									
									
								
							
							
						
						
									
										254
									
								
								types/views.go
									
									
									
									
									
								
							| @@ -1,254 +0,0 @@ | ||||
| package types | ||||
|  | ||||
| type PersonViewSafe struct { | ||||
| 	Person PersonSafe       `json:"person,omitempty" url:"person,omitempty"` | ||||
| 	Counts PersonAggregates `json:"counts,omitempty" url:"counts,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"` | ||||
| 	CommunitySafe              CommunitySafe     `json:"community_safe,omitempty" url:"community_safe,omitempty"` | ||||
| 	Recipient                  PersonSafe        `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                 SubscribedType    `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[int]     `json:"my_vote,omitempty" url:"my_vote,omitempty"` | ||||
| } | ||||
|  | ||||
| type LocalUserSettingsView struct { | ||||
| 	LocalUserSettings LocalUserSettings `json:"local_user_settings,omitempty" url:"local_user_settings,omitempty"` | ||||
| 	Person            PersonSafe        `json:"person,omitempty" url:"person,omitempty"` | ||||
| 	Counts            PersonAggregates  `json:"counts,omitempty" url:"counts,omitempty"` | ||||
| } | ||||
|  | ||||
| type SiteView struct { | ||||
| 	Site               Site                `json:"site,omitempty" url:"site,omitempty"` | ||||
| 	LocalSite          LocalSite           `json:"local_site,omitempty" url:"local_site,omitempty"` | ||||
| 	LocalSiteRateLimit LocalSiteRateLimit  `json:"local_site_rate_limit,omitempty" url:"local_site_rate_limit,omitempty"` | ||||
| 	Taglines           Optional[[]Tagline] `json:"taglines,omitempty" url:"taglines,omitempty"` | ||||
| 	Counts             SiteAggregates      `json:"counts,omitempty" url:"counts,omitempty"` | ||||
| } | ||||
|  | ||||
| type PrivateMessageView struct { | ||||
| 	PrivateMessage PrivateMessage `json:"private_message,omitempty" url:"private_message,omitempty"` | ||||
| 	Creator        PersonSafe     `json:"creator,omitempty" url:"creator,omitempty"` | ||||
| 	Recipient      PersonSafe     `json:"recipient,omitempty" url:"recipient,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[int]  `json:"my_vote,omitempty" url:"my_vote,omitempty"` | ||||
| 	UnreadComments             int            `json:"unread_comments,omitempty" url:"unread_comments,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                PersonSafe           `json:"post_creator,omitempty" url:"post_creator,omitempty"` | ||||
| 	CreatorBannedFromCommunity bool                 `json:"creator_banned_from_community,omitempty" url:"creator_banned_from_community,omitempty"` | ||||
| 	MyVote                     Optional[int]        `json:"my_vote,omitempty" url:"my_vote,omitempty"` | ||||
| 	Counts                     PostAggregates       `json:"counts,omitempty" url:"counts,omitempty"` | ||||
| 	Resolver                   Optional[PersonSafe] `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"` | ||||
| 	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                 SubscribedType    `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[int]     `json:"my_vote,omitempty" url:"my_vote,omitempty"` | ||||
| } | ||||
|  | ||||
| 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"` | ||||
| 	CommunitySafe              CommunitySafe        `json:"community_safe,omitempty" url:"community_safe,omitempty"` | ||||
| 	Creator                    PersonSafe           `json:"creator,omitempty" url:"creator,omitempty"` | ||||
| 	CommentCreator             PersonSafe           `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[int]        `json:"my_vote,omitempty" url:"my_vote,omitempty"` | ||||
| 	Resolver                   Optional[PersonSafe] `json:"resolver,omitempty" url:"resolver,omitempty"` | ||||
| } | ||||
|  | ||||
| type ModAddCommunityView struct { | ||||
| 	ModAddCommunity ModAddCommunity      `json:"mod_add_community,omitempty" url:"mod_add_community,omitempty"` | ||||
| 	Moderator       Optional[PersonSafe] `json:"moderator,omitempty" url:"moderator,omitempty"` | ||||
| 	CommunitySafe   CommunitySafe        `json:"community_safe,omitempty" url:"community_safe,omitempty"` | ||||
| 	ModdedPerson    PersonSafe           `json:"modded_person,omitempty" url:"modded_person,omitempty"` | ||||
| } | ||||
|  | ||||
| type ModTransferCommunityView struct { | ||||
| 	ModTransferCommunity ModTransferCommunity `json:"mod_transfer_community,omitempty" url:"mod_transfer_community,omitempty"` | ||||
| 	Moderator            Optional[PersonSafe] `json:"moderator,omitempty" url:"moderator,omitempty"` | ||||
| 	CommunitySafe        CommunitySafe        `json:"community_safe,omitempty" url:"community_safe,omitempty"` | ||||
| 	ModdedPerson         PersonSafe           `json:"modded_person,omitempty" url:"modded_person,omitempty"` | ||||
| } | ||||
|  | ||||
| type ModAddView struct { | ||||
| 	ModAdd       ModAdd               `json:"mod_add,omitempty" url:"mod_add,omitempty"` | ||||
| 	Moderator    Optional[PersonSafe] `json:"moderator,omitempty" url:"moderator,omitempty"` | ||||
| 	ModdedPerson PersonSafe           `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           Optional[PersonSafe] `json:"moderator,omitempty" url:"moderator,omitempty"` | ||||
| 	CommunitySafe       CommunitySafe        `json:"community_safe,omitempty" url:"community_safe,omitempty"` | ||||
| 	BannedPerson        PersonSafe           `json:"banned_person,omitempty" url:"banned_person,omitempty"` | ||||
| } | ||||
|  | ||||
| type ModBanView struct { | ||||
| 	ModBan       ModBan               `json:"mod_ban,omitempty" url:"mod_ban,omitempty"` | ||||
| 	Moderator    Optional[PersonSafe] `json:"moderator,omitempty" url:"moderator,omitempty"` | ||||
| 	BannedPerson PersonSafe           `json:"banned_person,omitempty" url:"banned_person,omitempty"` | ||||
| } | ||||
|  | ||||
| type ModLockPostView struct { | ||||
| 	ModLockPost   ModLockPost          `json:"mod_lock_post,omitempty" url:"mod_lock_post,omitempty"` | ||||
| 	Moderator     Optional[PersonSafe] `json:"moderator,omitempty" url:"moderator,omitempty"` | ||||
| 	Post          Post                 `json:"post,omitempty" url:"post,omitempty"` | ||||
| 	CommunitySafe CommunitySafe        `json:"community_safe,omitempty" url:"community_safe,omitempty"` | ||||
| } | ||||
|  | ||||
| type ModRemoveCommentView struct { | ||||
| 	ModRemoveComment ModRemoveComment     `json:"mod_remove_comment,omitempty" url:"mod_remove_comment,omitempty"` | ||||
| 	Moderator        Optional[PersonSafe] `json:"moderator,omitempty" url:"moderator,omitempty"` | ||||
| 	Comment          Comment              `json:"comment,omitempty" url:"comment,omitempty"` | ||||
| 	Commenter        PersonSafe           `json:"commenter,omitempty" url:"commenter,omitempty"` | ||||
| 	Post             Post                 `json:"post,omitempty" url:"post,omitempty"` | ||||
| 	CommunitySafe    CommunitySafe        `json:"community_safe,omitempty" url:"community_safe,omitempty"` | ||||
| } | ||||
|  | ||||
| type ModRemoveCommunityView struct { | ||||
| 	ModRemoveCommunity ModRemoveCommunity   `json:"mod_remove_community,omitempty" url:"mod_remove_community,omitempty"` | ||||
| 	Moderator          Optional[PersonSafe] `json:"moderator,omitempty" url:"moderator,omitempty"` | ||||
| 	CommunitySafe      CommunitySafe        `json:"community_safe,omitempty" url:"community_safe,omitempty"` | ||||
| } | ||||
|  | ||||
| type ModRemovePostView struct { | ||||
| 	ModRemovePost ModRemovePost        `json:"mod_remove_post,omitempty" url:"mod_remove_post,omitempty"` | ||||
| 	Moderator     Optional[PersonSafe] `json:"moderator,omitempty" url:"moderator,omitempty"` | ||||
| 	Post          Post                 `json:"post,omitempty" url:"post,omitempty"` | ||||
| 	CommunitySafe CommunitySafe        `json:"community_safe,omitempty" url:"community_safe,omitempty"` | ||||
| } | ||||
|  | ||||
| type ModStickyPostView struct { | ||||
| 	ModStickyPost ModStickyPost        `json:"mod_sticky_post,omitempty" url:"mod_sticky_post,omitempty"` | ||||
| 	Moderator     Optional[PersonSafe] `json:"moderator,omitempty" url:"moderator,omitempty"` | ||||
| 	Post          Post                 `json:"post,omitempty" url:"post,omitempty"` | ||||
| 	CommunitySafe CommunitySafe        `json:"community_safe,omitempty" url:"community_safe,omitempty"` | ||||
| } | ||||
|  | ||||
| type AdminPurgeCommunityView struct { | ||||
| 	AdminPurgeCommunity AdminPurgeCommunity  `json:"admin_purge_community,omitempty" url:"admin_purge_community,omitempty"` | ||||
| 	Admin               Optional[PersonSafe] `json:"admin,omitempty" url:"admin,omitempty"` | ||||
| } | ||||
|  | ||||
| type AdminPurgePersonView struct { | ||||
| 	AdminPurgePerson AdminPurgePerson     `json:"admin_purge_person,omitempty" url:"admin_purge_person,omitempty"` | ||||
| 	Admin            Optional[PersonSafe] `json:"admin,omitempty" url:"admin,omitempty"` | ||||
| } | ||||
|  | ||||
| type AdminPurgePostView struct { | ||||
| 	AdminPurgePost AdminPurgePost       `json:"admin_purge_post,omitempty" url:"admin_purge_post,omitempty"` | ||||
| 	Admin          Optional[PersonSafe] `json:"admin,omitempty" url:"admin,omitempty"` | ||||
| 	CommunitySafe  CommunitySafe        `json:"community_safe,omitempty" url:"community_safe,omitempty"` | ||||
| } | ||||
|  | ||||
| type AdminPurgeCommentView struct { | ||||
| 	AdminPurgeComment AdminPurgeComment    `json:"admin_purge_comment,omitempty" url:"admin_purge_comment,omitempty"` | ||||
| 	Admin             Optional[PersonSafe] `json:"admin,omitempty" url:"admin,omitempty"` | ||||
| 	Post              Post                 `json:"post,omitempty" url:"post,omitempty"` | ||||
| } | ||||
|  | ||||
| type CommunityFollowerView struct { | ||||
| 	CommunitySafe CommunitySafe `json:"community_safe,omitempty" url:"community_safe,omitempty"` | ||||
| 	Follower      PersonSafe    `json:"follower,omitempty" url:"follower,omitempty"` | ||||
| } | ||||
|  | ||||
| type CommunityBlockView struct { | ||||
| 	PersonSafe    PersonSafe    `json:"person_safe,omitempty" url:"person_safe,omitempty"` | ||||
| 	CommunitySafe CommunitySafe `json:"community_safe,omitempty" url:"community_safe,omitempty"` | ||||
| } | ||||
|  | ||||
| type CommunityModeratorView struct { | ||||
| 	CommunitySafe CommunitySafe `json:"community_safe,omitempty" url:"community_safe,omitempty"` | ||||
| 	Moderator     PersonSafe    `json:"moderator,omitempty" url:"moderator,omitempty"` | ||||
| } | ||||
|  | ||||
| type CommunityPersonBanView struct { | ||||
| 	CommunitySafe CommunitySafe `json:"community_safe,omitempty" url:"community_safe,omitempty"` | ||||
| 	Person        PersonSafe    `json:"person,omitempty" url:"person,omitempty"` | ||||
| } | ||||
|  | ||||
| type PersonBlockView struct { | ||||
| 	PersonSafe PersonSafe `json:"person_safe,omitempty" url:"person_safe,omitempty"` | ||||
| 	Target     PersonSafe `json:"target,omitempty" url:"target,omitempty"` | ||||
| } | ||||
|  | ||||
| type CommunityView struct { | ||||
| 	CommunitySafe CommunitySafe       `json:"community_safe,omitempty" url:"community_safe,omitempty"` | ||||
| 	Subscribed    SubscribedType      `json:"subscribed,omitempty" url:"subscribed,omitempty"` | ||||
| 	Blocked       bool                `json:"blocked,omitempty" url:"blocked,omitempty"` | ||||
| 	Counts        CommunityAggregates `json:"counts,omitempty" url:"counts,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[PersonSafe]    `json:"admin,omitempty" url:"admin,omitempty"` | ||||
| } | ||||
|  | ||||
| type PrivateMessageReportView struct { | ||||
| 	PrivateMessageReport  PrivateMessageReport `json:"private_message_report,omitempty" url:"private_message_report,omitempty"` | ||||
| 	PrivateMessage        PrivateMessage       `json:"private_message,omitempty" url:"private_message,omitempty"` | ||||
| 	PrivateMessageCreator PersonSafe           `json:"private_message_creator,omitempty" url:"private_message_creator,omitempty"` | ||||
| 	Creator               PersonSafe           `json:"creator,omitempty" url:"creator,omitempty"` | ||||
| 	Resolver              Optional[PersonSafe] `json:"resolver,omitempty" url:"resolver,omitempty"` | ||||
| } | ||||
|  | ||||
| type Tagline struct { | ||||
| 	ID          int              `json:"id,omitempty" url:"id,omitempty"` | ||||
| 	LocalSiteID int              `json:"local_site_id,omitempty" url:"local_site_id,omitempty"` | ||||
| 	Content     string           `json:"content,omitempty" url:"content,omitempty"` | ||||
| 	Published   string           `json:"published,omitempty" url:"published,omitempty"` | ||||
| 	Updated     Optional[string] `json:"updated,omitempty" url:"updated,omitempty"` | ||||
| } | ||||
|  | ||||
| type CommentReplyView struct { | ||||
| 	CommentReply               CommentReply      `json:"comment_reply,omitempty" url:"comment_reply,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                  PersonSafe        `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                 SubscribedType    `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[int]     `json:"my_vote,omitempty" url:"my_vote,omitempty"` | ||||
| } | ||||
							
								
								
									
										214
									
								
								websocket.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										214
									
								
								websocket.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,214 @@ | ||||
| package lemmy | ||||
|  | ||||
| import ( | ||||
| 	"context" | ||||
| 	"encoding/json" | ||||
| 	"fmt" | ||||
| 	"net" | ||||
| 	"net/http" | ||||
| 	"net/url" | ||||
| 	"reflect" | ||||
| 	"time" | ||||
|  | ||||
| 	"github.com/cenkalti/backoff/v4" | ||||
| 	"github.com/gorilla/websocket" | ||||
| 	"go.arsenm.dev/go-lemmy/types" | ||||
| ) | ||||
|  | ||||
| type authData struct { | ||||
| 	Auth string `json:"auth"` | ||||
| } | ||||
|  | ||||
| // WSClient is a client for Lemmy's WebSocket API | ||||
| type WSClient struct { | ||||
| 	conn       *websocket.Conn | ||||
| 	baseURL    *url.URL | ||||
| 	respCh     chan types.LemmyWebSocketMsg | ||||
| 	errCh      chan error | ||||
| 	recHandler func(c *WSClient) | ||||
| 	Token      string | ||||
| } | ||||
|  | ||||
| // NewWebSocket creates and returns a new WSClient, and | ||||
| // starts a goroutine to read server responses and errors | ||||
| func NewWebSocket(baseURL string) (*WSClient, error) { | ||||
| 	u, err := url.Parse(baseURL) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	u = u.JoinPath("/api/v3") | ||||
|  | ||||
| 	conn, _, err := keepaliveDialer().Dial(u.JoinPath("ws").String(), nil) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
|  | ||||
| 	out := &WSClient{ | ||||
| 		conn:    conn, | ||||
| 		baseURL: u, | ||||
| 		respCh:  make(chan types.LemmyWebSocketMsg, 10), | ||||
| 		errCh:   make(chan error, 10), | ||||
| 	} | ||||
|  | ||||
| 	go func() { | ||||
| 		for { | ||||
| 			var msg types.LemmyWebSocketMsg | ||||
| 			err = conn.ReadJSON(&msg) | ||||
| 			if err != nil { | ||||
| 				out.errCh <- err | ||||
|  | ||||
| 				conn.Close() | ||||
| 				err = backoff.RetryNotify( | ||||
| 					func() error { | ||||
| 						conn, _, err = keepaliveDialer().Dial(u.JoinPath("ws").String(), nil) | ||||
| 						if err != nil { | ||||
| 							out.errCh <- err | ||||
| 							return err | ||||
| 						} | ||||
| 						out.conn = conn | ||||
| 						out.recHandler(out) | ||||
| 						return nil | ||||
| 					}, | ||||
| 					backoff.NewExponentialBackOff(), | ||||
| 					func(err error, d time.Duration) { | ||||
| 						out.errCh <- fmt.Errorf("reconnect backoff (%s): %w", d, err) | ||||
| 					}, | ||||
| 				) | ||||
| 				if err != nil { | ||||
| 					out.errCh <- err | ||||
| 				} | ||||
|  | ||||
| 				continue | ||||
| 			} | ||||
| 			out.respCh <- msg | ||||
| 		} | ||||
| 	}() | ||||
|  | ||||
| 	return out, nil | ||||
| } | ||||
|  | ||||
| // 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) ClientLogin(ctx context.Context, l types.Login) error { | ||||
| 	u := &url.URL{} | ||||
| 	*u = *c.baseURL | ||||
|  | ||||
| 	if u.Scheme == "ws" { | ||||
| 		u.Scheme = "http" | ||||
| 	} else if u.Scheme == "wss" { | ||||
| 		u.Scheme = "https" | ||||
| 	} | ||||
|  | ||||
| 	hc := &Client{baseURL: u, client: http.DefaultClient} | ||||
| 	err := hc.ClientLogin(ctx, l) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	c.Token = hc.Token | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| // Request sends a request to the server. If data is nil, | ||||
| // the authentication token will be sent instead. If data | ||||
| // has an Auth field, it will be set to the authentication | ||||
| // token automatically. | ||||
| func (c *WSClient) Request(op types.Operation, data any) error { | ||||
| 	if data == nil { | ||||
| 		data = authData{} | ||||
| 	} | ||||
|  | ||||
| 	data = c.setAuth(data) | ||||
|  | ||||
| 	d, err := json.Marshal(data) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	return c.conn.WriteJSON(types.LemmyWebSocketMsg{ | ||||
| 		Op:   op.Operation(), | ||||
| 		Data: d, | ||||
| 	}) | ||||
| } | ||||
|  | ||||
| // Responses returns a channel that receives messages from | ||||
| // Lemmy. | ||||
| func (c *WSClient) Responses() <-chan types.LemmyWebSocketMsg { | ||||
| 	return c.respCh | ||||
| } | ||||
|  | ||||
| // Errors returns a channel that receives errors | ||||
| // received while attempting to read responses | ||||
| func (c *WSClient) Errors() <-chan error { | ||||
| 	return c.errCh | ||||
| } | ||||
|  | ||||
| func (c *WSClient) OnReconnect(rh func(c *WSClient)) { | ||||
| 	c.recHandler = rh | ||||
| } | ||||
|  | ||||
| // setAuth uses reflection to automatically | ||||
| // set struct fields called Auth of type | ||||
| // string or types.Optional[string] to the | ||||
| // authentication token, then returns the | ||||
| // updated struct | ||||
| func (c *WSClient) setAuth(data any) any { | ||||
| 	val := reflect.New(reflect.TypeOf(data)) | ||||
| 	val.Elem().Set(reflect.ValueOf(data)) | ||||
|  | ||||
| 	authField := val.Elem().FieldByName("Auth") | ||||
| 	if !authField.IsValid() { | ||||
| 		return data | ||||
| 	} | ||||
|  | ||||
| 	switch authField.Type().String() { | ||||
| 	case "string": | ||||
| 		authField.SetString(c.Token) | ||||
| 	case "types.Optional[string]": | ||||
| 		setMtd := authField.MethodByName("Set") | ||||
| 		out := setMtd.Call([]reflect.Value{reflect.ValueOf(c.Token)}) | ||||
| 		authField.Set(out[0]) | ||||
| 	default: | ||||
| 		return data | ||||
| 	} | ||||
|  | ||||
| 	return val.Elem().Interface() | ||||
| } | ||||
|  | ||||
| func DecodeResponse(data json.RawMessage, out any) error { | ||||
| 	return json.Unmarshal(data, out) | ||||
| } | ||||
|  | ||||
| func keepaliveDialer() *websocket.Dialer { | ||||
| 	d := &websocket.Dialer{ | ||||
| 		NetDial: func(network, addr string) (net.Conn, error) { | ||||
| 			tcpAddr, err := net.ResolveTCPAddr(network, addr) | ||||
| 			if err != nil { | ||||
| 				return nil, err | ||||
| 			} | ||||
|  | ||||
| 			conn, err := net.DialTCP(network, nil, tcpAddr) | ||||
| 			if err != nil { | ||||
| 				return nil, err | ||||
| 			} | ||||
|  | ||||
| 			err = conn.SetKeepAlive(true) | ||||
| 			if err != nil { | ||||
| 				return nil, err | ||||
| 			} | ||||
|  | ||||
| 			err = conn.SetKeepAlivePeriod(10 * time.Second) | ||||
| 			if err != nil { | ||||
| 				return nil, err | ||||
| 			} | ||||
|  | ||||
| 			return conn, nil | ||||
| 		}, | ||||
| 	} | ||||
|  | ||||
| 	d.NetDialContext = func(ctx context.Context, network, addr string) (net.Conn, error) { | ||||
| 		return d.NetDial(network, addr) | ||||
| 	} | ||||
|  | ||||
| 	return d | ||||
| } | ||||
		Reference in New Issue
	
	Block a user