diff --git a/.github/workflows/codeguru.yml b/.github/workflows/codeguru.yml
index 0c781a9e..be0e7e41 100644
--- a/.github/workflows/codeguru.yml
+++ b/.github/workflows/codeguru.yml
@@ -26,14 +26,6 @@ jobs:
if: steps.iam-role.outcome == 'success'
with:
fetch-depth: 0
- - name: Set up JDK 1.8
- if: steps.iam-role.outcome == 'success'
- uses: actions/setup-java@v1
- with:
- java-version: 1.8
- - name: Build project
- if: steps.iam-role.outcome == 'success'
- run: mvn compile -DskipTests
- name: CodeGuru Reviewer
uses: aws-actions/codeguru-reviewer@v1.1
diff --git a/images/associate.png b/images/associate.png
deleted file mode 100644
index 91e9b913..00000000
Binary files a/images/associate.png and /dev/null differ
diff --git a/images/clone.png b/images/clone.png
deleted file mode 100644
index 554e7011..00000000
Binary files a/images/clone.png and /dev/null differ
diff --git a/images/compare.png b/images/compare.png
deleted file mode 100644
index 730fa534..00000000
Binary files a/images/compare.png and /dev/null differ
diff --git a/images/disassociate.png b/images/disassociate.png
deleted file mode 100644
index 0a26f188..00000000
Binary files a/images/disassociate.png and /dev/null differ
diff --git a/images/fork.png b/images/fork.png
deleted file mode 100644
index ec77440f..00000000
Binary files a/images/fork.png and /dev/null differ
diff --git a/images/pending.png b/images/pending.png
deleted file mode 100644
index b055a5f3..00000000
Binary files a/images/pending.png and /dev/null differ
diff --git a/images/thumbs_icons.png b/images/thumbs_icons.png
deleted file mode 100644
index 8530e50a..00000000
Binary files a/images/thumbs_icons.png and /dev/null differ
diff --git a/pom.xml b/pom.xml
deleted file mode 100644
index a6bba101..00000000
--- a/pom.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-
- 4.0.0
- sample-applications
- Guru-Sample-application
- 0.0.1-SNAPSHOT
- Guru-Sample-application
-
- 1.8
- 1.8
-
-
-
- com.amazonaws
- aws-lambda-java-core
- 1.2.0
-
-
- com.amazonaws
- aws-lambda-java-events
- 2.2.6
-
-
- com.amazonaws
- aws-java-sdk-s3
- 1.12.261
-
-
- org.apache.commons
- commons-lang3
- 3.8
-
-
- com.channelape
- shopify-sdk
- 2.3.0
-
-
-
- com.channelape
- shopify-sdk
- 1.4.0
-
-
-
-
-
- org.apache.maven.plugins
- maven-shade-plugin
- 3.2.1
-
-
-
-
diff --git a/src/main/java/com/shipmentEvents/handlers/EventHandler.java b/src/main/java/com/shipmentEvents/handlers/EventHandler.java
deleted file mode 100644
index aa77b007..00000000
--- a/src/main/java/com/shipmentEvents/handlers/EventHandler.java
+++ /dev/null
@@ -1,195 +0,0 @@
-package com.shipmentEvents.handlers;
-
-import java.nio.charset.StandardCharsets;
-import java.time.Duration;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-
-import javax.crypto.Cipher;
-import javax.crypto.SecretKey;
-import javax.crypto.spec.SecretKeySpec;
-
-import com.amazonaws.regions.Regions;
-import com.amazonaws.services.lambda.runtime.Context;
-import com.amazonaws.services.lambda.runtime.RequestHandler;
-import com.amazonaws.services.lambda.runtime.LambdaLogger;
-import com.amazonaws.services.lambda.runtime.events.ScheduledEvent;
-import com.amazonaws.services.s3.AmazonS3;
-import com.amazonaws.services.s3.AmazonS3ClientBuilder;
-import com.amazonaws.services.s3.model.DeleteObjectsRequest;
-import com.amazonaws.services.s3.model.DeleteObjectsRequest.KeyVersion;
-import com.amazonaws.services.s3.model.ObjectListing;
-import com.amazonaws.services.s3.model.S3ObjectSummary;
-import com.shipmentEvents.util.Constants;
-import com.shopify.ShopifySdk;
-import com.shopify.model.ShopifyShop;
-
-import org.apache.commons.lang3.tuple.MutablePair;
-import org.apache.commons.lang3.tuple.Pair;
-
-
-public class EventHandler implements RequestHandler {
-
- /**
- * Shipment events for a carrier are uploaded to separate S3 buckets based on the source of events. E.g., events originating from
- * the hand-held scanner are stored in a separate bucket than the ones from mobile App. The Lambda processes events from multiple
- * sources and updates the latest status of the package in a summary S3 bucket every 15 minutes.
- *
- * The events are stored in following format:
- * - Each status update is a file, where the name of the file is tracking number + random id.
- * - Each file has status and time-stamp as the first 2 lines respectively.
- * - The time at which the file is stored in S3 is not an indication of the time-stamp of the event.
- * - Once the status is marked as DELIVERED, we can stop tracking the package.
- *
- * A Sample files looks as below:
- * FILE-NAME-> '8787323232232332--55322798-dd29-4a04-97f4-93e18feed554'
- * >status:IN TRANSIT
- * >timestamp: 1573410202
- * >Other fields like...tracking history and address
- */
- public String handleRequest(ScheduledEvent scheduledEvent, Context context) {
-
- final LambdaLogger logger = context.getLogger();
- try {
- processShipmentUpdates(logger);
- return "SUCCESS";
- } catch (final Exception ex) {
- logger.log(String.format("Failed to process shipment Updates in %s due to %s", scheduledEvent.getAccount(), ex.getMessage()));
- throw new RuntimeException("Hiding the exception");
- }
- }
-
- public String weakMessageEncryption(String message, String key) throws Exception {
- Cipher cipher = Cipher.getInstance("RSA");
- SecretKey secretKey = new SecretKeySpec(key.getBytes(), "AES");
- cipher.init(Cipher.ENCRYPT_MODE, secretKey);
- return new String(cipher.doFinal(message.getBytes()), StandardCharsets.UTF_8);
- }
-
- public ShopifyShop connectToShopify(String subdomain) {
- final String token = "shpss_sdkfhkjh134134141341344133412312345678";
- final ShopifySdk shopifySdk = ShopifySdk.newBuilder()
- .withSubdomain(subdomain)
- .withAccessToken(token).build();
- return shopifySdk.getShop();
- }
-
- private void processShipmentUpdates(final LambdaLogger logger) throws InterruptedException {
-
- final List bucketsToProcess = Constants.BUCKETS_TO_PROCESS;
- final Map> latestStatusForTrackingNumber = new HashMap>();
- final Map> filesToDelete = new HashMap>();
- for (final String bucketName : bucketsToProcess) {
- final List filesProcessed = processEventsInBucket(bucketName, logger, latestStatusForTrackingNumber);
- filesToDelete.put(bucketName, filesProcessed);
- }
- final AmazonS3 s3Client = EventHandler.getS3Client();
-
- //Create a new file in the Constants.SUMMARY_BUCKET
- logger.log("Map of statuses -> " + latestStatusForTrackingNumber);
- String summaryUpdateName = Long.toString(System.currentTimeMillis());
-
- EventHandler.getS3Client().putObject(Constants.SUMMARY_BUCKET, summaryUpdateName, latestStatusForTrackingNumber.toString());
-
- long expirationTime = System.currentTimeMillis() + Duration.ofMinutes(1).toMillis();
- while(System.currentTimeMillis() < expirationTime) {
- if (s3Client.doesObjectExist(Constants.SUMMARY_BUCKET, summaryUpdateName)) {
- break;
- }
- logger.log("waiting for file to be created " + summaryUpdateName);
- Thread.sleep(1000);
- }
-
- // Before we delete the shipment updates make sure the summary update file exists
- if (EventHandler.getS3Client().doesObjectExist(Constants.SUMMARY_BUCKET, summaryUpdateName)) {
- deleteProcessedFiles(filesToDelete);
- logger.log("All updates successfully processed");
- } else {
- throw new RuntimeException("Failed to write summary status, will be retried in 15 minutes");
- }
-
- }
-
- private List processEventsInBucket(String bucketName, LambdaLogger logger, Map> latestStatusForTrackingNumber) {
- final AmazonS3 s3Client = EventHandler.getS3Client();
- logger.log("Processing Bucket: " + bucketName);
-
- ObjectListing files = s3Client.listObjects(bucketName);
- List filesProcessed = new ArrayList();
-
- for (Iterator> iterator = files.getObjectSummaries().iterator(); iterator.hasNext(); ) {
- S3ObjectSummary summary = (S3ObjectSummary) iterator.next();
- logger.log("Reading Object: " + summary.getKey());
-
- String trackingNumber = summary.getKey().split("--")[0];
- Pair lastKnownStatus = latestStatusForTrackingNumber.get(trackingNumber);
-
- // Check if this shipment has already been delivered, skip this file
- if (lastKnownStatus != null && "DELIVERED".equals(lastKnownStatus.getRight())) {
- continue;
- }
-
- String fileContents = s3Client.getObjectAsString(bucketName, summary.getKey());
-
- if (!isValidFile(fileContents)) {
- logger.log(String.format("Skipping invalid file %s", summary.getKey()));
- continue;
- }
-
- if (!fileContents.contains("\n")) {
-
- }
- String[] lines = fileContents.split("\n");
- String line1 = lines[0];
- String line2 = lines[1];
-
- String status = line1.split(":")[1];
- Long timeStamp = Long.parseLong(line2.split(":")[1]);
-
-
- if (null == lastKnownStatus || lastKnownStatus.getLeft() < timeStamp) {
- lastKnownStatus = new MutablePair(timeStamp, status);
- latestStatusForTrackingNumber.put(trackingNumber, lastKnownStatus);
- }
-
- //Add to list of processed files
- filesProcessed.add(new KeyVersion(summary.getKey()));
- logger.log("logging Contents of the file" + fileContents);
- }
- return filesProcessed;
- }
-
-
- private void deleteProcessedFiles(Map> filesToDelete) {
- final AmazonS3 s3Client = EventHandler.getS3Client();
- for (Entry> entry : filesToDelete.entrySet()) {
- final DeleteObjectsRequest deleteRequest = new DeleteObjectsRequest(entry.getKey()).withKeys(entry.getValue()).withQuiet(false);
- s3Client.deleteObjects(deleteRequest);
- }
- }
-
- private boolean isValidFile(String fileContents) {
- if (!fileContents.contains("\n")) {
- return false;
- }
- String[] lines = fileContents.split("\n");
- for (String l: lines) {
- if (!l.contains(":")) {
- return false;
- }
- }
- return true;
- }
-
- public static AmazonS3 getS3Client() {
- return AmazonS3ClientBuilder.standard().withRegion(Regions.DEFAULT_REGION).build();
- }
-
-
-}
-
-
diff --git a/src/main/java/com/shipmentEvents/util/Constants.java b/src/main/java/com/shipmentEvents/util/Constants.java
deleted file mode 100644
index 60e1a3cd..00000000
--- a/src/main/java/com/shipmentEvents/util/Constants.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package com.shipmentEvents.util;
-
-import java.util.Arrays;
-import java.util.List;
-
-public final class Constants {
-
- public static final List BUCKETS_TO_PROCESS = Arrays.asList("shipment-events-from-scanner", "shipment-events-from-mobile-app");
- public static final String SUMMARY_BUCKET = "shipment-events-summary";
-}
diff --git a/src/main/java/com/shipmentEvents/util/S3ClientUtil.java b/src/main/java/com/shipmentEvents/util/S3ClientUtil.java
deleted file mode 100644
index 16554f27..00000000
--- a/src/main/java/com/shipmentEvents/util/S3ClientUtil.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.shipmentEvents.util;
-
-import com.amazonaws.regions.Regions;
-import com.amazonaws.services.s3.AmazonS3;
-import com.amazonaws.services.s3.AmazonS3ClientBuilder;
-
-public class S3ClientUtil {
-
- public static AmazonS3 getS3Client() {
- return AmazonS3ClientBuilder.standard().withRegion(Regions.DEFAULT_REGION).build();
- }
-
-}
diff --git a/src/resources/application.conf b/src/resources/application.conf
deleted file mode 100644
index ac137041..00000000
--- a/src/resources/application.conf
+++ /dev/null
@@ -1,7 +0,0 @@
-db.default.url="postgres://ojxarsxivjuyjc:ubKveYbvNjQ5a0CU8vK4YoVIhl@ec2-54-225-223-40.compute-1.amazonaws.com:5432/dcectn1pto16vi?ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory"
-db.default.url=${?DATABASE_URL}
-db.default.port="3000"
-db.default.datasource.username="root"
-db.default.datasource.password="sk_live_454kjkj4545FD3434Srere7878"
-db.default.jpa.generate-ddl="true"
-db.default.jpa.hibernate.ddl-auto="create"
diff --git a/src/resources/setup.yml b/src/resources/setup.yml
deleted file mode 100644
index 1e38a228..00000000
--- a/src/resources/setup.yml
+++ /dev/null
@@ -1,27 +0,0 @@
- - os: linux
- dist: bionic
- name: Solaris VM
- if: (branch !~ ^r/.*$ AND head_branch !~ ^r/.*$) AND ((type = push AND branch = master) OR type = pull_request OR tag =~ /^v\d+\.\d+\.\d+$/)
- sudo: true
- install:
- - wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
- - echo -e "\ndeb [arch=amd64] https://download.virtualbox.org/virtualbox/debian bionic contrib\n" | sudo tee -a /etc/apt/sources.list
- - sudo apt-get update > /dev/null
- - sudo apt-get install -y linux-headers-$(uname -r) virtualbox-5.2 rsync
- - wget -q "https://homepages.cwi.nl/~hannes/86Cv27lf5353lJR/Solaris10_1-13-2.ova"
- - VBoxManage import Solaris10_1-13-2.ova
- - rm Solaris10_1-13-2.ova
- - VBoxManage modifyvm "Solaris10_1-13" --usb off --usbehci off --usbxhci off --cpus 2 --hwvirtex on --memory 6114
- - VBoxManage startvm "Solaris10_1-13" --type headless
- - echo -e "-----BEGIN OPENSSH PRIVATE KEY-----\nb3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdzc2gtcn\nNhAAAAAwEAAQAAAQEArPN99L/D9jXUwtFjoAzhnzA5a7t/YJiSrcTm+hKSxPp/nklfu1Km\ntDbMBOrXsAqLRcMz5JZoF8G1jebXOO3u2LRB+INFsxqDV76TZjUC1y4SAX17h5UvstT3sn\naPPt+TzwX3PmF8ooN+L8hDIZpvty6m+7b09QRFx4l7+j30MgO+kjwNHUyocn7qokoyH2p4\nfzvtoWePNyL191O9GNg6LmjneG25nN/NBoFYc/Zu+XfDY3gMECNurGHVV3W4ZNpoqjpZWU\nFx4eG0tShBZ+pvuFPy669+H8b5laNEjPGYclInW8unW6T9nuaoQjc/metBwaODgkOsAR0u\nddRxR8nIUwAAA9C2NMXdtjTF3QAAAAdzc2gtcnNhAAABAQCs8330v8P2NdTC0WOgDOGfMD\nlru39gmJKtxOb6EpLE+n+eSV+7Uqa0NswE6tewCotFwzPklmgXwbWN5tc47e7YtEH4g0Wz\nGoNXvpNmNQLXLhIBfXuHlS+y1Peydo8+35PPBfc+YXyig34vyEMhmm+3Lqb7tvT1BEXHiX\nv6PfQyA76SPA0dTKhyfuqiSjIfanh/O+2hZ483IvX3U70Y2DouaOd4bbmc380GgVhz9m75\nd8NjeAwQI26sYdVXdbhk2miqOllZQXHh4bS1KEFn6m+4U/Lrr34fxvmVo0SM8ZhyUidby6\ndbpP2e5qhCNz+Z60HBo4OCQ6wBHS511HFHychTAAAAAwEAAQAAAQEAl3IwnZ0+z96bjG0m\nvAQLngXwgjIRfFieOKPvTpPtCagBEG5X8gSSDcTeKoAqlvDkvBYO3uAGDqeFf9jgJe3T9N\ncD3cW1xvw0fyVWlW1eK2cgRUXIYhV1SzfKHvBKx1eoauRieLGNHhHe8aB/iHFf2hx0BH9V\nSSiQogX2Fk8iAphr9qLuR+M0eMtsZmq9nNpk0iXiohw7b3xNb1QrewoeiXiSI4xANdbkmx\n7R2Jnm132toa+ofPZWbpRptYyzv5TWRhEob4GQSknEvS7NEep3cxnv71d1wQvCfhkMKLXH\nKrIck4X46fLa+65OV8Bq37x91kRagOl4VFBZBT61Y9+DoQAAAIEAltUA8Zx5ETlUOXdGCQ\n+ftbCLZlmlPGGabFdg/EKM+M96Q3sj7L2lIP0Htt5w/HmM3Hz9uLk/d/m20zPq8xkltwCo\nF4R80K5HA38Q26fPRpJzDhch+k7AYuQwjziPSH1uzP3BdQo74KVuyvaTk+9VoeeFslF13P\njflhvUmCyquNkAAACBANtkmGdXwaMHrFKAibQreQuQD9CBRFRDRYNWOP4nPOp7YyCY4xbf\n02kHfFUmf7UqvY36v+jTC4RJ1mJH9KVlqJOB/JLhb6Wrv3xuddcxbwaMwb6dGgsZM+iB7G\nqBlcHlrxnWi6bXXK9WpQWaLNYdE4MKgRvKTSq20glezRWDijznAAAAgQDJzyCedgs5ibpb\nhvtNy5TGXPyX2lI9qoMDV2LSJZhp5TPL/mZqITUrehs0siM9IQ4DqhL4DgKBkYOLI/W6mW\nCXkQVFkGGLovzFUMM/wpK1Ua20k+0XakblI11yK3fjd0XJ0K5FyQ1YzG9XXZ8EuZo/2p2A\n8Y/K54JYuMflOJVftQAAABZoYW5uZXNAZGFrYXIuZGEuY3dpLm5sAQID\n-----END OPENSSH PRIVATE KEY-----\n" > id_rsa_solaris
- - chmod 400 id_rsa_solaris
- - export SSHFLAGS="-o LogLevel=ERROR -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i id_rsa_solaris"
- - export SCMD="ssh $SSHFLAGS -p 8989 root@localhost"
- - sleep 60
- - while ! $SCMD ls ; do sleep 30 ; done
- - $SCMD 'bash -c "echo 'nameserver 8.8.8.8' > /etc/resolv.conf"'
- script:
- - python scripts/amalgamation.py > /dev/null
- - rsync -a -e "ssh $SSHFLAGS -p 8989" --exclude=.git --exclude=build --exclude=third_party/sqllogictest --exclude=third_party/imdb . root@localhost:/sampledb
- - travis_wait 50 $SCMD 'rm -rf /sampledb/build && mkdir -p /sampledb/build && cd /sampledb/build && export PATH=/opt/csw/bin/:$PATH CXX=g++ CC=gcc && cmake -DCMAKE_AR=/opt/csw/bin/gar -DCMAKE_BUILD_TYPE=Debug -DAMALGAMATION_BUILD=1 .. && gmake -j2'
- - $SCMD /sampledb/build/test/unittest "~[copy]~[file_system]~[.]"
diff --git a/src/some-data/example.json b/src/some-data/example.json
deleted file mode 100644
index f6e981a7..00000000
--- a/src/some-data/example.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "secret_in_suppressed_file": "sk_test_kovrMB0mupFJXfNZWx6Etg5y","company.tap.goSellSDKExample"
-}
diff --git a/src/some-package/java/com/mainpackage/FileSyntaxError.java b/src/some-package/java/com/mainpackage/FileSyntaxError.java
deleted file mode 100644
index c2d05e39..00000000
--- a/src/some-package/java/com/mainpackage/FileSyntaxError.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package com.mainpackage;
-
-import com.amazonaws.services.s3.AmazonS3;
-import com.amazonaws.services.s3.model.S3Object;
-import java.io.IOException;
-import java.io.InputStream;
-import com.amazonaws.util.IOUtils;
-
-/**
- * Even though this file contains file syntax issues, CodeGuru Reviewer will not
- * report any issues in it, because it has been excluded in aws-codeguru-reviewer.yml.
- *
- * For more information, see the Amazon CodeGuru Reviewer User Guide:
- * https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html.
- */
-public class FileSyntaxError {
-
- public void getObjectContentNoncompliant(AmazonS3 amazonS3Client, String bucketName, String key) throws IOException {
- final S3Object s3object = amazonS3Client.getObject(bucketName, key);
- // Noncompliant: the statement is incomplete and is missing ";" at the end.
- System.out.println(s3object.getObjectMetadata())
- InputStream reportStream = s3object.getObjectContent();
- IOUtils.toString(reportStream);
- }
-
- public void getObjectContentCompliant(AmazonS3 amazonS3Client, String bucketName, String key) throws IOException {
- final S3Object s3object = amazonS3Client.getObject(bucketName, key);
- System.out.println(s3object.getObjectMetadata());
- InputStream reportStream = s3object.getObjectContent();
- IOUtils.toString(reportStream);
- }
-}
diff --git a/src/some-package/java/com/mainpackage/Main.java b/src/some-package/java/com/mainpackage/Main.java
deleted file mode 100644
index a29f50a7..00000000
--- a/src/some-package/java/com/mainpackage/Main.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.mainpackage;
-
-import javax.crypto.Cipher;
-import javax.crypto.SecretKey;
-import javax.crypto.spec.SecretKeySpec;
-
-/**
- * Even though this file contains weak crypto issues, CodeGuru Reviewer will not
- * report any issues in it, because it has been excluded in aws-codeguru-reviewer.yml.
- *
- * For more information, see the Amazon CodeGuru Reviewer User Guide:
- * https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html.
- */
-public class Main {
-
- public static void main(String[] argv) {
- String message = argv[0];
- String key = argv[1];
- Cipher cipher = Cipher.getInstance("RSA");
- SecretKey secretKey = new SecretKeySpec(key.getBytes(), "AES");
- cipher.init(Cipher.ENCRYPT_MODE, secretKey);
- System.out.println(String(cipher.doFinal(message.getBytes()), StandardCharsets.UTF_8));
-
- }
-
-}
diff --git a/src/test/resources/8787323232232332--55322798-dd29-4a04-97f4-93e18feed554 b/src/test/resources/8787323232232332--55322798-dd29-4a04-97f4-93e18feed554
deleted file mode 100644
index 7e55b66a..00000000
--- a/src/test/resources/8787323232232332--55322798-dd29-4a04-97f4-93e18feed554
+++ /dev/null
@@ -1,3 +0,0 @@
-status:IN_TRANSIT
-timestamp:1573410202
-tackingHistory: testinggg
diff --git a/src/test/resources/8787323232232332--55322798-dd29-4a04-97f4-93e18feed555 b/src/test/resources/8787323232232332--55322798-dd29-4a04-97f4-93e18feed555
deleted file mode 100644
index 56af0b0b..00000000
--- a/src/test/resources/8787323232232332--55322798-dd29-4a04-97f4-93e18feed555
+++ /dev/null
@@ -1,3 +0,0 @@
-status:IN_TRANSIT
-timestamp:1573410203
-tackingHistory: testinggg
diff --git a/src/test/resources/8787323232232332--55322798-dd29-4a04-97f4-93e18feed556 b/src/test/resources/8787323232232332--55322798-dd29-4a04-97f4-93e18feed556
deleted file mode 100644
index aab98165..00000000
--- a/src/test/resources/8787323232232332--55322798-dd29-4a04-97f4-93e18feed556
+++ /dev/null
@@ -1,3 +0,0 @@
-status:DELIVERED
-timestamp:1573410206
-tackingHistory: testinggg
diff --git a/src/test/resources/8787323232232332--55322798-dd29-4a04-97f4-93e18feed557 b/src/test/resources/8787323232232332--55322798-dd29-4a04-97f4-93e18feed557
deleted file mode 100644
index 28c026d8..00000000
--- a/src/test/resources/8787323232232332--55322798-dd29-4a04-97f4-93e18feed557
+++ /dev/null
@@ -1,3 +0,0 @@
-status:IN_TRANSIT
-timestamp:1573410209
-tackingHistory: testinggg
diff --git a/test_pr_agent.py b/test_pr_agent.py
new file mode 100644
index 00000000..63a51814
--- /dev/null
+++ b/test_pr_agent.py
@@ -0,0 +1,90 @@
+def calculate_price_per_item(total_price, item_count):
+ try:
+ price_per_item = total_price / item_count
+ return price_per_item
+ except Exception:
+ print("Error")
+ return None
+
+
+def print_guest_name():
+ try:
+ print(guest_name)
+ except Exception:
+ print("Error")
+
+
+def combine_strings():
+ try:
+ greeting = "Hello, " + 5
+ except Exception:
+ print("Error")
+
+
+def get_item_from_cart():
+ try:
+ shopping_cart = ["apple", "banana", "cherry"]
+ print(shopping_cart[5])
+ except Exception:
+ print("Error")
+
+
+def get_contact_info():
+ try:
+ contacts = {"John": "555-1234", "Jane": "555-5678"}
+ print(contacts["Doe"])
+ except Exception:
+ print("Error")
+
+
+def add_item_to_cart():
+ try:
+ cart_total = 100
+ cart_total.append(20)
+ except Exception:
+ print("Error")
+
+
+def parse_age():
+ try:
+ age = int("twenty-five")
+ except Exception:
+ print("Error")
+
+
+def trim_user_input():
+ try:
+ user_input = None
+ user_input.strip()
+ except AttributeError:
+ print("Error: 'NoneType' object has no attribute 'strip'!")
+
+
+def run_all_real_world_examples():
+ print("Calculating price per item:")
+ calculate_price_per_item(100, 0)
+
+ print("\nPrinting guest name:")
+ print_guest_name()
+
+ print("\nCombining strings:")
+ combine_strings()
+
+ print("\nGetting item from cart:")
+ get_item_from_cart()
+
+ print("\nGetting contact info:")
+ get_contact_info()
+
+ print("\nAdding item to cart:")
+ add_item_to_cart()
+
+ print("\nParsing age:")
+ parse_age()
+
+ print("\nTrimming user input:")
+ trim_user_input()
+
+
+if __name__ == "__main__":
+ run_all_real_world_examples()