-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTemplateManagementExample.java
More file actions
93 lines (80 loc) · 4.1 KB
/
TemplateManagementExample.java
File metadata and controls
93 lines (80 loc) · 4.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
package com.livepasses.sdk.examples;
import com.livepasses.sdk.Livepasses;
import com.livepasses.sdk.exceptions.*;
import com.livepasses.sdk.types.*;
import java.util.List;
import java.util.Map;
/**
* CRUD operations on pass templates.
*
* Run: export LIVEPASSES_API_KEY="your-api-key"
* ./gradlew run -PmainClass=com.livepasses.sdk.examples.TemplateManagementExample
*/
public class TemplateManagementExample {
public static void main(String[] args) {
String apiKey = System.getenv("LIVEPASSES_API_KEY");
if (apiKey == null || apiKey.isEmpty()) {
System.out.println("Set LIVEPASSES_API_KEY environment variable");
return;
}
Livepasses client = new Livepasses(apiKey);
try {
// 1. Create a new event template
System.out.println("Creating event template...");
TemplateDetail template = client.templates().create(
CreateTemplateParams.builder()
.name("VIP Concert Pass")
.description("Premium concert ticket with VIP access")
.businessFeatures(Map.of(
"passType", "event",
"hasSeating", true,
"hasGateInfo", true,
"supportedPlatforms", List.of("apple", "google")
))
.build());
System.out.printf(" Created: %s — \"%s\"%n Status: %s%n%n",
template.getId(), template.getName(), template.getStatus());
// 2. Update the template
System.out.println("Updating template...");
TemplateDetail updated = client.templates().update(template.getId(),
UpdateTemplateParams.builder()
.name("VIP Concert Pass v2")
.description("Updated premium concert ticket with backstage access")
.businessFeatures(Map.of(
"passType", "event",
"hasSeating", true,
"hasGateInfo", true,
"hasBackstageAccess", true,
"supportedPlatforms", List.of("apple", "google")
))
.build());
System.out.printf(" Updated: \"%s\"%n%n", updated.getName());
// 3. Activate the template
System.out.println("Activating template...");
client.templates().activate(template.getId());
System.out.println(" Template is now active\n");
// 4. List all active templates
System.out.println("Listing active templates...");
PagedResponse<TemplateListItem> templates = client.templates().list(
ListTemplatesParams.builder().status("Active").build());
for (TemplateListItem t : templates.getItems()) {
System.out.printf(" - %s (%s) [%s]%n", t.getName(), t.getType(), t.getStatus());
}
System.out.printf(" Total: %d%n%n", templates.getPagination().getTotalItems());
// 5. Get template details
System.out.println("Getting template details...");
TemplateDetail detail = client.templates().get(template.getId());
System.out.printf(" Name: %s%n Type: %s%n Features: %s%n%n",
detail.getName(), detail.getType(), detail.getBusinessFeatures());
// 6. Deactivate when done
System.out.println("Deactivating template...");
client.templates().deactivate(template.getId());
System.out.println(" Template deactivated\n");
System.out.println("Done!");
} catch (ValidationException e) {
System.err.println("Validation error: " + e.getMessage() + " (" + e.getDetails() + ")");
} catch (LivepassesException e) {
System.err.printf("API error [%s]: %s%n", e.getCode(), e.getMessage());
}
}
}