Blob


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