Skip to content

Commit 3342b1a

Browse files
committed
digital double logic
1 parent cd2229d commit 3342b1a

File tree

6 files changed

+241
-5
lines changed

6 files changed

+241
-5
lines changed
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package oracleai;
2+
3+
public class DigitalDoubleDataRequest {
4+
public String p_participant_firstname;
5+
public String p_participant_lastname;
6+
public String p_participant_email;
7+
public String p_participant_company;
8+
public String p_participant_role;
9+
public String p_participant_tshirt;
10+
public String p_participant_comments;
11+
public String p_id_image_in; // You can change this to byte[] for BLOB
12+
public String p_image_in; // You can change this to byte[] for BLOB
13+
public String p_video_in; // You can change this to byte[] for BLOB
14+
15+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package oracleai;
2+
3+
import org.springframework.http.HttpEntity;
4+
import org.springframework.http.HttpHeaders;
5+
import org.springframework.http.HttpMethod;
6+
import org.springframework.http.MediaType;
7+
import org.springframework.http.ResponseEntity;
8+
import org.springframework.web.client.RestTemplate;
9+
10+
public class DigitalDoubleORDS {
11+
12+
public void insertDigitalDoubleData(DigitalDoubleDataRequest request) {
13+
String url = "https://rddainsuh6u1okc-ragdb.adb.us-ashburn-1.oraclecloudapps.com/ords/omlopsuser/insert_digital_double_data/";
14+
15+
RestTemplate restTemplate = new RestTemplate();
16+
17+
HttpHeaders headers = new HttpHeaders();
18+
headers.setContentType(MediaType.APPLICATION_JSON);
19+
20+
HttpEntity<DigitalDoubleDataRequest> entity = new HttpEntity<>(request, headers);
21+
22+
ResponseEntity<String> response = restTemplate.exchange(
23+
url,
24+
HttpMethod.POST,
25+
entity,
26+
String.class
27+
);
28+
29+
System.out.println(response.getBody());
30+
}
31+
}

java-ai/src/main/java/oracleai/DigitalDoubles.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,9 @@ public String uploadimageandvideo(
4545
", jobRole = " + jobRole + ", tshirtSize = " + tshirtSize +
4646
", comments = " + comments + ", model = " + model);
4747
if (!image.isEmpty()) {
48-
ORDSCalls.uploadImage(image);
48+
// ORDSCalls.uploadImage(image);
49+
ORDSCalls.insertDigitalDoubleData(
50+
image,video,firstName,lastName, email, company,jobRole, tshirtSize, comments);
4951
// byte[] imageBytes = image.getBytes();
5052

5153
if (!video.isEmpty()) {

java-ai/src/main/java/oracleai/services/ORDSCalls.java

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@
22

33
import com.fasterxml.jackson.databind.JsonNode;
44
import com.fasterxml.jackson.databind.ObjectMapper;
5-
import oracleai.AIApplication;
6-
import oracleai.ImageStore;
7-
import oracleai.ImageStoreWrapper;
5+
import oracleai.*;
86
import org.jetbrains.annotations.Nullable;
97
import org.springframework.http.*;
108
import org.springframework.stereotype.Service;
@@ -181,5 +179,30 @@ public static String pollApiUntilSuccess(String fileName, String theResultString
181179
}
182180
}
183181

182+
public static void insertDigitalDoubleData(MultipartFile image, MultipartFile video,
183+
String firstName, String lastName, String email,
184+
String company, String jobRole, String tshirtSize,
185+
String comments) throws IOException {
186+
187+
188+
DigitalDoubleORDS client = new DigitalDoubleORDS();
189+
190+
// Prepare request data
191+
DigitalDoubleDataRequest request = new DigitalDoubleDataRequest();
192+
request.p_participant_firstname = firstName;
193+
request.p_participant_lastname=lastName;
194+
request.p_participant_email=email;
195+
request.p_participant_company=company;
196+
request.p_participant_role=jobRole;
197+
request.p_participant_tshirt = tshirtSize;
198+
request.p_participant_comments = comments
199+
// request.p_id_image_in = idimage;
200+
request.p_image_in = Base64.getEncoder().encodeToString(image.getBytes());;
201+
request.p_video_in = Base64.getEncoder().encodeToString(video.getBytes());;
202+
client.insertDigitalDoubleData(request);
203+
System.out.println("ORDSCalls.insertDigitalDoubleData insert complete");
204+
}
205+
206+
184207
}
185208

java-ai/src/main/resources/templates/digitaldoubleupload.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ <h1>Which player are you?</h1>
107107
</div>
108108
<div class="form-group">
109109
<label for="comments">Comments:</label>
110-
<input type="text" id="comments" name="comments" autocomplete="comments">
110+
<input type="text" id="comments" name="comments" autocomplete="comments" value="OCW DatabaseWorld 2024">
111111
</div>
112112
<div class="form-group">
113113
<input type="submit" value="Submit">

sql/digital_doubles.sql

Lines changed: 165 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,165 @@
1+
CREATE TABLE digital_double_data (
2+
id NUMBER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
3+
participant_firstname VARCHAR2(100),
4+
participant_lastname VARCHAR2(100),
5+
participant_email VARCHAR2(100) NOT NULL,
6+
participant_company VARCHAR2(100),
7+
participant_role VARCHAR2(100),
8+
participant_tshirt VARCHAR2(100),
9+
participant_comments VARCHAR2(200),
10+
id_image_in BLOB,
11+
image_in BLOB,
12+
video_in BLOB,
13+
modelglburl_out VARCHAR2(1000),
14+
modelfbxurl_out VARCHAR2(1000),
15+
modelusdzurl_out VARCHAR2(1000),
16+
thumbnailurl_out VARCHAR2(1000),
17+
videourl_out BLOB,
18+
video_out BLOB,
19+
similar_image_out BLOB
20+
);
21+
/
22+
23+
24+
CREATE OR REPLACE PROCEDURE insert_digital_double_data (
25+
p_participant_firstname IN VARCHAR2,
26+
p_participant_lastname IN VARCHAR2,
27+
p_participant_email IN VARCHAR2,
28+
p_participant_company IN VARCHAR2,
29+
p_participant_role IN VARCHAR2,
30+
p_participant_tshirt IN VARCHAR2,
31+
p_participant_comments IN VARCHAR2,
32+
p_id_image_in IN BLOB,
33+
p_image_in IN BLOB,
34+
p_video_in IN BLOB
35+
) IS
36+
BEGIN
37+
INSERT INTO digital_double_data (
38+
participant_firstname,
39+
participant_lastname,
40+
participant_email,
41+
participant_company,
42+
participant_role,
43+
participant_tshirt,
44+
participant_comments,
45+
id_image_in,
46+
image_in,
47+
video_in
48+
)
49+
VALUES (
50+
p_participant_firstname,
51+
p_participant_lastname,
52+
p_participant_email,
53+
p_participant_company,
54+
p_participant_role,
55+
p_participant_tshirt,
56+
p_participant_comments,
57+
p_id_image_in,
58+
p_image_in,
59+
p_video_in
60+
);
61+
END insert_digital_double_data;
62+
/
63+
64+
CREATE OR REPLACE PROCEDURE update_digital_double_data (
65+
p_participant_email IN VARCHAR2,
66+
p_modelglburl_out IN VARCHAR2,
67+
p_modelfbxurl_out IN VARCHAR2,
68+
p_modelusdzurl_out IN VARCHAR2,
69+
p_thumbnailurl_out IN VARCHAR2,
70+
p_videourl_out IN BLOB,
71+
p_video_out IN BLOB,
72+
p_similar_image_out IN BLOB
73+
) IS
74+
BEGIN
75+
UPDATE digital_double_data
76+
SET modelglburl_out = p_modelglburl_out,
77+
modelfbxurl_out = p_modelfbxurl_out,
78+
modelusdzurl_out = p_modelusdzurl_out,
79+
thumbnailurl_out = p_thumbnailurl_out,
80+
videourl_out = p_videourl_out,
81+
video_out = p_video_out,
82+
similar_image_out = p_similar_image_out
83+
WHERE participant_email = p_participant_email;
84+
END update_digital_double_data;
85+
/
86+
87+
CREATE OR REPLACE PROCEDURE get_digital_double_data (
88+
p_participant_email IN VARCHAR2,
89+
p_participant_firstname OUT VARCHAR2,
90+
p_participant_lastname OUT VARCHAR2,
91+
p_participant_company OUT VARCHAR2,
92+
p_participant_role OUT VARCHAR2,
93+
p_participant_tshirt OUT VARCHAR2,
94+
p_participant_comments OUT VARCHAR2,
95+
p_id_image_in OUT BLOB,
96+
p_image_in OUT BLOB,
97+
p_video_in OUT BLOB,
98+
p_modelglburl_out OUT VARCHAR2,
99+
p_modelfbxurl_out OUT VARCHAR2,
100+
p_modelusdzurl_out OUT VARCHAR2,
101+
p_thumbnailurl_out OUT VARCHAR2,
102+
p_videourl_out OUT BLOB,
103+
p_video_out OUT BLOB,
104+
p_similar_image_out OUT BLOB
105+
) IS
106+
BEGIN
107+
SELECT participant_firstname, participant_lastname, participant_company,
108+
participant_role, participant_tshirt, participant_comments,
109+
id_image_in, image_in, video_in,
110+
modelglburl_out, modelfbxurl_out, modelusdzurl_out,
111+
thumbnailurl_out, videourl_out, video_out, similar_image_out
112+
INTO p_participant_firstname, p_participant_lastname, p_participant_company,
113+
p_participant_role, p_participant_tshirt, p_participant_comments,
114+
p_id_image_in, p_image_in, p_video_in,
115+
p_modelglburl_out, p_modelfbxurl_out, p_modelusdzurl_out,
116+
p_thumbnailurl_out, p_videourl_out, p_video_out, p_similar_image_out
117+
FROM digital_double_data
118+
WHERE participant_email = p_participant_email;
119+
END get_digital_double_data;
120+
/
121+
122+
123+
124+
--ORDS...
125+
126+
127+
BEGIN
128+
ORDS.ENABLE_OBJECT(
129+
P_ENABLED => TRUE,
130+
P_SCHEMA => 'OMLOPSUSER',
131+
P_OBJECT => 'INSERT_DIGITAL_DOUBLE_DATA',
132+
P_OBJECT_TYPE => 'PROCEDURE',
133+
P_OBJECT_ALIAS => 'insert_digital_double_data',
134+
P_AUTO_REST_AUTH => FALSE
135+
);
136+
COMMIT;
137+
END;
138+
/
139+
140+
BEGIN
141+
ORDS.ENABLE_OBJECT(
142+
P_ENABLED => TRUE,
143+
P_SCHEMA => 'OMLOPSUSER',
144+
P_OBJECT => 'GET_DIGITAL_DOUBLE_DATA',
145+
P_OBJECT_TYPE => 'PROCEDURE',
146+
P_OBJECT_ALIAS => 'get_digital_double_data',
147+
P_AUTO_REST_AUTH => FALSE
148+
);
149+
COMMIT;
150+
END;
151+
/
152+
153+
BEGIN
154+
ORDS.ENABLE_OBJECT(
155+
P_ENABLED => TRUE,
156+
P_SCHEMA => 'OMLOPSUSER',
157+
P_OBJECT => 'UPDATE_DIGITAL_DOUBLE_DATA',
158+
P_OBJECT_TYPE => 'PROCEDURE',
159+
P_OBJECT_ALIAS => 'update_digital_double_data',
160+
P_AUTO_REST_AUTH => FALSE
161+
);
162+
COMMIT;
163+
END;
164+
/
165+

0 commit comments

Comments
 (0)