github.com/vchain-us/vcn@v0.9.11-0.20210921212052-a2484d23c0b3/pkg/api/tracking.go (about) 1 /* 2 * Copyright (c) 2018-2020 vChain, Inc. All Rights Reserved. 3 * This software is released under GPL3. 4 * The full license information can be found under: 5 * https://www.gnu.org/licenses/gpl-3.0.en.html 6 * 7 */ 8 9 package api 10 11 import ( 12 "fmt" 13 14 "github.com/sirupsen/logrus" 15 "github.com/vchain-us/vcn/pkg/meta" 16 ) 17 18 type verifyArtifactTrackingEventRequest struct { 19 Client string `json:"client"` 20 Filename string `json:"filename"` 21 Hash string `json:"hash"` 22 URL string `json:"url"` 23 } 24 25 type signArtifactTrackingEventRequest struct { 26 Filename string `json:"filename"` 27 Hash string `json:"hash"` 28 Name string `json:"name"` 29 URL string `json:"url"` 30 } 31 32 type publisherTrackingEventRequest struct { 33 Name string `json:"name"` 34 } 35 36 func trackingEvent() string { 37 return meta.APIEndpoint("tracking-event") 38 } 39 40 // TrackVerify is deprecated and will be removed 41 func TrackVerify(user *User, hash string, filename string) (err error) { 42 logger().WithFields(logrus.Fields{ 43 "hash": hash, 44 "filename": filename, 45 }).Trace("TrackVerify") 46 restError := new(Error) 47 r, err := newSling(user.token()). 48 Post(trackingEvent()+"/verify"). 49 BodyJSON(verifyArtifactTrackingEventRequest{ 50 Client: meta.UserAgent(), 51 Filename: filename, 52 Hash: hash, 53 }).Receive(nil, restError) 54 if err != nil { 55 return err 56 } 57 if r.StatusCode != 200 { 58 return fmt.Errorf("TrackVerify failed: %+v", restError) 59 } 60 return nil 61 } 62 63 // TrackPublisher is deprecated and will be removed 64 func TrackPublisher(user *User, event string) (err error) { 65 logger().WithFields(logrus.Fields{ 66 "event": event, 67 }).Trace("TrackPublisher") 68 restError := new(Error) 69 r, err := newSling(user.token()). 70 Post(trackingEvent()+"/publisher"). 71 BodyJSON(publisherTrackingEventRequest{ 72 Name: event, 73 }).Receive(nil, restError) 74 if err != nil { 75 return err 76 } 77 if r.StatusCode != 200 { 78 return fmt.Errorf("TrackPublisher failed: %+v", restError) 79 } 80 return nil 81 } 82 83 // TrackSign is deprecated and will be removed 84 func TrackSign(user *User, hash string, filename string, status meta.Status) (err error) { 85 logger().WithFields(logrus.Fields{ 86 "hash": hash, 87 "filename": filename, 88 "status": status, 89 }).Trace("TrackSign") 90 restError := new(Error) 91 r, err := newSling(user.token()). 92 Post(trackingEvent()+"/sign"). 93 BodyJSON(signArtifactTrackingEventRequest{ 94 Name: status.String(), 95 Hash: hash, 96 Filename: filename, 97 }).Receive(nil, restError) 98 if err != nil { 99 return err 100 } 101 if r.StatusCode != 200 { 102 return fmt.Errorf("TrackSign failed: %+v", restError) 103 } 104 return nil 105 }