本文整理匯總了Golang中github.com/minodisk/qiitactl/model.Post類的典型用法代碼示例。如果您正苦於以下問題:Golang Post類的具體用法?Golang Post怎麽用?Golang Post使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
在下文中一共展示了Post類的6個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: handleItems
func handleItems(mux *http.ServeMux) {
mux.HandleFunc("/api/v2/items", func(w http.ResponseWriter, r *http.Request) {
switch r.Method {
case "POST":
defer r.Body.Close()
b, err := ioutil.ReadAll(r.Body)
if err != nil {
testutil.ResponseError(w, 500, err)
return
}
if len(b) == 0 {
testutil.ResponseAPIError(w, 500, api.ResponseError{
Type: "fatal",
Message: "empty body",
})
return
}
type Options struct {
Tweet *bool `json:"tweet"`
Gist *bool `json:"gist"`
}
var options Options
err = json.Unmarshal(b, &options)
if err != nil {
testutil.ResponseError(w, 500, err)
return
}
if options.Tweet == nil || options.Gist == nil {
testutil.ResponseError(w, 500, errors.New("tweet or gist is required"))
return
}
var post model.Post
err = json.Unmarshal(b, &post)
if err != nil {
testutil.ResponseError(w, 500, err)
return
}
post.ID = "4bd431809afb1bb99e4f"
post.URL = "https://qiita.com/yaotti/items/4bd431809afb1bb99e4f"
post.CreatedAt = model.Time{Time: time.Date(2016, 2, 1, 12, 51, 42, 0, time.UTC)}
post.UpdatedAt = post.CreatedAt
b, err = json.Marshal(post)
if err != nil {
testutil.ResponseError(w, 500, err)
return
}
_, err = w.Write(b)
if err != nil {
testutil.ResponseError(w, 500, err)
return
}
default:
w.WriteHeader(405)
}
})
}
示例2: TestPostDecodeWithWrongTitle
func TestPostDecodeWithWrongTitle(t *testing.T) {
testutil.CleanUp()
defer testutil.CleanUp()
var post model.Post
err := post.Decode([]byte(`<!--
id: abcdefghijklmnopqrst
url: http://example.com/mypost
created_at: 2013-12-10T12:29:14+09:00
updated_at: 2015-02-25T09:26:30+09:00
private: true
coediting: false
tags:
- TypeScript
- Docker:
- 1.9
- Go:
- 1.4.3
- 1.5.3
team: null
-->
## Sub title
# Main title
Paragraph
`))
if err == nil {
t.Errorf("should return error with non-object element in tags")
}
}
示例3: TestPostDecodeWithMultiComment
func TestPostDecodeWithMultiComment(t *testing.T) {
testutil.CleanUp()
defer testutil.CleanUp()
var post model.Post
err := post.Decode([]byte(`<!--
id: ""
url: ""
created_at: 2016-02-17T13:08:30+09:00
updated_at: 2016-02-17T13:08:30+09:00
private: false
coediting: false
tags:
- Qiita
- Go
team: null
-->
# Example Title
<!--
This is not meta
-->
# This is not title of this post
`))
if err != nil {
t.Fatal(err)
}
}
示例4: handleItem
func handleItem(mux *http.ServeMux) {
mux.HandleFunc("/api/v2/items/4bd431809afb1bb99e4f", func(w http.ResponseWriter, r *http.Request) {
switch r.Method {
case "GET":
w.Write([]byte(`{
"rendered_body": "<h2>Example body</h2>",
"body": "## Example body",
"coediting": false,
"created_at": "2000-01-01T00:00:00+00:00",
"id": "4bd431809afb1bb99e4f",
"private": false,
"tags": [
{
"name": "Ruby",
"versions": [
"0.0.1"
]
}
],
"title": "Example Title",
"updated_at": "2000-01-01T00:00:00+00:00",
"url": "https://qiita.com/yaotti/items/4bd431809afb1bb99e4f",
"user": {
"description": "Hello, world.",
"facebook_id": "yaotti",
"followees_count": 100,
"followers_count": 200,
"github_login_name": "yaotti",
"id": "yaotti",
"items_count": 300,
"linkedin_id": "yaotti",
"location": "Tokyo, Japan",
"name": "Hiroshige Umino",
"organization": "Increments Inc",
"permanent_id": 1,
"profile_image_url": "https://si0.twimg.com/profile_images/2309761038/1ijg13pfs0dg84sk2y0h_normal.jpeg",
"twitter_screen_name": "yaotti",
"website_url": "http://yaotti.hatenablog.com"
}
}`))
case "PATCH":
defer r.Body.Close()
b, err := ioutil.ReadAll(r.Body)
if err != nil {
testutil.ResponseError(w, 500, err)
return
}
if string(b) == "" {
testutil.ResponseAPIError(w, 500, api.ResponseError{
Type: "fatal",
Message: "empty body",
})
return
}
var post model.Post
err = json.Unmarshal(b, &post)
if err != nil {
testutil.ResponseError(w, 500, err)
return
}
post.UpdatedAt = model.Time{Time: time.Date(2016, 2, 1, 12, 51, 42, 0, time.UTC)}
b, err = json.Marshal(post)
if err != nil {
testutil.ResponseError(w, 500, err)
return
}
_, err = w.Write(b)
if err != nil {
testutil.ResponseError(w, 500, err)
return
}
case "DELETE":
defer r.Body.Close()
b, err := ioutil.ReadAll(r.Body)
if err != nil {
testutil.ResponseError(w, 500, err)
return
}
if string(b) == "" {
testutil.ResponseAPIError(w, 500, api.ResponseError{
Type: "fatal",
Message: "empty body",
})
return
}
var post model.Post
err = json.Unmarshal(b, &post)
if err != nil {
testutil.ResponseError(w, 500, err)
return
}
b, err = json.Marshal(post)
if err != nil {
testutil.ResponseError(w, 500, err)
//.........這裏部分代碼省略.........
示例5: TestPostUpdateInTeam
func TestPostUpdateInTeam(t *testing.T) {
testutil.CleanUp()
defer testutil.CleanUp()
mux := http.NewServeMux()
mux.HandleFunc("/api/v2/items/abcdefghijklmnopqrst", func(w http.ResponseWriter, r *http.Request) {
if r.Method != "PATCH" {
w.WriteHeader(405)
b, _ := json.Marshal(api.ResponseError{"method_not_allowed", "Method Not Allowed"})
w.Write(b)
return
}
defer r.Body.Close()
b, err := ioutil.ReadAll(r.Body)
if err != nil {
testutil.ResponseError(w, 500, err)
return
}
if string(b) == "" {
testutil.ResponseAPIError(w, 500, api.ResponseError{
Type: "fatal",
Message: "empty body",
})
return
}
var post model.Post
err = json.Unmarshal(b, &post)
if err != nil {
testutil.ResponseError(w, 500, err)
return
}
post.UpdatedAt = model.Time{Time: time.Date(2016, 2, 1, 12, 51, 42, 0, time.UTC)}
b, err = json.Marshal(post)
if err != nil {
testutil.ResponseError(w, 500, err)
return
}
_, err = w.Write(b)
if err != nil {
testutil.ResponseError(w, 500, err)
return
}
})
server := httptest.NewServer(mux)
defer server.Close()
err := os.Setenv("QIITA_ACCESS_TOKEN", "XXXXXXXXXXXX")
if err != nil {
t.Fatal(err)
}
client := api.NewClient(func(subDomain, path string) (url string) {
if subDomain != "increments" {
t.Fatalf("wrong sub domain: %s", subDomain)
return
}
url = fmt.Sprintf("%s%s%s", server.URL, "/api/v2", path)
return
}, inf)
testutil.ShouldExistFile(t, 0)
post := model.NewPost("Example Title", &model.Time{time.Date(2000, 1, 1, 9, 0, 0, 0, time.UTC)}, &model.Team{Active: true, ID: "increments", Name: "Increments Inc."})
post.ID = "abcdefghijklmnopqrst"
prevPath := post.Path
if err != nil {
t.Fatal(err)
}
err = post.Update(client)
if err != nil {
t.Fatal(err)
}
postPath := post.Path
if err != nil {
t.Fatal(err)
}
if postPath != prevPath {
t.Errorf("wrong path: expected %s, but actual %s", prevPath, postPath)
}
if !post.UpdatedAt.Equal(time.Date(2016, 2, 1, 12, 51, 42, 0, time.UTC)) {
t.Errorf("wrong UpdatedAt: %s", post.UpdatedAt)
}
testutil.ShouldExistFile(t, 0)
}
示例6: TestPostDecodeWithCorrectMarkdown
func TestPostDecodeWithCorrectMarkdown(t *testing.T) {
testutil.CleanUp()
defer testutil.CleanUp()
var post model.Post
err := post.Decode([]byte(`<!--
id: abcdefghijklmnopqrst
url: http://example.com/mypost
created_at: 2013-12-10T12:29:14+09:00
updated_at: 2015-02-25T09:26:30+09:00
private: true
coediting: false
tags:
- TypeScript
- Docker:
- 1.9
- Go:
- 1.4.3
- 1.5.3
team: null
-->
# Main title
## Sub title
Paragraph
`))
if err != nil {
t.Fatal(err)
}
if post.Meta.ID != "abcdefghijklmnopqrst" {
t.Errorf("wrong Id")
}
if post.Meta.URL != "http://example.com/mypost" {
t.Errorf("wrong Url")
}
if !post.Meta.CreatedAt.Equal(time.Date(2013, 12, 10, 3, 29, 14, 0, time.UTC)) {
t.Errorf("wrong CreatedAt")
}
if !post.Meta.UpdatedAt.Equal(time.Date(2015, 02, 25, 0, 26, 30, 0, time.UTC)) {
t.Errorf("wrong UpdatedAt")
}
if post.Meta.Private != true {
t.Errorf("wrong Private")
}
if post.Meta.Coediting != false {
t.Errorf("wrong Coediting")
}
if len(post.Meta.Tags) != 3 {
t.Errorf("wrong Tags length: %d", len(post.Meta.Tags))
} else {
for _, tag := range post.Meta.Tags {
switch tag.Name {
case "TypeScript":
if len(tag.Versions) != 0 {
t.Errorf("wrong Tag with no version: %+v", tag)
}
case "Docker":
if len(tag.Versions) != 1 || tag.Versions[0] != "1.9" {
t.Errorf("wrong Tag with single version: %+v", tag)
}
case "Go":
if len(tag.Versions) != 2 || tag.Versions[0] != "1.4.3" || tag.Versions[1] != "1.5.3" {
t.Errorf("wrong Tag with multi versions: %+v", tag)
}
}
}
}
if post.Title != "Main title" {
t.Errorf("wrong Title")
}
if post.Body != "## Sub title\nParagraph" {
t.Errorf("wrong Body: %s", post.Body)
}
}