Česká Golfová Federace
Dokumentace rozhraní web služeb CT-Group, a.s.
Obsah: Účel
3
Základní informace
3
Adresa webové služby
4
Klientské certifikáty
4
Přehled konzumentů
4
Formát vstupních a výstupních parametrů
6
Popis jednotlivých metod
9
TURNAJE
9
ČLENSTVÍ
11
HŘIŠTĚ
12
KLUBY
16
TURNAJOVÉ VÝSLEDKY, REGISTRACE
16
2
Účel Dokumentace popisuje způsob a technické parametry připojení k vybraným datům Federačního serveru ČGF. Přístup je umožněn skrze webovou službu obsahující řadu dále popsaných metod, které jsou zabezpečeny certifikátem.
Dokumentace popisuje: •
adresu uložení webové služby
•
kategorie oprávněných konzumentů a rozsah poskytovaných dat
•
způsob komunikace
•
formát parametrů metod
•
vzor výstupu struktury typu dataset
Základní informace Komunikace s datovým úložištěm probíhá výhradně pomocí webových služeb provozovaných na protokolu SOAP (nad HTTPS) s autentizací uživatele pomocí klientského certifikátu (TLS/SSL). Pro volání služeb je nutné použít metodu POST. Požadavky, které nejsou certifikátem podepsány nebo jsou podepsány neznámým certifikátem jsou zamítnuty, veškeré požadavky jsou zaznamenávány do logu. Certifikát je přiřazen uživatelskému účtu a určuje tak jednoznačně konzumenta – Klub, Pořadatel atd. Přiřazování certifáktů uživatelským účtům je plně pod kontrolou správců systému. Popis funkcí, přijímaných i odesílaných dat je definován WSDL, které je k dispozici na adrese služby. Volání webové služby je možné z libovolné platformy/prostředí – podmínkou je pouze podpora webových služeb a certifikátů.
3
Adresa webové služby Webová služba je dostupná na adrese https://ws.cgf.cz/CgsDataProvider/DataService.asmx S ohledem na použití protokolu https a plánované zátěži nepodléhá tato služba loadbalancingu.
Klientské certifikáty Všichni konzumenti webových služeb musí mít pro svou identifikaci vydán certifikát. Jedná se o standardní certifikát podle X509. Musí jím být podepsány všechny požadavky na data, musí být tedy umístěn na serveru, který o data žádá.
Přehled konzumentů Odstavec popisuje jednotlivé kategorie konzumentů a rozsah dat, která jsou oprávněni čerpat. Na základě identifikace konzumenta jsou interně nastaveny rozsahy poskytovaných dat. Rozsah dat je zabudován do webových metod. Jde o omezení na množinu dat se vztahem ke konzumentovi.
Kategorie konzumentů Pro účely stanovení rozsahu dat se definují tyto kategorie konzumenta: •
Klub
•
Pořadatel
•
Spolupořadatel
•
Federace
•
Hřiště
•
Vlastník žebříčku
•
Informační server
4
Definice rozsahu dat Rozsah dat je dán následující tabulkou:
Klub
Turnaje1
Žebříčky
Členové
Hřiště
Klub
Turnaje a
Žebříčky
Členové
informace
základní
nesoutěžní
vlastněné
klubu
o
přehled
výsledky jejichž
tímto
smluvních
klubů
je klub
subjektem
hřištích
pořadatelem nebo spolupořadatelem Pořadatel
Turnaje a
Žebříčky
nesoutěžní
vlastněné
---
---
přehled
základní
výsledky jejichž
tímto
klubů
je pořadatelem
subjektem
nebo spolupořadatelem Spolupořadatel
Turnaje jejichž je
Žebříčky
spolupořadatelem
vlastněné
---
---
přehled
základní
tímto
klubů
subjektem Vlastník
Turnaje a
Žebříčky
žebříčku
nesoutěžní
vlastněné
výsledky
tímto
obsažené v tomto
subjektem
---
---
---
---
informace
základní
žebříčku Informační
Turnaje
žebříčky dle
server
v omezeném
výběru
o hřištích
přehled
rozsahu informací
se
klubů
a omezeném
vztahem k
časovém
federaci
intervalu
Tabulka rolí a přístupů viz barevné značky u jednotlivých metod
1
maximálně v rozsahu 360 dnů (tam i zpět)
5
TOURNAMENT
MEMBERS
COURSE
CLUB
CLUB ORGANIZER COORGANIZER MATCH_OWNER CONSUMER
Formát vstupních a výstupních parametrů Parametry se zasílají metodou POST uložené v SOAP. U položek typu datum a číslo je potřeba respektovat formát definovaný normou XML. Příklady volání a odpovědí jsou součástí WSDL a popisu jednotlivých operací a jsou dostupné pomocí www prohlížeče na adrese služby. Návratová hodnota je typu long (celočíselný 64bit), nebo DataTable. Vzorová odpověď včetně XSD popisu DataTable: -
- <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> - <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:MainDataTable="GetClubs" msdata:UseCurrentLocale="true"> - <xs:complexType> - <xs:choice minOccurs="0" maxOccurs="unbounded"> - <xs:element name="GetClubs"> - <xs:complexType> - <xs:sequence> <xs:element name="IDCLUB" type="xs:decimal" minOccurs="0" /> <xs:element name="CODENUMBER" type="xs:string" minOccurs="0" /> <xs:element name="NAME" type="xs:string" minOccurs="0" /> <xs:element name="SHORTNAME" type="xs:string" minOccurs="0" /> <xs:element name="REGIONNAME" type="xs:string" minOccurs="0" /> <xs:element name="COUNTRYNAME" type="xs:string" minOccurs="0" /> <xs:element name="GOLFREGNAME" type="xs:string" minOccurs="0" /> <xs:element name="FEDERATIONNAME" type="xs:string" minOccurs="0" /> <xs:element name="STATE" type="xs:string" minOccurs="0" />
6
- - - 63907329 143 Albatross Golf Club <SHORTNAME>ALBGC Středočeský Česká republika ZÁPAD B Česká golfová federace <STATE>VALID - 96213519 074 Amatérský golfový club Victoria <SHORTNAME>AGCVA Jihočeský Česká republika ZÁPAD A Česká golfová federace <STATE>VALID …
Příklad voláni podle SOAP 1.2:
POST /DataService.asmx HTTP/1.1 Host: localhost Content-Type: application/soap+xml; charset=utf-8 Content-Length: length
7
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:Body>
HTTP/1.1
Příklad HTTP odpovědi serveru: HTTP/1.1 200 OK Content-Type: application/soap+xml; charset=utf-8 Content-Length: length <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:Body>
xmlxml
8
Popis jednotlivých metod TURNAJE public DataTable GetOrganizedTournaments(DateTime dateFrom, DateTime dateTo)
konzumenti:
Klub, Pořadatel
popis:
Vrací turnaje pořádané nebo spolupořádané konzumentem.
Nejvýše jeden rok vpřed i vzad.
Vstupní parametry: dateFrom
DateTime
Počáteční datum dotazu
dateTo
DateTime
Koncové datum dotazu
Návratové hodnoty: viz. souhrnná tabulka návratových hodnot turnajových metod
public DataTable GetCourseTournaments(DateTime dateFrom, DateTime dateTo)
konzumenti:
Klub
popis:
Vrací turnaje pořádané na hřišti přiřazeném konzumentovi.
Nejvýše jeden rok vpřed i vzad.
Vstupní parametry: dateFrom
DateTime
Počáteční datum dotazu
dateTo
DateTime
Koncové datum dotazu
Návratové hodnoty: viz. souhrnná tabulka návratových hodnot turnajových metod
9
public DataTable GetMatchTournaments(long IdMatch)
konzumenti:
Vlastník žebříčku
popis:
Vrací turnaje, které jsou součástí žebříčku
Vstupní parametry: idMatch
Long
Id žebříčku
Návratové hodnoty: viz. souhrnná tabulka návratových hodnot turnajových metod
Návratové hodnoty dotazovacích metod u turnajů: IDTOURNAMENT
Id turnaje
NAME
Název turnaje
SHORTNAME
Zkrácený název turnaje
DATE_ACTION_FROM
Datum konání od
DATE_ACTION_TO
Datum konání do
TOURNAMENTTYPE
Typ turnaje (interní, vždy O)
ONLY_FOR_MEMBERS
Pouze pro členy
REDUCTION_ONLY
V turnaji je evidováno kolo, vyhodnocené pouze pro snižování HCP
AUTOGENERATE_STARTLIST
Automatické generování startovní listiny (zatím nevyužito)
DESCRIPTION
Popis turnaje
CAPACITY
Kapacita turnaje
ROUND_COUNT
Počet kol v turnaji
PARAMS
Aditivní XML parametry v tu
MIN_REGISTRATIONS
Minimální počet registrací
DATE_REGISTRATION_FROM
Povolené počáteční datum registrace
DATE_REGISTRATION_TO
Ukončení veřejných registrací
WWW_REGISTRATIONS
Počet veřejných registrací
10
COURSENAME
Název hřiště
COUNTDAYS
Počet dnů trvání turnaje
ISFEDERATION
Příznak, zda je turnaj pořádán federací, nebo podřízeným subjektem (region)
Aditivní XML parametry turnaje (textové popisy): SETTING_METHOD
String
Pravidla startu
PRIZE
String
Ceny
FORM_OF_REGISTRATION
String
Způsob registrace
WINNER
String
Vítězství
REFUNDCOST
string
Náhrada
BOARDING
string
Stravování
FEE
string
Poplatky
DIRECTOR
string
Ředitel soutěže
BOARD
string
Soutěžní výbor
RESERVATION_NOTE
string
Poznámka k rezervacím
ČLENSTVÍ public DataTable GetMembers(bool ValidOnly)
konzumenti:
Klub
popis:
Vrací členy klubu.
Vstupní parametry: ValidOnly
bool
Pouze platná členství
Návratové hodnoty: IDGOLFER
Id golfisty
IDMEMBERSHIP
Id členství
NAME
Příjmení hráče
FIRSTNAME1
Křestní jméno hráče
AFTERTITLE
Titul před jménem
11
BEFORETITLE
Titul za jménem
AGE
Věk
AGECATEGORY
Věková kategorie
FULLNAME
Celé jméno hráče
IDCLUB
id klubu
MEMBERNUMBER
Členské číslo
HOMEMEMBER
Příznak domovského členství
HCPSTR
HCP v řetězcovém tvaru (BEZ,PRO…)
HCPNUM
Číselný ekvivalent hendikepu
CLUBNAME
Název klubu
CLUBCODE
Kód klubu
CLUBSHORTNAME
Zkrácený název klubu
MEMVALIDFROM
Platnost členství od
MEMVALIDTO
Platnost členství do
MEMBLOCK
Příznak blokace člena
HŘIŠTĚ public DataTable GetClubCourses()
konzumenti:
Klub
popis:
Vrací smluvní hřiště pro konzumenta.
Vstupní parametry: Návratové hodnoty: NAME
Název hřiště
IDCOURSE
Id hřiště
12
public DataTable GetCourses()
konzumenti:
Jakýkoli autorizovaný konzument
popis:
Vrací seznam všech hřišť.
Vstupní parametry: -
Návratové hodnoty: IDCOURSE
Id hřiště
CODENUMBER
Kód hřiště
NAME
Název hřiště
SHORTNAME
Zkratka hřiště
TYPE
Typ (IN/OUT)
HOLESCOUNT
Počet jamek
APPROVE
Schválené normované hřiště
REGIONNAME
Název regionu
COUNTRYNAME
Název státu
ADDRESS
Adresa hřiště
CITY
Město
GOLFREGION
Golfový region
public DataTable GetStipulatedRounds(long IdCourse)
konzumenti:
Jakýkoli autorizovaný konzument
popis:
Vrací seznam předepsaných kol hřiště
Vstupní parametry: IdCourse
Long
Id hřiště
13
Návratové hodnoty: IDSTIPULATEDROUND
Id předepsaného kola
IDCOURSE
Id hřiště
NAME
Název předepsaného kola
APPROVED
Schváleno (Y/N)
DESCRIPTION
Popis
SHORTNAME
Zkrácený název
CODE
Kód
TYPE
Typ předepsaného kola (počet jamek 9/18)
VALIDFROM
Platné od
VALIDTO
Platné do
HCPCORRECTIONTYPE
Jaké HCP je možné na hřišti upravovat: -
None
-
CLUB
-
EGA
public DataTable GetStipRoundParams(long IdStipulatedRound)
konzumenti:
Jakýkoli autorizovaný konzument
popis:
Vrací tabulku paremetrů předepsaného kola
Vstupní parametry: IdStipulatedRound
Long
Id předepsaného kola
Návratové hodnoty: IDSTIPROUNDPARAM
Id parametru předepsaného kola
IDSTIPULATEDROUND
Id předepsaného kola
NORM_MF
Norma muži/ženy (M/F)
PAR_SUM
Par předepsaného kola
LENGTH_SUM
Celková délka předepsaného kola
USGA_COURSE_RATING
Course rating
BOGEY_SLOPE_RATING
Slope rating
14
SSS
Dnes nepoužívané SSS
VALIDFROM
Platnost od
VALIDTO
Platnost do
COLORCODE
Barva odpaliště
ORD
Pořadí odpaliště
public DataTable GetStipRoundHoles(long IdStipulatedRound,string codeColor)
konzumenti:
Jakýkoli autorizovaný konzument
popis:
Vrací jamky i s parametry pro danou barvu odpaliště
Vstupní parametry: IdStipulatedRound
Long
Id předepsaného kola
codeColor
String
Kód barvy odpaliště
Návratové hodnoty: IDSTIPROUNDHOLE
Id vazby jamky na předepsané kolo
IDHOLE
Id Jamky
HOLECODE
Kód jamky
HOLENAME
Název jamky
HOLENUMBER
Index jamky
HOLEAPPROVE
Schválená normovaná jamka
IDCOURSEPARTITION
Id části hřiště
COURSEPARTNAME
Název části hřiště
COURSEPARTCODE
Kód části hřiště
HCPINDEX
HCP index
STIPROUND_ORDER
Pořadí jamky v předepsaném kole
LENGTH
Délka jamky z daného odpaliště
PAR_M
Par muži
PAR_F
Par ženy
15
KLUBY public DataTable GetClubs()
konzumenti:
Jakýkoli autorizovaný konzument
popis:
Vrací seznam všech klubů
Vstupní parametry: -
Návratové hodnoty: IDCLUB
Id klubu
CODENUMBER
Kód klubu
NAME
Název
SHORTNAME
Zkratka
REGIONNAME
Název regionu
COUNTRYNAME
Název státu
GOLFREGNAME
Název golfového regionu
FEDERATIONNAME
Federace
STATE
Platnost
TURNAJOVÉ VÝSLEDKY, REGISTRACE, STARTOVNÍ LISTINA public DataTable GetTournamentCategories(long IdTournament)
konzumenti:
Jakýkoli autorizovaný konzument
popis:
Vrací konzumentovi kategorie turnaje.
Vstupní parametry: IdTournament
Long
Id turnaje
16
Návratové hodnoty: IDTOURNAMENTCATEGORY
Id kategorie turnaje
NAME
Název kategorie
CATEGORY_CAPACITY
Kapacita kategorie turnaje
IDPLAYINGSYSTEM
Hrací systém
HANDICAPUSE
S vyrovnáním HCP
HCPCORRECTION
S úpravou HCP
ORDERNUM
Pořadí kategorie ve výpise
ONLY_FOR_MEMBER
Kategorie pouze pro členy
LIMITHCP
Limitní hendikep
MAIN
Příznak hlavní kategorie
REGISTRATIONORDERING
Princip řazení přihlášek (DATE/HCP)
COEFFICIENT_HCP
Použitý krácený HCP koeficientem (3/4..)
REGISTERED
Počet registrovaných hráčů v kategorii
PLAYINGSYSTEMDATE
Název hracího systému
public DataTable GetResults(long IdTournamentCategory)
konzumenti:
Jakýkoli autorizovaný konzument
popis:
Vrací konzumentovi výsledky turnaje.
Vstupní parametry: IdTournamentCategory
Long
Id soutěžní kategorie pro vyhodnocení
Návratové hodnoty: FULLNAME
Celé jméno hráče
IDRESULTTOURNAMENT
Id výsledku
IDGOLFER
Id hráče
IDTOURNAMENTCATEGORY
Id kategorie turnaje
STABLEFORD_RES
Stableford body pro výpočet HCP
17
ORDER_FROM
Umístění
ORDER_TO
Umístění do (pokud je dělené)
SCORE
Score podle pravidla kategorie
HCP_BEFORE
HCP před turnajem
HCP_RES
HCP po turnaji
USED_IN_MATCH
Příznak, zda je výsledek započítán do žebříčku
CLUB
Zkratka klubu
SCR1..SCR4
Score za jednotlivá kola
public long RegisterToTournament(long IdGolfer, long IdTournament)
konzumenti:
Jakýkoli autorizovaný konzument
popis:
Přihlášení hráče na turnaj.
Vstupní parametry: IdGolfer
long
Id hráče
IdTournament
long
Id turnaje
Návratové hodnoty: -152
Hráč je blokován
-160
Turnaj je v minulosti
-181
Nenastal čas registrace
-182
Vypršel čas registrace
-200
Je překročena kapacita turnaje
-220
Je vyčerpána kapacita veřejných přihlášek
-230
Nebylo nalezeno domovské členství
-210
Hráč je přihlášen na jiný turnaj na úpravu HCP
18
public DataTable GetTournamentRegistrations(long IdTournament, long IdTournamentCategory)
konzumenti:
Jakýkoli autorizovaný konzument
popis:
Vrací konzumentovi přihlášky do turnaje
Vstupní parametry: IdTournament
Long
Id turnaje
IdTournamentCategory
Long
Id kategorie turnaje
Návratové hodnoty: IDREGISTRATION
Id registrace
IDGOLFER
Id hráče
MEMBERNUMBERACTUAL
Členské číslo hráče
HCPNUM
Numerická hodnota HCP
HCPSTR
HCP
MEMBERNUMBER
Členské číslo hráče v době přihlášky
CLUBSHORTNAME
Zkratka domovského klubu v době přihlášky
FULLNAME
Celé jméno
SEX
Pohlaví hráče
CLUBNAMEACTUAL
Zkratka klubu
FOREIGNCLUB
Název klubu u zahraničního hráče
public DataTable GetTournamentRounds(long IdTournament)
konzumenti:
Jakýkoli autorizovaný konzument
popis:
Vrací konzumentovi kola turnaje turnaje
Vstupní parametry: IdTournament
Long
Id turnaje
Návratové hodnoty: IDTOURNAMENTROUND
Id kola turnaje
19
IDTOURNAMENT
Id turnaje
ORDERNUM
Číslo kola
IDCOURSE
Id hřiště
CLOSED
Uzavřené kolo (Y/N)
REDUCTION_ONLY
Kolo pouze pro snižování HCP (Y/N)
PLAYINGDATE
Datum odehrání kola
CSA
XML tabulka výpočtu CSA
COURSENAME
Název hřiště
public DataTable GetTournamentStartList(long IdTournament, long IdTournamentRound, long IdTournamentCategory)
konzumenti:
Jakýkoli autorizovaný konzument
popis:
Vrací konzumentovi startovní listinu za kategorii, nebo
souhrnnou (IdTournamentCategory = -1).
Vstupní parametry: IdTournament
Long
Id turnaje
IdTournamentRound
Long
Id kola turnaje
IdTournamentCategory
Long
Id kategorie turnaje, pokud je -1, pak se jedná o souhrnnou výsledkovou listinu
Návratové hodnoty: STARTTIME
TeeTime
FLIGHTNUM
Číslo flightu
STARTHOLE
Jamka ze které hráč startuje
G1..G4
Id hráče na pozicích 1..4 ve flightu
CODECOUNTRY1..CODECOUNTRY4
Kód země hráče na pozicích 1..4 ve flightu
NAME1..NAME4
Jméno hráče na pozicích 1..4 ve flightu
20
ŽEBŘÍČKY public DataTable GetMatchList()
konzumenti:
Jakýkoli autorizovaný konzument
popis:
Vrací seznam žebříčků
Vstupní parametry: -
Návratové hodnoty: IDMATCH
Id žebříčku
NAME
Název žebříčku
CODE
Kód žebříčku
DESCRIPTION
Popis
CREATED_DATE
Datum vytvoření
STATUS
Stav
IDSUBJECT
Id vlastníka
VALIDFROM
Platnost od
VALIDTO
Platnost do
RESULT_FORMAT RESULT_TYPE
public DataTable GetMatchCategory(long IdMatch)
konzumenti:
Jakýkoli autorizovaný konzument
popis:
Vrací kategorie žebříčku
Vstupní parametry: IdMatch
Long
Id soutěže
Návratové hodnoty: IDMATCHCATEGORY
Id kategorie žebříčku
NAME
Název kategorie žebříčku
CODE
Kód kategorie žebříčku
21
RANKINGDATE
Datum posledního přepočtení
public DataTable getMatchRankings(long IdMatchCategory)
konzumenti:
Jakýkoli autorizovaný konzument
popis:
Vrací pořadí v kategorii žebříčku
Vstupní parametry: IdMatchCategory
Long
Id kategorie soutěže
Návratové hodnoty: IDRANKING
Id umístění
IDGOLFER
Id hráče
GOLFERFULLNAME
Celé jméno hráče
IDTEAM
Id týmu, pokud jde o žebříček družstev
CLUBSHORTNAME
Zkratka domovského klubu
ORDER_FROM
Umístění
ORDER_TO
Umístění (dolní hranice, pokud se jedná o dělené umístění)
ORDER_STRING
Řadící řetězec, dle aplikovaných pravidel
RESULT
Výsledek
SCORES
Dílčí výsledky
HCP
HCP v době přepočtení
ONLINE SCORING public DataTable GetOnlineScoringResults(LibDB DB,long idTournamentCategory)
konzumenti:
Jakýkoli autorizovaný konzument
popis:
Vrací pořadí, podle odchylky od paru
22
Vstupní parametry: IdTournamentCategory
Long
Id soutěžní kategorie pro vyhodnocení
Návratové hodnoty: FULLNAME
Celé jméno hráče
MEMBERNUMBER
Členské číslo
IDRESULTTOURNAMENT
Id výsledku
IDGOLFER
Id hráče
IDTOURNAMENTCATEGORY
Id kategorie turnaje
STABLEFORD_RES
Stableford body pro výpočet HCP
ORDER_FROM
Umístění
ORDER_TO
Umístění do (pokud je dělené)
SCORE
Score podle pravidla kategorie
HCP_BEFORE
HCP před turnajem
HCP_RES
HCP po turnaji
USED_IN_MATCH
Příznak, zda je výsledek započítán do žebříčku
CLUB
Zkratka klubu
SCR1..SCR4
Score za jednotlivá kola
DIFF_PAR
Odchylka od paru
INX_HOLEPLAYED
Číslo právě hrané jamky
CODECOUNTRY
Kód země
23