code.vegaprotocol.io/vega@v0.79.0/datanode/gateway/graphql/marshallers/account_field.go (about) 1 // Copyright (C) 2023 Gobalsky Labs Limited 2 // 3 // This program is free software: you can redistribute it and/or modify 4 // it under the terms of the GNU Affero General Public License as 5 // published by the Free Software Foundation, either version 3 of the 6 // License, or (at your option) any later version. 7 // 8 // This program is distributed in the hope that it will be useful, 9 // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 // GNU Affero General Public License for more details. 12 // 13 // You should have received a copy of the GNU Affero General Public License 14 // along with this program. If not, see <http://www.gnu.org/licenses/>. 15 16 package marshallers 17 18 import ( 19 "fmt" 20 21 v2 "code.vegaprotocol.io/vega/protos/data-node/api/v2" 22 23 "github.com/99designs/gqlgen/graphql" 24 ) 25 26 func MarshalAccountField(*v2.AccountField) graphql.Marshaler { 27 // Nothing returns an account field as of now, but gqlgen wants this method to exist 28 panic("Not implemented") 29 } 30 31 func UnmarshalAccountField(i interface{}) (*v2.AccountField, error) { 32 v, ok := i.(string) 33 if !ok { 34 return nil, fmt.Errorf("expected string in account field") 35 } 36 37 var af v2.AccountField 38 switch { 39 case v == "AccountId": 40 af = v2.AccountField_ACCOUNT_FIELD_ID 41 case v == "PartyId": 42 af = v2.AccountField_ACCOUNT_FIELD_PARTY_ID 43 case v == "MarketId": 44 af = v2.AccountField_ACCOUNT_FIELD_MARKET_ID 45 case v == "AssetId": 46 af = v2.AccountField_ACCOUNT_FIELD_ASSET_ID 47 case v == "AccountType": 48 af = v2.AccountField_ACCOUNT_FIELD_TYPE 49 default: 50 return nil, fmt.Errorf("unknown account field %v", v) 51 } 52 return &af, nil 53 }