1package cloudflare_test
2
3import (
4	"context"
5	"fmt"
6	"log"
7
8	cloudflare "github.com/cloudflare/cloudflare-go"
9)
10
11var (
12	workerScript = "addEventListener('fetch', event => {\n    event.passThroughOnException()\nevent.respondWith(handleRequest(event.request))\n})\n\nasync function handleRequest(request) {\n    return fetch(request)\n}"
13)
14
15func ExampleAPI_UploadWorker() {
16	api, err := cloudflare.New(apiKey, user)
17	if err != nil {
18		log.Fatal(err)
19	}
20
21	zoneID, err := api.ZoneIDByName(domain)
22	if err != nil {
23		log.Fatal(err)
24	}
25
26	res, err := api.UploadWorker(context.Background(), &cloudflare.WorkerRequestParams{ZoneID: zoneID}, workerScript)
27	if err != nil {
28		log.Fatal(err)
29	}
30	fmt.Printf("%+v", res)
31
32	UploadWorkerWithName()
33}
34
35func UploadWorkerWithName() {
36	api, err := cloudflare.New(apiKey, user, cloudflare.UsingAccount("foo"))
37	if err != nil {
38		log.Fatal(err)
39	}
40
41	res, err := api.UploadWorker(context.Background(), &cloudflare.WorkerRequestParams{ScriptName: "baz"}, workerScript)
42	if err != nil {
43		log.Fatal(err)
44	}
45	fmt.Printf("%+v", res)
46}
47
48func ExampleAPI_DownloadWorker() {
49	api, err := cloudflare.New(apiKey, user)
50	if err != nil {
51		log.Fatal(err)
52	}
53
54	zoneID, err := api.ZoneIDByName(domain)
55	if err != nil {
56		log.Fatal(err)
57	}
58
59	res, err := api.DownloadWorker(context.Background(), &cloudflare.WorkerRequestParams{ZoneID: zoneID})
60	if err != nil {
61		log.Fatal(err)
62	}
63	fmt.Printf("%+v", res)
64
65	DownloadWorkerWithName()
66}
67
68func DownloadWorkerWithName() {
69	api, err := cloudflare.New(apiKey, user, cloudflare.UsingAccount("foo"))
70	if err != nil {
71		log.Fatal(err)
72	}
73
74	res, err := api.DownloadWorker(context.Background(), &cloudflare.WorkerRequestParams{ScriptName: "baz"})
75	if err != nil {
76		log.Fatal(err)
77	}
78	fmt.Printf("%+v", res)
79}
80
81func ExampleAPI_DeleteWorker() {
82	api, err := cloudflare.New(apiKey, user)
83	if err != nil {
84		log.Fatal(err)
85	}
86
87	zoneID, err := api.ZoneIDByName(domain)
88	if err != nil {
89		log.Fatal(err)
90	}
91	res, err := api.DeleteWorker(context.Background(), &cloudflare.WorkerRequestParams{ZoneID: zoneID})
92	if err != nil {
93		log.Fatal(err)
94	}
95	fmt.Printf("%+v", res)
96
97	DeleteWorkerWithName()
98}
99
100func DeleteWorkerWithName() {
101	api, err := cloudflare.New(apiKey, user, cloudflare.UsingAccount("foo"))
102	if err != nil {
103		log.Fatal(err)
104	}
105
106	res, err := api.DeleteWorker(context.Background(), &cloudflare.WorkerRequestParams{ScriptName: "baz"})
107	if err != nil {
108		log.Fatal(err)
109	}
110	fmt.Printf("%+v", res)
111}
112
113func ExampleAPI_ListWorkerScripts() {
114	api, err := cloudflare.New(apiKey, user, cloudflare.UsingAccount("foo"))
115	if err != nil {
116		log.Fatal(err)
117	}
118
119	res, err := api.ListWorkerScripts(context.Background())
120	if err != nil {
121		log.Fatal(err)
122	}
123	fmt.Printf("%+v", res.WorkerList)
124}
125
126func ExampleAPI_CreateWorkerRoute() {
127	api, err := cloudflare.New(apiKey, user)
128	if err != nil {
129		log.Fatal(err)
130	}
131
132	zoneID, err := api.ZoneIDByName(domain)
133	if err != nil {
134		log.Fatal(err)
135	}
136	route := cloudflare.WorkerRoute{Pattern: "app1.example.com/*", Enabled: true}
137	res, err := api.CreateWorkerRoute(context.Background(), zoneID, route)
138	if err != nil {
139		log.Fatal(err)
140	}
141	fmt.Printf("%+v", res)
142}
143
144func ExampleAPI_UpdateWorkerRoute() {
145	api, err := cloudflare.New(apiKey, user)
146	if err != nil {
147		log.Fatal(err)
148	}
149
150	zoneID, err := api.ZoneIDByName(domain)
151	if err != nil {
152		log.Fatal(err)
153	}
154	// pull from existing list of routes to perform update on
155	routesResponse, err := api.ListWorkerRoutes(context.Background(), zoneID)
156	if err != nil {
157		log.Fatal(err)
158	}
159	route := cloudflare.WorkerRoute{Pattern: "app2.example.com/*", Enabled: true}
160	// update first route retrieved from the listWorkerRoutes call with details above
161	res, err := api.UpdateWorkerRoute(context.Background(), zoneID, routesResponse.Routes[0].ID, route)
162	if err != nil {
163		log.Fatal(err)
164	}
165	fmt.Printf("%+v", res)
166}
167
168func ExampleAPI_ListWorkerRoutes() {
169	api, err := cloudflare.New(apiKey, user)
170	if err != nil {
171		log.Fatal(err)
172	}
173
174	zoneID, err := api.ZoneIDByName(domain)
175	if err != nil {
176		log.Fatal(err)
177	}
178	res, err := api.ListWorkerRoutes(context.Background(), zoneID)
179	if err != nil {
180		log.Fatal(err)
181	}
182	fmt.Printf("%+v", res)
183}
184
185func ExampleAPI_DeleteWorkerRoute() {
186	api, err := cloudflare.New(apiKey, user)
187	if err != nil {
188		log.Fatal(err)
189	}
190
191	zoneID, err := api.ZoneIDByName(domain)
192	if err != nil {
193		log.Fatal(err)
194	}
195	// pull from existing list of routes to perform delete on
196	routesResponse, err := api.ListWorkerRoutes(context.Background(), zoneID)
197	if err != nil {
198		log.Fatal(err)
199	}
200	// delete first route retrieved from the listWorkerRoutes call
201	res, err := api.DeleteWorkerRoute(context.Background(), zoneID, routesResponse.Routes[0].ID)
202	if err != nil {
203		log.Fatal(err)
204	}
205	fmt.Printf("%+v", res)
206}
207