Feature/put post (#9)

This commit is contained in:
Yaroslav Rudenko
2021-10-02 14:27:00 +03:00
committed by GitHub
parent 8deb157f4d
commit 3bd1ace8d8
6 changed files with 107 additions and 28 deletions

View File

@@ -7,7 +7,7 @@ package airtable
import "net/url"
// Record base time of airtable record fields
// Record base time of airtable record fields.
type Record struct {
client *Client
table *Table
@@ -27,16 +27,19 @@ type Record struct {
// https://airtable.com/{yourDatabaseID}/api/docs#curl/table:{yourTableName}:retrieve
func (t *Table) GetRecord(recordID string) (*Record, error) {
result := new(Record)
err := t.client.get(t.dbName, t.tableName, recordID, url.Values{}, result)
if err != nil {
return nil, err
}
result.client = t.client
result.table = t
return result, nil
}
// UpdateRecordPartial updates partial info on record
// UpdateRecordPartial updates partial info on record.
func (r *Record) UpdateRecordPartial(changedFields map[string]interface{}) (*Record, error) {
data := &Records{
Records: []*Record{
@@ -47,25 +50,32 @@ func (r *Record) UpdateRecordPartial(changedFields map[string]interface{}) (*Rec
},
}
response := new(Records)
err := r.client.patch(r.table.dbName, r.table.tableName, data, response)
if err != nil {
return nil, err
}
result := response.Records[0]
result.client = r.client
result.table = r.table
return result, nil
}
// DeleteRecord delete one record
// DeleteRecord delete one record.
func (r *Record) DeleteRecord() (*Record, error) {
response := new(Records)
err := r.client.delete(r.table.dbName, r.table.tableName, []string{r.ID}, response)
if err != nil {
return nil, err
}
result := response.Records[0]
result.client = r.client
result.table = r.table
return result, nil
}