| OLD | NEW |
| 1 package model | 1 package model |
| 2 | 2 |
| 3 import ( | 3 import ( |
| 4 "bytes" | 4 "bytes" |
| 5 "fmt" | 5 "fmt" |
| 6 "io" | 6 "io" |
| 7 "io/ioutil" | 7 "io/ioutil" |
| 8 "math" | 8 "math" |
| 9 "time" | 9 "time" |
| 10 | 10 |
| (...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 179 "model: data too large %d bytes (max allowed %d bytes)", | 179 "model: data too large %d bytes (max allowed %d bytes)", |
| 180 len(data), | 180 len(data), |
| 181 maxDataEntries*maxBlobLen, | 181 maxDataEntries*maxBlobLen, |
| 182 ) | 182 ) |
| 183 } | 183 } |
| 184 | 184 |
| 185 // Break data into chunks of max. allowed blob length. | 185 // Break data into chunks of max. allowed blob length. |
| 186 numEntries := int(math.Ceil(float64(len(data)) / maxBlobLen)) | 186 numEntries := int(math.Ceil(float64(len(data)) / maxBlobLen)) |
| 187 dataEntries := make([]DataEntry, 0, numEntries) | 187 dataEntries := make([]DataEntry, 0, numEntries) |
| 188 for i := 0; i < numEntries*maxBlobLen; i += maxBlobLen { | 188 for i := 0; i < numEntries*maxBlobLen; i += maxBlobLen { |
| 189 » » dataEntries = append(dataEntries, DataEntry{Data: data[i : i+max
BlobLen]}) | 189 » » end := min(i+maxBlobLen, len(data)) |
| 190 » » dataEntries = append(dataEntries, DataEntry{Data: data[i:end]}) |
| 190 } | 191 } |
| 191 | 192 |
| 192 if err := datastore.Get(c).Put(dataEntries); err != nil { | 193 if err := datastore.Get(c).Put(dataEntries); err != nil { |
| 193 return err | 194 return err |
| 194 } | 195 } |
| 195 | 196 |
| 196 newKeys := make([]*datastore.Key, 0, len(dataEntries)) | 197 newKeys := make([]*datastore.Key, 0, len(dataEntries)) |
| 197 for _, de := range dataEntries { | 198 for _, de := range dataEntries { |
| 198 newKeys = append(newKeys, datastore.Get(c).KeyForObj(&de)) | 199 newKeys = append(newKeys, datastore.Get(c).KeyForObj(&de)) |
| 199 } | 200 } |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 316 q = q.Order("-date") | 317 q = q.Order("-date") |
| 317 | 318 |
| 318 if p.Limit < 0 || p.Limit > defaultLimit { | 319 if p.Limit < 0 || p.Limit > defaultLimit { |
| 319 q = q.Limit(defaultLimit) | 320 q = q.Limit(defaultLimit) |
| 320 } else { | 321 } else { |
| 321 q = q.Limit(p.Limit) | 322 q = q.Limit(p.Limit) |
| 322 } | 323 } |
| 323 | 324 |
| 324 return q | 325 return q |
| 325 } | 326 } |
| OLD | NEW |