Documentation ¶
Overview ¶
Package models encapsulates the graphql API and models
Index ¶
- Constants
- func MarshalTimestamp(t time.Time) graphql.Marshaler
- func MarshalUint(u uint64) graphql.Marshaler
- func NewExecutableSchema(cfg Config) graphql.ExecutableSchema
- func UnmarshalTimestamp(v interface{}) (time.Time, error)
- func UnmarshalUint(v interface{}) (uint64, error)
- type Action
- type ActionEffect
- type AddEntity
- type AddStream
- type AuthProvider
- type CastingInfo
- type ChatEvent
- type ClassJob
- type ComplexityRoot
- type Config
- type CraftingInfo
- type DirectiveRoot
- type Enmity
- type Entity
- type EntityEvent
- type EntityEventSource
- type EntityEventType
- type HateEntry
- type HateRanking
- type Location
- type MapInfo
- type MutationResolver
- type NPCInfo
- type Place
- type QueryResolver
- type RecipeInfo
- type RemoveEntity
- type RemoveStatus
- type RemoveStream
- type Resolver
- type ResolverRoot
- type Resources
- type SetEntities
- type Status
- type StoreProvider
- type Stream
- type StreamEvent
- type StreamEventSource
- type StreamEventType
- type StreamRequest
- type StreamRequestHandler
- type SubscriptionResolver
- type UpdateCastingInfo
- type UpdateClass
- type UpdateCraftingInfo
- type UpdateEnmity
- type UpdateIDs
- type UpdateLastAction
- type UpdateLocation
- type UpdateLockonMarker
- type UpdateMap
- type UpdateResources
- type UpdateTarget
- type UpsertStatus
- type World
Constants ¶
const AetherometerAPIVersion = "v0.2.2-beta"
AetherometerAPIVersion returns the current semantic version of the API. Generally, incremental additions to the API will be introduced with new patch versions. Minor breaking changes are introduced with new minor versions of the API. Major API changes and rewrites will be introduced with new major versions of the API
Variables ¶
This section is empty.
Functions ¶
func MarshalTimestamp ¶
MarshalTimestamp converts the provided time to milliseconds since the Unix epoch.
func MarshalUint ¶
MarshalUint marshals the provided uint64 to a string
func NewExecutableSchema ¶
func NewExecutableSchema(cfg Config) graphql.ExecutableSchema
NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.
func UnmarshalTimestamp ¶
UnmarshalTimestamp is currently unimplemented.
func UnmarshalUint ¶
UnmarshalUint converts the string representation for an unsigned integer to a uint64.
Types ¶
type Action ¶
type Action struct { TargetID uint64 `json:"targetID"` Name string `json:"name"` GlobalCounter int `json:"globalCounter"` AnimationLockTime float64 `json:"animationLockTime"` HiddenAnimation int `json:"hiddenAnimation"` Location *Location `json:"location" validate:"nil=false"` ID int `json:"id"` Variation int `json:"variation"` EffectDisplayType int `json:"effectDisplayType"` IsAoE bool `json:"isAoE"` Effects []ActionEffect `json:"effects"` EffectFlags int `json:"effectFlags"` UseTime time.Time `json:"useTime"` }
type ActionEffect ¶
type AddEntity ¶
type AddEntity struct {
Entity *Entity `json:"entity" validate:"nil=false"`
}
func (AddEntity) IsEntityEventType ¶
func (AddEntity) IsEntityEventType()
type AddStream ¶
type AddStream struct {
Stream *Stream `json:"stream" validate:"nil=false"`
}
func (AddStream) IsStreamEventType ¶
func (AddStream) IsStreamEventType()
type AuthProvider ¶
type AuthProvider interface { CreateAdminToken(ctx context.Context) (string, error) AddPlugin(ctx context.Context, pluginURL string) (string, error) RemovePlugin(ctx context.Context, apiToken string) (bool, error) AuthorizePluginToken(ctx context.Context) error }
AuthProvider describes the expected interface of an auth provider that handles creation of auth tokens and authorization of them.
type CastingInfo ¶
type CastingInfo struct { ActionID int `json:"actionID"` ActionName string `json:"actionName"` StartTime time.Time `json:"startTime"` CastTime time.Time `json:"castTime"` TargetID uint64 `json:"targetID"` Location *Location `json:"location" validate:"nil=false"` CastType int `json:"castType"` EffectRange int `json:"effectRange"` XAxisModifier int `json:"xAxisModifier"` Omen string `json:"omen"` }
type ChatEvent ¶
type ChatEvent struct { ChannelID uint64 `json:"channelID"` ChannelWorld *World `json:"channelWorld" validate:"nil=false"` ChannelType string `json:"channelType"` ContentID uint64 `json:"contentID"` EntityID uint64 `json:"entityID"` World *World `json:"world" validate:"nil=false"` Name string `json:"name"` Message string `json:"message"` }
func (ChatEvent) IsStreamEventType ¶
func (ChatEvent) IsStreamEventType()
type ComplexityRoot ¶
type ComplexityRoot struct { Action struct { AnimationLockTime func(childComplexity int) int EffectDisplayType func(childComplexity int) int EffectFlags func(childComplexity int) int Effects func(childComplexity int) int GlobalCounter func(childComplexity int) int HiddenAnimation func(childComplexity int) int ID func(childComplexity int) int IsAoE func(childComplexity int) int Location func(childComplexity int) int Name func(childComplexity int) int TargetID func(childComplexity int) int UseTime func(childComplexity int) int Variation func(childComplexity int) int } ActionEffect struct { BonusPercent func(childComplexity int) int Flags func(childComplexity int) int HitSeverity func(childComplexity int) int Param func(childComplexity int) int TargetID func(childComplexity int) int Type func(childComplexity int) int Value func(childComplexity int) int ValueMultiplier func(childComplexity int) int } AddEntity struct { Entity func(childComplexity int) int } AddStream struct { Stream func(childComplexity int) int } CastingInfo struct { ActionID func(childComplexity int) int ActionName func(childComplexity int) int CastTime func(childComplexity int) int CastType func(childComplexity int) int EffectRange func(childComplexity int) int Location func(childComplexity int) int Omen func(childComplexity int) int StartTime func(childComplexity int) int TargetID func(childComplexity int) int XAxisModifier func(childComplexity int) int } ChatEvent struct { ChannelID func(childComplexity int) int ChannelType func(childComplexity int) int ChannelWorld func(childComplexity int) int ContentID func(childComplexity int) int EntityID func(childComplexity int) int Message func(childComplexity int) int Name func(childComplexity int) int World func(childComplexity int) int } ClassJob struct { Abbreviation func(childComplexity int) int ID func(childComplexity int) int Name func(childComplexity int) int } CraftingInfo struct { CurrentCondition func(childComplexity int) int Durability func(childComplexity int) int DurabilityDelta func(childComplexity int) int HqChance func(childComplexity int) int LastCraftActionID func(childComplexity int) int LastCraftActionName func(childComplexity int) int PreviousCondition func(childComplexity int) int Progress func(childComplexity int) int ProgressDelta func(childComplexity int) int Quality func(childComplexity int) int QualityDelta func(childComplexity int) int Recipe func(childComplexity int) int ReuseProc func(childComplexity int) int StepNum func(childComplexity int) int } Enmity struct { NearbyEnemyHate func(childComplexity int) int TargetHateRanking func(childComplexity int) int } Entity struct { BNPCInfo func(childComplexity int) int CastingInfo func(childComplexity int) int ClassJob func(childComplexity int) int ID func(childComplexity int) int Index func(childComplexity int) int IsEnemy func(childComplexity int) int IsNpc func(childComplexity int) int IsPet func(childComplexity int) int LastAction func(childComplexity int) int Level func(childComplexity int) int Location func(childComplexity int) int LockonMarker func(childComplexity int) int Name func(childComplexity int) int OwnerID func(childComplexity int) int RawSpawnJSONData func(childComplexity int) int Resources func(childComplexity int) int Statuses func(childComplexity int) int TargetID func(childComplexity int) int } EntityEvent struct { EntityID func(childComplexity int) int StreamID func(childComplexity int) int Type func(childComplexity int) int } HateEntry struct { EnemyID func(childComplexity int) int HatePercent func(childComplexity int) int } HateRanking struct { ActorID func(childComplexity int) int Hate func(childComplexity int) int } Location struct { LastUpdated func(childComplexity int) int Orientation func(childComplexity int) int X func(childComplexity int) int Y func(childComplexity int) int Z func(childComplexity int) int } MapInfo struct { ID func(childComplexity int) int Key func(childComplexity int) int OffsetX func(childComplexity int) int OffsetY func(childComplexity int) int PlaceName func(childComplexity int) int PlaceNameSub func(childComplexity int) int SizeFactor func(childComplexity int) int TerritoryType func(childComplexity int) int } Mutation struct { AddPlugin func(childComplexity int, pluginURL string) int CreateAdminToken func(childComplexity int) int RemovePlugin func(childComplexity int, apiToken string) int SendStreamRequest func(childComplexity int, request StreamRequest) int } NPCInfo struct { BaseID func(childComplexity int) int Error func(childComplexity int) int ModelID func(childComplexity int) int Name func(childComplexity int) int NameID func(childComplexity int) int Size func(childComplexity int) int } Place struct { MapID func(childComplexity int) int Maps func(childComplexity int) int TerritoryID func(childComplexity int) int } Query struct { APIVersion func(childComplexity int) int Entity func(childComplexity int, streamID int, entityID uint64) int Stream func(childComplexity int, streamID int) int Streams func(childComplexity int) int } RecipeInfo struct { CanHq func(childComplexity int) int Difficulty func(childComplexity int) int Durability func(childComplexity int) int Element func(childComplexity int) int ID func(childComplexity int) int Name func(childComplexity int) int Quality func(childComplexity int) int RecipeLevel func(childComplexity int) int } RemoveEntity struct { ID func(childComplexity int) int } RemoveStatus struct { Index func(childComplexity int) int } RemoveStream struct { ID func(childComplexity int) int } Resources struct { Hp func(childComplexity int) int LastTick func(childComplexity int) int MaxHp func(childComplexity int) int MaxMp func(childComplexity int) int Mp func(childComplexity int) int Tp func(childComplexity int) int } SetEntities struct { Entities func(childComplexity int) int } Status struct { ActorID func(childComplexity int) int Description func(childComplexity int) int Duration func(childComplexity int) int ID func(childComplexity int) int LastTick func(childComplexity int) int Name func(childComplexity int) int Param func(childComplexity int) int StartedTime func(childComplexity int) int } Stream struct { CharacterID func(childComplexity int) int CraftingInfo func(childComplexity int) int CurrentWorld func(childComplexity int) int Enmity func(childComplexity int) int Entities func(childComplexity int) int HomeWorld func(childComplexity int) int ID func(childComplexity int) int InstanceNum func(childComplexity int) int Place func(childComplexity int) int ServerID func(childComplexity int) int } StreamEvent struct { StreamID func(childComplexity int) int Type func(childComplexity int) int } Subscription struct { EntityEvent func(childComplexity int) int StreamEvent func(childComplexity int) int } UpdateCastingInfo struct { CastingInfo func(childComplexity int) int } UpdateClass struct { ClassJob func(childComplexity int) int Level func(childComplexity int) int } UpdateCraftingInfo struct { CraftingInfo func(childComplexity int) int } UpdateEnmity struct { Enmity func(childComplexity int) int } UpdateIDs struct { CharacterID func(childComplexity int) int CurrentWorld func(childComplexity int) int HomeWorld func(childComplexity int) int InstanceNum func(childComplexity int) int ServerID func(childComplexity int) int } UpdateLastAction struct { Action func(childComplexity int) int } UpdateLocation struct { Location func(childComplexity int) int } UpdateLockonMarker struct { LockonMarker func(childComplexity int) int } UpdateMap struct { Place func(childComplexity int) int } UpdateResources struct { Resources func(childComplexity int) int } UpdateTarget struct { TargetID func(childComplexity int) int } UpsertStatus struct { Index func(childComplexity int) int Status func(childComplexity int) int } World struct { ID func(childComplexity int) int Name func(childComplexity int) int } }
type Config ¶
type Config struct { Resolvers ResolverRoot Directives DirectiveRoot Complexity ComplexityRoot }
type CraftingInfo ¶
type CraftingInfo struct { Recipe *RecipeInfo `json:"recipe" validate:"nil=false"` LastCraftActionID int `json:"lastCraftActionID"` LastCraftActionName string `json:"lastCraftActionName"` StepNum int `json:"stepNum"` Progress int `json:"progress"` ProgressDelta int `json:"progressDelta"` Quality int `json:"quality"` QualityDelta int `json:"qualityDelta"` HqChance int `json:"hqChance"` Durability int `json:"durability"` DurabilityDelta int `json:"durabilityDelta"` CurrentCondition int `json:"currentCondition"` PreviousCondition int `json:"previousCondition"` ReuseProc bool `json:"reuseProc"` }
type DirectiveRoot ¶
type DirectiveRoot struct { }
type Enmity ¶
type Enmity struct { TargetHateRanking []HateRanking `json:"targetHateRanking"` NearbyEnemyHate []HateEntry `json:"nearbyEnemyHate"` }
type Entity ¶
type Entity struct { ID uint64 `json:"id"` Index int `json:"index"` Name string `json:"name"` TargetID uint64 `json:"targetID"` OwnerID uint64 `json:"ownerID"` Level int `json:"level"` ClassJob *ClassJob `json:"classJob" validate:"nil=false"` IsNpc bool `json:"isNPC"` IsEnemy bool `json:"isEnemy"` IsPet bool `json:"isPet"` BNPCInfo *NPCInfo `json:"bNPCInfo"` Resources *Resources `json:"resources" validate:"nil=false"` Location *Location `json:"location" validate:"nil=false"` LastAction *Action `json:"lastAction"` Statuses []*Status `json:"statuses"` LockonMarker int `json:"lockonMarker"` CastingInfo *CastingInfo `json:"castingInfo"` RawSpawnJSONData string `json:"rawSpawnJSONData"` }
type EntityEvent ¶
type EntityEvent struct { StreamID int `json:"streamID"` EntityID uint64 `json:"entityID"` Type EntityEventType `json:"type"` }
func (*EntityEvent) Validate ¶
func (e *EntityEvent) Validate() error
Validate implements a way to validate this EntityEvent, since the library used doesn't dive into interfaces
type EntityEventSource ¶
type EntityEventSource interface { Subscribe() (channel chan *EntityEvent, subscriberID uint64) Unsubscribe(id uint64) }
EntityEventSource describes the expected interface of a source for entity events
type EntityEventType ¶
type EntityEventType interface {
IsEntityEventType()
}
type HateRanking ¶
type MutationResolver ¶
type NPCInfo ¶
type Place ¶
type QueryResolver ¶
type RecipeInfo ¶
type RemoveEntity ¶
type RemoveEntity struct {
ID uint64 `json:"id"`
}
func (RemoveEntity) IsEntityEventType ¶
func (RemoveEntity) IsEntityEventType()
type RemoveStatus ¶
type RemoveStatus struct {
Index int `json:"index"`
}
func (RemoveStatus) IsEntityEventType ¶
func (RemoveStatus) IsEntityEventType()
type RemoveStream ¶
type RemoveStream struct {
ID int `json:"id"`
}
func (RemoveStream) IsStreamEventType ¶
func (RemoveStream) IsStreamEventType()
type Resolver ¶
type Resolver struct {
// contains filtered or unexported fields
}
Resolver is a resolver for the queried data
func NewResolver ¶
func NewResolver( sp StoreProvider, auth AuthProvider, streamRequestHandler StreamRequestHandler, ) *Resolver
NewResolver creates a new query resolver It takes the sp as an argument to use as a backing store for the queried data
func (*Resolver) Mutation ¶
func (r *Resolver) Mutation() MutationResolver
Mutation allows graphql to handle mutation requests for the system
func (*Resolver) Query ¶
func (r *Resolver) Query() QueryResolver
Query allows graphql to resolve queries made on the system
func (*Resolver) Subscription ¶
func (r *Resolver) Subscription() SubscriptionResolver
Subscription allows graphql to resolve subscriptions added to the system
type ResolverRoot ¶
type ResolverRoot interface { Mutation() MutationResolver Query() QueryResolver Subscription() SubscriptionResolver }
type SetEntities ¶
type SetEntities struct {
Entities []Entity `json:"entities"`
}
func (SetEntities) IsEntityEventType ¶
func (SetEntities) IsEntityEventType()
type StoreProvider ¶
type StoreProvider interface { Streams() ([]Stream, error) Stream(streamID int) (*Stream, error) Entity(streamID int, entityID uint64) (*Entity, error) StreamEventSource() StreamEventSource EntityEventSource() EntityEventSource }
StoreProvider describes the expected interface of a datastore that can provide the backing API requests. There is no normalization of the data expected in the store, so each stream has its own independent state. Querying for any data requires walking down the data hierarchy.
type Stream ¶
type Stream struct { ID int `json:"id"` ServerID int `json:"serverID"` InstanceNum int `json:"instanceNum"` CharacterID uint64 `json:"characterID"` HomeWorld World `json:"homeWorld"` CurrentWorld World `json:"currentWorld"` Place Place `json:"place"` Enmity Enmity `json:"enmity"` CraftingInfo *CraftingInfo `json:"craftingInfo"` EntitiesMap map[uint64]*Entity `json:"entities"` }
Stream represents state reconstructed from the live stream of data from a running FFXIV instance.
type StreamEvent ¶
type StreamEvent struct { StreamID int `json:"streamID"` Type StreamEventType `json:"type"` }
func (*StreamEvent) Validate ¶
func (s *StreamEvent) Validate() error
Validate implements a way to validate this StreamEvent, since the library used doesn't dive into interfaces
type StreamEventSource ¶
type StreamEventSource interface { Subscribe() (channel chan *StreamEvent, subscriberID uint64) Unsubscribe(id uint64) }
StreamEventSource describes the expected interface of a source for stream events
type StreamEventType ¶
type StreamEventType interface {
IsStreamEventType()
}
type StreamRequest ¶
type StreamRequestHandler ¶
StreamRequestHandler defines the type of a client request handler that can be attached to the resolver.
type SubscriptionResolver ¶
type SubscriptionResolver interface { StreamEvent(ctx context.Context) (<-chan *StreamEvent, error) EntityEvent(ctx context.Context) (<-chan *EntityEvent, error) }
type UpdateCastingInfo ¶
type UpdateCastingInfo struct {
CastingInfo *CastingInfo `json:"castingInfo"`
}
func (UpdateCastingInfo) IsEntityEventType ¶
func (UpdateCastingInfo) IsEntityEventType()
type UpdateClass ¶
type UpdateClass struct { ClassJob *ClassJob `json:"classJob" validate:"nil=false"` Level int `json:"level"` }
func (UpdateClass) IsEntityEventType ¶
func (UpdateClass) IsEntityEventType()
type UpdateCraftingInfo ¶
type UpdateCraftingInfo struct {
CraftingInfo *CraftingInfo `json:"craftingInfo"`
}
func (UpdateCraftingInfo) IsStreamEventType ¶
func (UpdateCraftingInfo) IsStreamEventType()
type UpdateEnmity ¶
type UpdateEnmity struct {
Enmity *Enmity `json:"enmity" validate:"nil=false"`
}
func (UpdateEnmity) IsStreamEventType ¶
func (UpdateEnmity) IsStreamEventType()
type UpdateIDs ¶
type UpdateIDs struct { ServerID int `json:"serverID"` InstanceNum int `json:"instanceNum"` CharacterID uint64 `json:"characterID"` HomeWorld *World `json:"homeWorld" validate:"nil=false"` CurrentWorld *World `json:"currentWorld" validate:"nil=false"` }
func (UpdateIDs) IsStreamEventType ¶
func (UpdateIDs) IsStreamEventType()
type UpdateLastAction ¶
type UpdateLastAction struct {
Action *Action `json:"action" validate:"nil=false"`
}
func (UpdateLastAction) IsEntityEventType ¶
func (UpdateLastAction) IsEntityEventType()
type UpdateLocation ¶
type UpdateLocation struct {
Location *Location `json:"location" validate:"nil=false"`
}
func (UpdateLocation) IsEntityEventType ¶
func (UpdateLocation) IsEntityEventType()
type UpdateLockonMarker ¶
type UpdateLockonMarker struct {
LockonMarker int `json:"lockonMarker"`
}
func (UpdateLockonMarker) IsEntityEventType ¶
func (UpdateLockonMarker) IsEntityEventType()
type UpdateMap ¶
type UpdateMap struct {
Place *Place `json:"place" validate:"nil=false"`
}
func (UpdateMap) IsStreamEventType ¶
func (UpdateMap) IsStreamEventType()
type UpdateResources ¶
type UpdateResources struct {
Resources *Resources `json:"resources" validate:"nil=false"`
}
func (UpdateResources) IsEntityEventType ¶
func (UpdateResources) IsEntityEventType()
type UpdateTarget ¶
type UpdateTarget struct {
TargetID uint64 `json:"targetID"`
}
func (UpdateTarget) IsEntityEventType ¶
func (UpdateTarget) IsEntityEventType()
type UpsertStatus ¶
type UpsertStatus struct { Index int `json:"index"` Status *Status `json:"status" validate:"nil=false"` }
func (UpsertStatus) IsEntityEventType ¶
func (UpsertStatus) IsEntityEventType()
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package example provides an example resolver that's autogenerated by gqlgen.
|
Package example provides an example resolver that's autogenerated by gqlgen. |
Code generated by counterfeiter.
|
Code generated by counterfeiter. |