diff --git a/lombok.config b/lombok.config new file mode 100644 index 0000000..9bb7a6e --- /dev/null +++ b/lombok.config @@ -0,0 +1,12 @@ +lombok.addLombokGeneratedAnnotation = true +lombok.experimental.flagUsage = error +lombok.log.apacheCommons.flagUsage = error +lombok.log.flogger.flagUsage = error +lombok.log.javaUtilLogging.flagUsage = error +lombok.log.jbosslog.flagUsage = error +lombok.log.log4j.flagUsage = error +lombok.log.slf4j.flagUsage = error +lombok.log.xslf4j.flagUsage = error +lombok.synchronized.flagUsage = error +lombok.val.flagUsage = error +lombok.var.flagUsage = error diff --git a/src/main/java/com/miti99/storescraperbot/config/Config.java b/src/main/java/com/miti99/storescraperbot/config/Config.java index dd387c5..ac0406b 100644 --- a/src/main/java/com/miti99/storescraperbot/config/Config.java +++ b/src/main/java/com/miti99/storescraperbot/config/Config.java @@ -1,5 +1,9 @@ package com.miti99.storescraperbot.config; public class Config { - + public static final String COUCHBASE_CONNECTION_STRING = + System.getenv("COUCHBASE_CONNECTION_STRING"); + public static final String COUCHBASE_USERNAME = System.getenv("COUCHBASE_USERNAME"); + public static final String COUCHBASE_PASSWORD = System.getenv("COUCHBASE_PASSWORD"); + public static final String COUCHBASE_BUCKET_NAME = System.getenv("COUCHBASE_BUCKET_NAME"); } diff --git a/src/main/java/com/miti99/storescraperbot/model/Admin.java b/src/main/java/com/miti99/storescraperbot/model/Admin.java new file mode 100644 index 0000000..560a8fa --- /dev/null +++ b/src/main/java/com/miti99/storescraperbot/model/Admin.java @@ -0,0 +1,9 @@ +package com.miti99.storescraperbot.model; + +import java.util.List; +import lombok.Data; + +@Data +public class Admin { + List groups; +} diff --git a/src/main/java/com/miti99/storescraperbot/model/AppleApp.java b/src/main/java/com/miti99/storescraperbot/model/AppleApp.java new file mode 100644 index 0000000..ee28074 --- /dev/null +++ b/src/main/java/com/miti99/storescraperbot/model/AppleApp.java @@ -0,0 +1,8 @@ +package com.miti99.storescraperbot.model; + +import com.miti99.storescraperbot.api.apple.response.AppleAppResponse; + +public class AppleApp { + long cacheTime; + AppleAppResponse rawResponse; +} diff --git a/src/main/java/com/miti99/storescraperbot/model/GoogleApp.java b/src/main/java/com/miti99/storescraperbot/model/GoogleApp.java new file mode 100644 index 0000000..f9734fe --- /dev/null +++ b/src/main/java/com/miti99/storescraperbot/model/GoogleApp.java @@ -0,0 +1,8 @@ +package com.miti99.storescraperbot.model; + +import com.miti99.storescraperbot.api.google.response.GoogleAppResponse; + +public class GoogleApp { + long cacheTime; + GoogleAppResponse rawResponse; +} diff --git a/src/main/java/com/miti99/storescraperbot/model/Group.java b/src/main/java/com/miti99/storescraperbot/model/Group.java new file mode 100644 index 0000000..29ef767 --- /dev/null +++ b/src/main/java/com/miti99/storescraperbot/model/Group.java @@ -0,0 +1,15 @@ +package com.miti99.storescraperbot.model; + +import com.miti99.storescraperbot.type.AppType; +import java.util.List; +import lombok.Data; + +@Data +public class Group { + List apps; + + public static class App { + String appId; + AppType type; + } +} diff --git a/src/main/java/com/miti99/storescraperbot/type/AppType.java b/src/main/java/com/miti99/storescraperbot/type/AppType.java new file mode 100644 index 0000000..67c33c7 --- /dev/null +++ b/src/main/java/com/miti99/storescraperbot/type/AppType.java @@ -0,0 +1,6 @@ +package com.miti99.storescraperbot.type; + +public enum AppType { + GOOGLE, + APPLE +} diff --git a/src/main/java/com/miti99/storescraperbot/util/CouchbaseUtil.java b/src/main/java/com/miti99/storescraperbot/util/CouchbaseUtil.java new file mode 100644 index 0000000..c6f1fc5 --- /dev/null +++ b/src/main/java/com/miti99/storescraperbot/util/CouchbaseUtil.java @@ -0,0 +1,56 @@ +package com.miti99.storescraperbot.util; + +import static com.miti99.storescraperbot.config.Config.COUCHBASE_BUCKET_NAME; +import static com.miti99.storescraperbot.config.Config.COUCHBASE_CONNECTION_STRING; +import static com.miti99.storescraperbot.config.Config.COUCHBASE_PASSWORD; +import static com.miti99.storescraperbot.config.Config.COUCHBASE_USERNAME; + +import com.couchbase.client.java.Bucket; +import com.couchbase.client.java.Cluster; +import com.couchbase.client.java.ClusterOptions; +import com.couchbase.client.java.Collection; +import com.couchbase.client.java.Scope; +import com.couchbase.client.java.json.JsonObject; +import com.couchbase.client.java.kv.GetResult; +import com.couchbase.client.java.kv.MutationResult; +import com.couchbase.client.java.query.QueryResult; +import java.time.Duration; + +public class CouchbaseUtil { + public static final Cluster CLUSTER; + public static final Bucket BUCKET; + static { + CLUSTER = + Cluster.connect( + COUCHBASE_CONNECTION_STRING, + ClusterOptions.clusterOptions(COUCHBASE_USERNAME, COUCHBASE_PASSWORD) + .environment( + env -> { + // Customize client settings by calling methods on the "env" variable. + })); + + // get a bucket reference + BUCKET = CLUSTER.bucket(COUCHBASE_BUCKET_NAME); + BUCKET.waitUntilReady(Duration.ofSeconds(10)); + + // get a user-defined collection reference + Scope scope = BUCKET.scope("tenant_agent_00"); + Collection collection = scope.collection("users"); + + // Upsert Document + MutationResult upsertResult = + collection.upsert("my-document", JsonObject.create().put("name", "mike")); + + // Get Document + GetResult getResult = collection.get("my-document"); + String name = getResult.contentAsObject().getString("name"); + System.out.println(name); // name == "mike" + + // Call the query() method on the scope object and store the result. + Scope inventoryScope = BUCKET.scope("inventory"); + QueryResult result = inventoryScope.query("SELECT * FROM airline WHERE id = 10;"); + + // Return the result rows with the rowsAsObject() method and print to the terminal. + System.out.println(result.rowsAsObject()); + } +}