domain

package
v1.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 9, 2020 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const (
	CurrencyNode = "Currency"
	CountryNode  = "Country"
)
View Source
const (
	ProvinceNode = "Province"
	CityNode     = "City"
	RegencyNode  = "Regency"
	DistrictNode = "District"
	VillageNode  = "Village"
)

Variables

View Source
var (
	RegionArgs = graphql.FieldConfigArgument{
		"id": &graphql.ArgumentConfig{
			Type: scalar.UUID,
		},
		"code": &graphql.ArgumentConfig{
			Type: graphql.String,
		},
	}

	ListRegionArgs = graphql.FieldConfigArgument{
		"code": &graphql.ArgumentConfig{
			Type: graphql.String,
		},
		"limit": &graphql.ArgumentConfig{
			Type:         graphql.Int,
			DefaultValue: config.Limit,
		},
		"offset": &graphql.ArgumentConfig{
			Type:         graphql.Int,
			DefaultValue: config.Offset,
		},
		"province": &graphql.ArgumentConfig{
			Type: RegionInput(ProvinceNode),
		},
		"city": &graphql.ArgumentConfig{
			Type: RegionInput(CityNode),
		},
		"regency": &graphql.ArgumentConfig{
			Type: RegionInput(RegencyNode),
		},
		"district": &graphql.ArgumentConfig{
			Type: RegionInput(DistrictNode),
		},
		"country": &graphql.ArgumentConfig{
			Type: CountryInput,
		},
	}

	ProvinceType = graphql.NewObject(graphql.ObjectConfig{
		Name:        ProvinceNode,
		Description: "Province administrative division",
		Fields:      regionFields,
	})

	CityType = graphql.NewObject(graphql.ObjectConfig{
		Name:        CityNode,
		Description: "City administrative division",
		Fields:      regionFields,
	})

	RegencyType = graphql.NewObject(graphql.ObjectConfig{
		Name:        RegencyNode,
		Description: "Regency administrative division",
		Fields:      regionFields,
	})

	DistrictType = graphql.NewObject(graphql.ObjectConfig{
		Name:        DistrictNode,
		Description: "District administrative division",
		Fields:      regionFields,
	})

	VillageType = graphql.NewObject(graphql.ObjectConfig{
		Name:        VillageNode,
		Description: "Village administrative division",
		Fields:      regionFields,
	})

	CurrencyType = graphql.NewObject(graphql.ObjectConfig{
		Name:        "Currency",
		Description: "Currency information with ISO 4217",
		Fields:      currencyField,
	})

	CurrencyInput = graphql.NewInputObject(graphql.InputObjectConfig{
		Name:        fmt.Sprintf("Currency_%s", random.String(5, random.Alphabetic)),
		Description: "Currency input arguments",
		Fields: graphql.InputObjectConfigFieldMap{
			"id": &graphql.InputObjectFieldConfig{
				Type: scalar.UUID,
			},
			"ISO4217Name": &graphql.InputObjectFieldConfig{
				Type: graphql.String,
			},
			"ISO4217Alphabetic": &graphql.InputObjectFieldConfig{
				Type: graphql.String,
			},
			"ISO4217Numeric": &graphql.InputObjectFieldConfig{
				Type: graphql.String,
			},
			"ISO4217MinorUnit": &graphql.InputObjectFieldConfig{
				Type: graphql.String,
			},
		},
	})

	CountryType = graphql.NewObject(graphql.ObjectConfig{
		Name:        "Country",
		Description: "Country information with ISO 3166",
		Fields:      countryField,
	})

	CountryInput = graphql.NewInputObject(graphql.InputObjectConfig{
		Name:        "Country",
		Description: "Country input arguments",
		Fields: graphql.InputObjectConfigFieldMap{
			"id": &graphql.InputObjectFieldConfig{
				Type: scalar.UUID,
			},
			"name": &graphql.InputObjectFieldConfig{
				Type: graphql.String,
			},
			"dialCode": &graphql.InputObjectFieldConfig{
				Type: graphql.String,
			},
			"ISO3166Alpha2": &graphql.InputObjectFieldConfig{
				Type: graphql.String,
			},
			"ISO3166Alpha3": &graphql.InputObjectFieldConfig{
				Type: graphql.String,
			},
			"ISO3166Numeric": &graphql.InputObjectFieldConfig{
				Type: graphql.String,
			},
			"currency": &graphql.InputObjectFieldConfig{
				Type: CurrencyInput,
			},
		},
	})

	CountryArgs = graphql.FieldConfigArgument{
		"id": &graphql.ArgumentConfig{
			Type: scalar.UUID,
		},
		"ISO3166Alpha2": &graphql.ArgumentConfig{
			Type: graphql.String,
		},
		"ISO3166Alpha3": &graphql.ArgumentConfig{
			Type: graphql.String,
		},
		"ISO3166Numeric": &graphql.ArgumentConfig{
			Type: graphql.String,
		},
	}

	ListCountryArgs = graphql.FieldConfigArgument{
		"limit": &graphql.ArgumentConfig{
			Type:         graphql.Int,
			DefaultValue: config.Limit,
		},
		"offset": &graphql.ArgumentConfig{
			Type:         graphql.Int,
			DefaultValue: config.Offset,
		},
		"dialCode": &graphql.ArgumentConfig{
			Type: graphql.String,
		},
		"currencies": &graphql.ArgumentConfig{
			Type: graphql.NewList(CurrencyInput),
		},
	}
)
View Source
var (
	Incoming = map[string]string{
		"country":  CountryNode,
		"province": ProvinceNode,
		"city":     CityNode,
		"regency":  RegencyNode,
		"district": DistrictNode,
		"village":  VillageNode,
		"currency": CountryNode,
	}

	Outgoing = map[string]string{
		"currencies": CurrencyNode,
	}
)

Functions

func RegionInput

func RegionInput(name string) *graphql.InputObject

func RegionType

func RegionType(name string) *graphql.Object

Types

type Country

type Country struct {
	ID             string      `json:"id"`
	Name           string      `json:"name"`
	ISO3166Alpha2  string      `json:"ISO3166Alpha2"`
	ISO3166Alpha3  string      `json:"ISO3166Alpha3"`
	ISO3166Numeric string      `json:"ISO3166Numeric"`
	CallingCode    string      `json:"dialCode"`
	Currencies     []*Currency `json:"currencies"`
	Flag           Flag        `json:"flag"`
	FlagStr        string      `json:"flags"`
	Regions
	CreatedAt time.Time `json:"createdAt"`
	UpdatedAt time.Time `json:"updatedAt"`
}

func (*Country) Unmarshal

func (c *Country) Unmarshal() error

type Currency

type Currency struct {
	ID                string    `json:"id"`
	ISO4217Name       string    `json:"ISO4217Name"`
	ISO4217Numeric    string    `json:"ISO4217Numeric"`
	ISO4217MinorUnit  string    `json:"ISO4217MinorUnit"`
	ISO4217Alphabetic string    `json:"ISO4217Alphabetic"`
	CreatedAt         time.Time `json:"createdAt"`
	UpdatedAt         time.Time `json:"updatedAt"`
}

type Flag

type Flag struct {
	Flat  Size `json:"flat"`
	Shiny Size `json:"shiny"`
}

type Region

type Region struct {
	ID   string `json:"id"`
	Name string `json:"name"`
	Code string `json:"code"`
	Regions
	CreatedAt time.Time `json:"createdAt"`
	UpdatedAt time.Time `json:"updatedAt"`
}

type Regions

type Regions struct {
	Provinces []*Region `json:"provinces,omitempty"`
	Cities    []*Region `json:"cities,omitempty"`
	Regencies []*Region `json:"regencies,omitempty"`
	Districts []*Region `json:"districts,omitempty"`
	Villages  []*Region `json:"villages,omitempty"`
}

type Size

type Size struct {
	Sixteen    string `json:"sixteen"`
	TwentyFour string `json:"twentyFour"`
	ThirtyTwo  string `json:"thirtyTwo"`
	FortyEight string `json:"fortyEight"`
	SixtyFour  string `json:"sixtyFour"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL