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  }