diff --git a/cdk_java/.gitignore b/cdk_java/.gitignore
new file mode 100644
index 000000000..1db21f162
--- /dev/null
+++ b/cdk_java/.gitignore
@@ -0,0 +1,13 @@
+.classpath.txt
+target
+.classpath
+.project
+.idea
+.settings
+.vscode
+*.iml
+
+# CDK asset staging directory
+.cdk.staging
+cdk.out
+
diff --git a/cdk_java/README.md b/cdk_java/README.md
new file mode 100644
index 000000000..516ef71a2
--- /dev/null
+++ b/cdk_java/README.md
@@ -0,0 +1,18 @@
+# Welcome to your CDK Java project!
+
+This is a blank project for CDK development with Java.
+
+The `cdk.json` file tells the CDK Toolkit how to execute your app.
+
+It is a [Maven](https://maven.apache.org/) based project, so you can open this project with any Maven compatible Java IDE to build and run tests.
+
+## Useful commands
+
+ * `mvn package` compile and run tests
+ * `cdk ls` list all stacks in the app
+ * `cdk synth` emits the synthesized CloudFormation template
+ * `cdk deploy` deploy this stack to your default AWS account/region
+ * `cdk diff` compare deployed stack with current state
+ * `cdk docs` open CDK documentation
+
+Enjoy!
diff --git a/cdk_java/cdk.json b/cdk_java/cdk.json
new file mode 100644
index 000000000..723b2f18b
--- /dev/null
+++ b/cdk_java/cdk.json
@@ -0,0 +1,68 @@
+{
+ "app": "mvn -e -q compile exec:java",
+ "watch": {
+ "include": [
+ "**"
+ ],
+ "exclude": [
+ "README.md",
+ "cdk*.json",
+ "target",
+ "pom.xml",
+ "src/test"
+ ]
+ },
+ "context": {
+ "@aws-cdk/aws-lambda:recognizeLayerVersion": true,
+ "@aws-cdk/core:checkSecretUsage": true,
+ "@aws-cdk/core:target-partitions": [
+ "aws",
+ "aws-cn"
+ ],
+ "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": true,
+ "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": true,
+ "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": true,
+ "@aws-cdk/aws-iam:minimizePolicies": true,
+ "@aws-cdk/core:validateSnapshotRemovalPolicy": true,
+ "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": true,
+ "@aws-cdk/aws-s3:createDefaultLoggingPolicy": true,
+ "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": true,
+ "@aws-cdk/aws-apigateway:disableCloudWatchRole": true,
+ "@aws-cdk/core:enablePartitionLiterals": true,
+ "@aws-cdk/aws-events:eventsTargetQueueSameAccount": true,
+ "@aws-cdk/aws-iam:standardizedServicePrincipals": true,
+ "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": true,
+ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": true,
+ "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": true,
+ "@aws-cdk/aws-route53-patters:useCertificate": true,
+ "@aws-cdk/customresources:installLatestAwsSdkDefault": false,
+ "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": true,
+ "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": true,
+ "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": true,
+ "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": true,
+ "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": true,
+ "@aws-cdk/aws-redshift:columnId": true,
+ "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": true,
+ "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": true,
+ "@aws-cdk/aws-apigateway:requestValidatorUniqueId": true,
+ "@aws-cdk/aws-kms:aliasNameRef": true,
+ "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": true,
+ "@aws-cdk/core:includePrefixInUniqueNameGeneration": true,
+ "@aws-cdk/aws-efs:denyAnonymousAccess": true,
+ "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": true,
+ "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": true,
+ "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": true,
+ "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": true,
+ "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": true,
+ "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": true,
+ "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": true,
+ "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": true,
+ "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": true,
+ "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": true,
+ "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": true,
+ "@aws-cdk/aws-eks:nodegroupNameAttribute": true,
+ "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": true,
+ "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": true,
+ "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": false
+ }
+}
diff --git a/cdk_java/pom.xml b/cdk_java/pom.xml
new file mode 100644
index 000000000..944fd80c5
--- /dev/null
+++ b/cdk_java/pom.xml
@@ -0,0 +1,88 @@
+
+
+ 4.0.0
+
+ com.myorg
+ cdk_java
+ 0.1
+
+
+ UTF-8
+ 2.145.0
+ [10.0.0,11.0.0)
+ 5.7.1
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.11.0
+
+ 17
+
+
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 3.1.0
+
+ com.myorg.CdkJavaApp
+
+
+
+
+
+
+
+
+ software.amazon.awscdk
+ aws-cdk-lib
+ ${cdk.version}
+
+
+
+ software.constructs
+ constructs
+ ${constructs.version}
+
+
+
+
+ com.amazonaws
+ aws-java-sdk-core
+ 1.12.738
+
+
+
+
+ com.amazonaws
+ aws-java-sdk-s3
+ 1.12.738
+
+
+
+
+ com.amazonaws
+ aws-java-sdk-cloudfront
+ 1.12.738
+
+
+
+
+ com.amazonaws
+ aws-java-sdk-iam
+ 1.12.738
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+ ${junit.version}
+ test
+
+
+
diff --git a/cdk_java/src/main/java/com/myorg/CdkJavaApp.java b/cdk_java/src/main/java/com/myorg/CdkJavaApp.java
new file mode 100644
index 000000000..009445f8a
--- /dev/null
+++ b/cdk_java/src/main/java/com/myorg/CdkJavaApp.java
@@ -0,0 +1,42 @@
+package com.myorg;
+
+import software.amazon.awscdk.App;
+import software.amazon.awscdk.Environment;
+import software.amazon.awscdk.StackProps;
+
+import java.util.Arrays;
+
+public class CdkJavaApp {
+ public static void main(final String[] args) {
+ App app = new App();
+
+ new CdkJavaStack(app, "CdkJavaStack", StackProps.builder()
+ // If you don't specify 'env', this stack will be environment-agnostic.
+ // Account/Region-dependent features and context lookups will not work,
+ // but a single synthesized template can be deployed anywhere.
+
+ // Uncomment the next block to specialize this stack for the AWS Account
+ // and Region that are implied by the current CLI configuration.
+ /*
+ .env(Environment.builder()
+ .account(System.getenv("CDK_DEFAULT_ACCOUNT"))
+ .region(System.getenv("CDK_DEFAULT_REGION"))
+ .build())
+ */
+
+ // Uncomment the next block if you know exactly what Account and Region you
+ // want to deploy the stack to.
+ /*
+ .env(Environment.builder()
+ .account("123456789012")
+ .region("us-east-1")
+ .build())
+ */
+
+ // For more information, see https://docs.aws.amazon.com/cdk/latest/guide/environments.html
+ .build());
+
+ app.synth();
+ }
+}
+
diff --git a/cdk_java/src/main/java/com/myorg/CdkJavaStack.java b/cdk_java/src/main/java/com/myorg/CdkJavaStack.java
new file mode 100644
index 000000000..5d775a7fe
--- /dev/null
+++ b/cdk_java/src/main/java/com/myorg/CdkJavaStack.java
@@ -0,0 +1,73 @@
+package com.myorg;
+
+import software.amazon.awscdk.services.cloudfront.*;
+import software.amazon.awscdk.services.iam.Effect;
+import software.amazon.awscdk.services.iam.PolicyStatement;
+import software.amazon.awscdk.services.s3.Bucket;
+import software.amazon.awscdk.services.s3.BucketAccessControl;
+import software.amazon.awscdk.services.s3.deployment.BucketDeployment;
+import software.amazon.awscdk.services.s3.deployment.Source;
+import software.constructs.Construct;
+import software.amazon.awscdk.Stack;
+import software.amazon.awscdk.StackProps;
+
+
+import java.util.Collections;
+import java.util.List;
+// import software.amazon.awscdk.Duration;
+// import software.amazon.awscdk.services.sqs.Queue;
+
+public class CdkJavaStack extends Stack {
+ public CdkJavaStack(final Construct scope, final String id) {
+ this(scope, id, null);
+ }
+
+ public CdkJavaStack(final Construct scope, final String id, final StackProps props) {
+ super(scope, id, props);
+
+ // The code that defines your stack goes here
+
+ // example resource
+ // final Queue queue = Queue.Builder.create(this, "CdkJavaQueue")
+ // .visibilityTimeout(Duration.seconds(300))
+ // .build();
+
+ Bucket myBucket = Bucket.Builder.create(this, "MyBucket")
+ .versioned(false)
+ .bucketName("rs-spa")
+ .websiteIndexDocument("index.html")
+ .websiteErrorDocument("index.html")
+ .publicReadAccess(false)
+ .accessControl(BucketAccessControl.PRIVATE)
+ .build();
+
+ OriginAccessIdentity originAccessIdentity = OriginAccessIdentity.Builder.create(this, "OAI")
+ .comment("OAI for my SPA")
+ .build();
+
+ myBucket.addToResourcePolicy(PolicyStatement.Builder.create()
+ .effect(Effect.ALLOW)
+ .principals(Collections.singletonList(originAccessIdentity.getGrantPrincipal()))
+ .actions(Collections.singletonList("s3:GetObject"))
+ .resources(Collections.singletonList(myBucket.arnForObjects("*")))
+ .build());
+
+ CloudFrontWebDistribution distribution = CloudFrontWebDistribution.Builder.create(this, "SiteDistribution")
+ .originConfigs(Collections.singletonList(
+ SourceConfiguration.builder()
+ .s3OriginSource(S3OriginConfig.builder()
+ .s3BucketSource(myBucket)
+ .originAccessIdentity(originAccessIdentity)
+ .build())
+ .behaviors(Collections.singletonList(Behavior.builder().isDefaultBehavior(true).build()))
+ .build()))
+ .build();
+
+ BucketDeployment.Builder.create(this, "DeployWebsite")
+ .sources(Collections.singletonList(Source.asset("../dist")))
+ .destinationBucket(myBucket)
+ .distribution(distribution)
+ .distributionPaths(Collections.singletonList("/*")) // Инвалидация всех путей
+ .build();
+ }
+}
diff --git a/cdk_java/src/test/java/com/myorg/CdkJavaTest.java b/cdk_java/src/test/java/com/myorg/CdkJavaTest.java
new file mode 100644
index 000000000..dd210307f
--- /dev/null
+++ b/cdk_java/src/test/java/com/myorg/CdkJavaTest.java
@@ -0,0 +1,26 @@
+// package com.myorg;
+
+// import software.amazon.awscdk.App;
+// import software.amazon.awscdk.assertions.Template;
+// import java.io.IOException;
+
+// import java.util.HashMap;
+
+// import org.junit.jupiter.api.Test;
+
+// example test. To run these tests, uncomment this file, along with the
+// example resource in java/src/main/java/com/myorg/CdkJavaStack.java
+// public class CdkJavaTest {
+
+// @Test
+// public void testStack() throws IOException {
+// App app = new App();
+// CdkJavaStack stack = new CdkJavaStack(app, "test");
+
+// Template template = Template.fromStack(stack);
+
+// template.hasResourceProperties("AWS::SQS::Queue", new HashMap() {{
+// put("VisibilityTimeout", 300);
+// }});
+// }
+// }
diff --git a/package.json b/package.json
index 632fd8370..b66e5f9e5 100755
--- a/package.json
+++ b/package.json
@@ -5,6 +5,8 @@
"scripts": {
"start": "vite",
"build": "tsc && vite build",
+ "deploy": "npm run build && cd cdk_java && cdk deploy",
+ "destroy": "cd cdk_java && cdk destroy -f",
"preview": "npm run build && vite preview",
"test": "vitest",
"test:ui": "vitest --ui",
diff --git a/src/constants/apiPaths.ts b/src/constants/apiPaths.ts
index 6846a7534..06a787361 100755
--- a/src/constants/apiPaths.ts
+++ b/src/constants/apiPaths.ts
@@ -1,5 +1,5 @@
const API_PATHS = {
- product: "https://.execute-api.eu-west-1.amazonaws.com/dev",
+ product: "https://wa015rf5vk.execute-api.eu-central-1.amazonaws.com/prod/",
order: "https://.execute-api.eu-west-1.amazonaws.com/dev",
import: "https://.execute-api.eu-west-1.amazonaws.com/dev",
bff: "https://.execute-api.eu-west-1.amazonaws.com/dev",
diff --git a/src/queries/products.ts b/src/queries/products.ts
index 090a803f3..3567aa0c4 100644
--- a/src/queries/products.ts
+++ b/src/queries/products.ts
@@ -9,7 +9,7 @@ export function useAvailableProducts() {
"available-products",
async () => {
const res = await axios.get(
- `${API_PATHS.bff}/product/available`
+ `${API_PATHS.product}/products`
);
return res.data;
}
@@ -29,7 +29,7 @@ export function useAvailableProduct(id?: string) {
["product", { id }],
async () => {
const res = await axios.get(
- `${API_PATHS.bff}/product/${id}`
+ `${API_PATHS.product}/products/${id}`
);
return res.data;
},
@@ -48,7 +48,7 @@ export function useRemoveProductCache() {
export function useUpsertAvailableProduct() {
return useMutation((values: AvailableProduct) =>
- axios.put(`${API_PATHS.bff}/product`, values, {
+ axios.post(`${API_PATHS.product}/products`, values, {
headers: {
Authorization: `Basic ${localStorage.getItem("authorization_token")}`,
},