github.com/yaegashi/msgraph.go@v0.1.4/beta/ActionJournal.go (about) 1 // Code generated by msgraph.go/gen DO NOT EDIT. 2 3 package msgraph 4 5 import ( 6 "context" 7 "fmt" 8 "io/ioutil" 9 "net/http" 10 11 "github.com/yaegashi/msgraph.go/jsonx" 12 ) 13 14 // JournalPostRequestParameter undocumented 15 type JournalPostRequestParameter struct { 16 } 17 18 // Account is navigation property 19 func (b *JournalRequestBuilder) Account() *AccountRequestBuilder { 20 bb := &AccountRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 21 bb.baseURL += "/account" 22 return bb 23 } 24 25 // JournalLines returns request builder for JournalLine collection 26 func (b *JournalRequestBuilder) JournalLines() *JournalJournalLinesCollectionRequestBuilder { 27 bb := &JournalJournalLinesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 28 bb.baseURL += "/journalLines" 29 return bb 30 } 31 32 // JournalJournalLinesCollectionRequestBuilder is request builder for JournalLine collection 33 type JournalJournalLinesCollectionRequestBuilder struct{ BaseRequestBuilder } 34 35 // Request returns request for JournalLine collection 36 func (b *JournalJournalLinesCollectionRequestBuilder) Request() *JournalJournalLinesCollectionRequest { 37 return &JournalJournalLinesCollectionRequest{ 38 BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client}, 39 } 40 } 41 42 // ID returns request builder for JournalLine item 43 func (b *JournalJournalLinesCollectionRequestBuilder) ID(id string) *JournalLineRequestBuilder { 44 bb := &JournalLineRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 45 bb.baseURL += "/" + id 46 return bb 47 } 48 49 // JournalJournalLinesCollectionRequest is request for JournalLine collection 50 type JournalJournalLinesCollectionRequest struct{ BaseRequest } 51 52 // Paging perfoms paging operation for JournalLine collection 53 func (r *JournalJournalLinesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]JournalLine, error) { 54 req, err := r.NewJSONRequest(method, path, obj) 55 if err != nil { 56 return nil, err 57 } 58 if ctx != nil { 59 req = req.WithContext(ctx) 60 } 61 res, err := r.client.Do(req) 62 if err != nil { 63 return nil, err 64 } 65 var values []JournalLine 66 for { 67 if res.StatusCode != http.StatusOK { 68 b, _ := ioutil.ReadAll(res.Body) 69 res.Body.Close() 70 errRes := &ErrorResponse{Response: res} 71 err := jsonx.Unmarshal(b, errRes) 72 if err != nil { 73 return nil, fmt.Errorf("%s: %s", res.Status, string(b)) 74 } 75 return nil, errRes 76 } 77 var ( 78 paging Paging 79 value []JournalLine 80 ) 81 err := jsonx.NewDecoder(res.Body).Decode(&paging) 82 res.Body.Close() 83 if err != nil { 84 return nil, err 85 } 86 err = jsonx.Unmarshal(paging.Value, &value) 87 if err != nil { 88 return nil, err 89 } 90 values = append(values, value...) 91 if n >= 0 { 92 n-- 93 } 94 if n == 0 || len(paging.NextLink) == 0 { 95 return values, nil 96 } 97 req, err = http.NewRequest("GET", paging.NextLink, nil) 98 if ctx != nil { 99 req = req.WithContext(ctx) 100 } 101 res, err = r.client.Do(req) 102 if err != nil { 103 return nil, err 104 } 105 } 106 } 107 108 // GetN performs GET request for JournalLine collection, max N pages 109 func (r *JournalJournalLinesCollectionRequest) GetN(ctx context.Context, n int) ([]JournalLine, error) { 110 var query string 111 if r.query != nil { 112 query = "?" + r.query.Encode() 113 } 114 return r.Paging(ctx, "GET", query, nil, n) 115 } 116 117 // Get performs GET request for JournalLine collection 118 func (r *JournalJournalLinesCollectionRequest) Get(ctx context.Context) ([]JournalLine, error) { 119 return r.GetN(ctx, 0) 120 } 121 122 // Add performs POST request for JournalLine collection 123 func (r *JournalJournalLinesCollectionRequest) Add(ctx context.Context, reqObj *JournalLine) (resObj *JournalLine, err error) { 124 err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj) 125 return 126 } 127 128 // Account is navigation property 129 func (b *JournalLineRequestBuilder) Account() *AccountRequestBuilder { 130 bb := &AccountRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 131 bb.baseURL += "/account" 132 return bb 133 }