Skip to content

Commit 337bab9

Browse files
committed
Removing model classes in favor of version specific code generation.
1 parent c9f358a commit 337bab9

29 files changed

Lines changed: 70 additions & 573 deletions

addon-sdk/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
<dependency>
2525
<groupId>com.cake.clockify</groupId>
2626
<artifactId>addon-sdk-annotation-processor</artifactId>
27-
<version>1.0.7</version>
27+
<version>1.0.8</version>
2828
</dependency>
2929

3030
<dependency>
Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,33 @@
11
package com.cake.clockify.addonsdk.clockify;
22

3-
import com.cake.clockify.addonsdk.clockify.model.ClockifyComponent;
4-
import com.cake.clockify.addonsdk.clockify.model.ClockifyLifecycleEvent;
53
import com.cake.clockify.addonsdk.clockify.model.ClockifyManifest;
6-
import com.cake.clockify.addonsdk.clockify.model.ClockifySettings;
7-
import com.cake.clockify.addonsdk.clockify.model.ClockifyWebhook;
4+
import com.cake.clockify.addonsdk.clockify.model.ClockifyResource;
85
import com.cake.clockify.addonsdk.shared.Addon;
6+
import com.cake.clockify.addonsdk.shared.RequestHandler;
97
import lombok.NonNull;
108

11-
public class ClockifyAddon extends Addon<ClockifyWebhook, ClockifyComponent, ClockifyLifecycleEvent, ClockifySettings> {
9+
public class ClockifyAddon extends Addon<ClockifyManifest> {
1210
public ClockifyAddon(@NonNull ClockifyManifest manifest) {
1311
super(manifest);
1412
}
13+
14+
public void registerWebhook(ClockifyResource webhook, RequestHandler handler) {
15+
registerHandler(webhook.getPath(), HTTP_POST, handler);
16+
manifest.getWebhooks().add(webhook);
17+
}
18+
19+
public void registerLifecycleEvent(ClockifyResource lifecycleEvent, RequestHandler handler) {
20+
registerHandler(lifecycleEvent.getPath(), HTTP_POST, handler);
21+
manifest.getLifecycle().add(lifecycleEvent);
22+
}
23+
24+
public void registerComponent(ClockifyResource component, RequestHandler handler) {
25+
registerHandler(component.getPath(), HTTP_GET, handler);
26+
manifest.getComponents().add(component);
27+
}
28+
29+
public void registerCustomSettings(String path, RequestHandler handler) {
30+
registerHandler(path, HTTP_GET, handler);
31+
manifest.setSettings(path);
32+
}
1533
}

addon-sdk/src/main/java/com/cake/clockify/addonsdk/clockify/model/ClockifyComponent.java

Lines changed: 0 additions & 29 deletions
This file was deleted.

addon-sdk/src/main/java/com/cake/clockify/addonsdk/clockify/model/ClockifyLifecycleEvent.java

Lines changed: 0 additions & 23 deletions
This file was deleted.
Lines changed: 16 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,28 @@
11
package com.cake.clockify.addonsdk.clockify.model;
22

3-
import com.cake.clockify.addonsdk.shared.model.Manifest;
43
import com.cake.clockify.annotationprocessor.clockify.ExtendClockifyManifest;
5-
import lombok.Builder;
64

7-
import java.util.LinkedList;
85
import java.util.List;
96

107
@ExtendClockifyManifest
11-
public class ClockifyManifest extends Manifest {
12-
13-
@Builder
14-
protected ClockifyManifest(String key,
15-
String name,
16-
String description,
17-
String baseUrl,
18-
String iconPath,
19-
String minimalSubscriptionPlan,
20-
List<ClockifyLifecycleEvent> lifecycle,
21-
List<ClockifyWebhook> webhooks,
22-
List<ClockifyComponent> components,
23-
List<String> scopes,
24-
Object settings) {
25-
super(
26-
"1.2",
27-
key,
28-
name,
29-
description,
30-
baseUrl,
31-
iconPath,
32-
minimalSubscriptionPlan,
33-
lifecycle == null ? new LinkedList<>() : new LinkedList<>(lifecycle),
34-
webhooks == null ? new LinkedList<>() : new LinkedList<>(webhooks),
35-
components == null ? new LinkedList<>() : new LinkedList<>(components),
36-
scopes == null ? new LinkedList<>() : new LinkedList<>(scopes),
37-
settings
38-
);
39-
}
8+
public interface ClockifyManifest {
9+
10+
String getSchemaVersion();
11+
String getKey();
12+
13+
List getLifecycle();
14+
15+
List getWebhooks();
16+
17+
List getComponents();
18+
19+
void setSettings(Object settings);
4020

41-
public static ClockifyManifestBuilderKeyStep builder() {
42-
return new ClockifyManifestBuilder();
21+
static com.cake.clockify.addonsdk.clockify.model.v1_2.ClockifyManifestBuilderKeyStep v1_2Builder() {
22+
return com.cake.clockify.addonsdk.clockify.model.v1_2.ClockifyManifest.builder();
4323
}
4424

45-
private static class ClockifyManifestBuilder implements
46-
ClockifyManifestBuilderKeyStep,
47-
ClockifyManifestBuilderNameStep,
48-
ClockifyManifestBuilderBaseUrlStep,
49-
ClockifyManifestBuilderMinimalSubscriptionPlanStep,
50-
ClockifyManifestBuilderScopesStep,
51-
ClockifyManifestBuilderOptionalStep {
25+
static com.cake.clockify.addonsdk.clockify.model.v1_3.ClockifyManifestBuilderKeyStep v1_3Builder() {
26+
return com.cake.clockify.addonsdk.clockify.model.v1_3.ClockifyManifest.builder();
5227
}
5328
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package com.cake.clockify.addonsdk.clockify.model;
2+
3+
public interface ClockifyResource {
4+
String getPath();
5+
}

addon-sdk/src/main/java/com/cake/clockify/addonsdk/clockify/model/ClockifySetting.java

Lines changed: 0 additions & 33 deletions
This file was deleted.

addon-sdk/src/main/java/com/cake/clockify/addonsdk/clockify/model/ClockifySettings.java

Lines changed: 0 additions & 22 deletions
This file was deleted.

addon-sdk/src/main/java/com/cake/clockify/addonsdk/clockify/model/ClockifySettingsGroup.java

Lines changed: 0 additions & 28 deletions
This file was deleted.

addon-sdk/src/main/java/com/cake/clockify/addonsdk/clockify/model/ClockifySettingsHeader.java

Lines changed: 0 additions & 22 deletions
This file was deleted.

0 commit comments

Comments
 (0)