Blame


1 1081cf75 2024-11-04 o package lemmy
2 1081cf75 2024-11-04 o
3 1081cf75 2024-11-04 o import (
4 1081cf75 2024-11-04 o "encoding/json"
5 1081cf75 2024-11-04 o "fmt"
6 1081cf75 2024-11-04 o "io"
7 1081cf75 2024-11-04 o )
8 1081cf75 2024-11-04 o
9 1081cf75 2024-11-04 o func decodePosts(r io.Reader) ([]Post, error) {
10 1081cf75 2024-11-04 o var jresponse struct {
11 1081cf75 2024-11-04 o Posts []struct {
12 1081cf75 2024-11-04 o Post Post
13 1081cf75 2024-11-04 o }
14 1081cf75 2024-11-04 o }
15 1081cf75 2024-11-04 o if err := json.NewDecoder(r).Decode(&jresponse); err != nil {
16 1081cf75 2024-11-04 o return nil, fmt.Errorf("decode posts response: %w", err)
17 1081cf75 2024-11-04 o }
18 1081cf75 2024-11-04 o var posts []Post
19 1081cf75 2024-11-04 o for _, post := range jresponse.Posts {
20 1081cf75 2024-11-04 o posts = append(posts, post.Post)
21 1081cf75 2024-11-04 o }
22 1081cf75 2024-11-04 o return posts, nil
23 1081cf75 2024-11-04 o }
24 1081cf75 2024-11-04 o
25 1081cf75 2024-11-04 o func decodePostResponse(r io.Reader) (Post, Person, Community, error) {
26 1081cf75 2024-11-04 o type jresponse struct {
27 1081cf75 2024-11-04 o PostView struct {
28 1081cf75 2024-11-04 o Post Post
29 1081cf75 2024-11-04 o Creator Person
30 1081cf75 2024-11-04 o Community Community
31 1081cf75 2024-11-04 o } `json:"post_view"`
32 1081cf75 2024-11-04 o }
33 1081cf75 2024-11-04 o var jresp jresponse
34 1081cf75 2024-11-04 o if err := json.NewDecoder(r).Decode(&jresp); err != nil {
35 1081cf75 2024-11-04 o return Post{}, Person{}, Community{}, fmt.Errorf("decode post: %w", err)
36 1081cf75 2024-11-04 o }
37 1081cf75 2024-11-04 o jresp.PostView.Post.Creator = jresp.PostView.Creator
38 1081cf75 2024-11-04 o return jresp.PostView.Post, jresp.PostView.Creator, jresp.PostView.Community, nil
39 1081cf75 2024-11-04 o }