mirror of
https://github.com/graphql-python/graphene.git
synced 2024-11-26 11:33:55 +03:00
103 lines
1.6 KiB
Python
103 lines
1.6 KiB
Python
from collections import namedtuple
|
|
|
|
Ship = namedtuple('Ship', ['id', 'name'])
|
|
Faction = namedtuple('Faction', ['id', 'name', 'ships'])
|
|
|
|
xwing = Ship(
|
|
id='1',
|
|
name='X-Wing',
|
|
)
|
|
|
|
ywing = Ship(
|
|
id='2',
|
|
name='Y-Wing',
|
|
)
|
|
|
|
awing = Ship(
|
|
id='3',
|
|
name='A-Wing',
|
|
)
|
|
|
|
# Yeah, technically it's Corellian. But it flew in the service of the rebels,
|
|
# so for the purposes of this demo it's a rebel ship.
|
|
falcon = Ship(
|
|
id='4',
|
|
name='Millenium Falcon',
|
|
)
|
|
|
|
homeOne = Ship(
|
|
id='5',
|
|
name='Home One',
|
|
)
|
|
|
|
tieFighter = Ship(
|
|
id='6',
|
|
name='TIE Fighter',
|
|
)
|
|
|
|
tieInterceptor = Ship(
|
|
id='7',
|
|
name='TIE Interceptor',
|
|
)
|
|
|
|
executor = Ship(
|
|
id='8',
|
|
name='Executor',
|
|
)
|
|
|
|
rebels = Faction(
|
|
id='1',
|
|
name='Alliance to Restore the Republic',
|
|
ships=['1', '2', '3', '4', '5']
|
|
)
|
|
|
|
empire = Faction(
|
|
id='2',
|
|
name='Galactic Empire',
|
|
ships=['6', '7', '8']
|
|
)
|
|
|
|
data = {
|
|
'Faction': {
|
|
'1': rebels,
|
|
'2': empire
|
|
},
|
|
'Ship': {
|
|
'1': xwing,
|
|
'2': ywing,
|
|
'3': awing,
|
|
'4': falcon,
|
|
'5': homeOne,
|
|
'6': tieFighter,
|
|
'7': tieInterceptor,
|
|
'8': executor
|
|
}
|
|
}
|
|
|
|
|
|
def createShip(shipName, factionId):
|
|
nextShip = len(data['Ship'].keys())+1
|
|
newShip = Ship(
|
|
id=str(nextShip),
|
|
name=shipName
|
|
)
|
|
data['Ship'][newShip.id] = newShip
|
|
data['Faction'][factionId].ships.append(newShip.id)
|
|
return newShip
|
|
|
|
|
|
def getShip(_id):
|
|
return data['Ship'][_id]
|
|
|
|
|
|
def getFaction(_id):
|
|
return data['Faction'][_id]
|
|
|
|
|
|
def getRebels():
|
|
return rebels
|
|
|
|
|
|
def getEmpire():
|
|
return empire
|