-
Notifications
You must be signed in to change notification settings - Fork 0
/
resolvers_asset.go
55 lines (50 loc) · 1.98 KB
/
resolvers_asset.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package gql
import (
"context"
"errors"
"github.com/shantanu-hashcash/go/services/ticker/internal/tickerdb"
)
// Assets resolves the assets() GraphQL query.
func (r *resolver) Assets(ctx context.Context) (assets []*asset, err error) {
dbAssets, err := r.db.GetAllValidAssets(ctx)
if err != nil {
// obfuscating sql errors to avoid exposing underlying
// implementation
err = errors.New("could not retrieve the requested data")
return
}
for _, dbAsset := range dbAssets {
assets = append(assets, dbAssetToAsset(dbAsset))
}
return
}
// dbAssetToAsset converts a tickerdb.Asset to an *asset
func dbAssetToAsset(dbAsset tickerdb.Asset) *asset {
return &asset{
Code: dbAsset.Code,
IssuerAccount: dbAsset.IssuerAccount,
Type: dbAsset.Type,
NumAccounts: dbAsset.NumAccounts,
AuthRequired: dbAsset.AuthRequired,
AuthRevocable: dbAsset.AuthRevocable,
Amount: dbAsset.Amount,
AssetControlledByDomain: dbAsset.AssetControlledByDomain,
AnchorAssetCode: dbAsset.AnchorAssetCode,
AnchorAssetType: dbAsset.AnchorAssetType,
IsValid: dbAsset.IsValid,
DisplayDecimals: BigInt(dbAsset.DisplayDecimals),
Name: dbAsset.Name,
Desc: dbAsset.Desc,
Conditions: dbAsset.Conditions,
IsAssetAnchored: dbAsset.IsAssetAnchored,
FixedNumber: BigInt(dbAsset.FixedNumber),
MaxNumber: BigInt(dbAsset.MaxNumber),
IsUnlimited: dbAsset.IsUnlimited,
RedemptionInstructions: dbAsset.RedemptionInstructions,
CollateralAddresses: dbAsset.CollateralAddresses,
CollateralAddressSignatures: dbAsset.CollateralAddressSignatures,
Countries: dbAsset.Countries,
Status: dbAsset.Status,
IssuerID: dbAsset.IssuerID,
}
}