From 65b38ff98a072f67b9937f4fbf65607da13ce1b5 Mon Sep 17 00:00:00 2001 From: Brett Bender Date: Sat, 20 Jan 2024 14:10:31 -0600 Subject: [PATCH] feat(api): asset creation --- internal/api/api.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/internal/api/api.go b/internal/api/api.go index f04fb8c..ab69223 100644 --- a/internal/api/api.go +++ b/internal/api/api.go @@ -2,6 +2,7 @@ package api import ( "bytes" + "encoding/json" "fmt" "io" "net/http" @@ -109,6 +110,24 @@ func (c *APIClient) RetrieveAssetByID(idNumber string) (*types.Asset, error) { return resp.Asset, nil } +func (c *APIClient) CreateAsset(request types.CreateAssetRequest) (*types.Asset, error) { + url := fmt.Sprintf("%s/assets", c.Host) + + body, err := json.Marshal(request) + if err != nil { + return nil, err + } + + req, _ := http.NewRequest("POST", url, bytes.NewBuffer(body)) + + resp, err := c.retrieveSingleAsset(req) + if err != nil { + return nil, err + } + + return resp.Asset, nil +} + func (c *APIClient) RetrieveAllAssets() ([]*types.Asset, error) { url := fmt.Sprintf("%s/assets", c.Host) req, _ := http.NewRequest("GET", url, bytes.NewBuffer([]byte{}))