Skip to content

Commit 3a563b8

Browse files
committed
Digital assets download and link generation
1 parent d23107c commit 3a563b8

File tree

14 files changed

+498
-32
lines changed

14 files changed

+498
-32
lines changed

admin/sql/mysqli/digital_asset.sql

+25-3
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
PROCEDURE getAll(
66
IN language_id INT,
77
IN user_id INT,
8+
IN product_id INT,
89
IN order_status_id INT,
910
IN start INT,
1011
IN limit INT,
@@ -13,7 +14,13 @@
1314
)
1415
BEGIN
1516
-- digital_asset
16-
SELECT digital_asset.*, digital_asset_content.name
17+
SELECT UNIQUE digital_asset.digital_asset_id, digital_asset.*, digital_asset_content.name
18+
-- user_id
19+
@IF isset(:user_id)
20+
THEN
21+
, o.customer_order_id, o.order_id, op.name as product_name
22+
END @IF
23+
1724
FROM digital_asset AS digital_asset
1825
INNER JOIN digital_asset_content ON digital_asset_content.digital_asset_id = digital_asset.digital_asset_id
1926
AND digital_asset_content.language_id = :language_id
@@ -26,6 +33,12 @@
2633
INNER JOIN `order` o ON o.order_id = op.order_id AND o.user_id = :user_id AND o.order_status_id = :order_status_id
2734
END @IF
2835

36+
-- product_id
37+
@IF isset(:product_id)
38+
THEN
39+
INNER JOIN product_to_digital_asset ptda ON ptda.digital_asset_id = digital_asset.digital_asset_id AND ptda.product_id = :product_id
40+
END @IF
41+
2942
WHERE 1 = 1
3043

3144
-- limit
@@ -56,9 +69,18 @@
5669
FROM digital_asset as _
5770
INNER JOIN digital_asset_content ON digital_asset_content.digital_asset_id = _.digital_asset_id
5871
AND digital_asset_content.language_id = :language_id
59-
72+
73+
-- user_id
74+
@IF isset(:user_id)
75+
THEN
76+
INNER JOIN product_to_digital_asset ptda ON ptda.digital_asset_id = _.digital_asset_id
77+
INNER JOIN order_product op ON op.product_id = ptda.product_id
78+
INNER JOIN `order` o ON o.order_id = op.order_id AND o.user_id = :user_id AND o.order_status_id = :order_status_id
79+
END @IF
80+
6081
WHERE _.digital_asset_id = :digital_asset_id;
61-
END
82+
83+
END
6284

6385
-- add digital_asset
6486

+107
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
-- Digital assets log
2+
3+
-- get all digital_assets_log
4+
5+
PROCEDURE getAll(
6+
IN user_id INT,
7+
IN start INT,
8+
IN limit INT,
9+
OUT fetch_all,
10+
OUT fetch_one,
11+
)
12+
BEGIN
13+
14+
SELECT digital_asset_log.*
15+
16+
FROM digital_asset_log AS digital_asset_log
17+
18+
WHERE 1 = 1
19+
20+
-- user_id
21+
@IF isset(:user_id)
22+
THEN
23+
user_id = :user_id
24+
END @IF
25+
26+
-- limit
27+
@IF isset(:limit)
28+
THEN
29+
@SQL_LIMIT(:start, :limit)
30+
END @IF;
31+
32+
SELECT count(*) FROM (
33+
34+
@SQL_COUNT(digital_asset.digital_asset_id, digital_asset) -- this takes previous query removes limit and replaces select columns with parameter product_id
35+
36+
) as count;
37+
38+
END
39+
40+
-- get digital_asset
41+
42+
PROCEDURE get(
43+
IN digital_asset_log_id INT,
44+
IN user_id INT,
45+
IN site_id INT,
46+
OUT fetch_row,
47+
)
48+
BEGIN
49+
-- digital_asset
50+
SELECT *
51+
FROM digital_asset_log as _
52+
53+
WHERE _.digital_asset_log_id = :digital_asset_log_id;
54+
55+
END
56+
57+
-- add digital_asset_log
58+
59+
PROCEDURE add(
60+
IN digital_asset_log ARRAY,
61+
OUT insert_id,
62+
)
63+
BEGIN
64+
65+
-- allow only table fields and set defaults for missing values
66+
:digital_asset_log_data = @FILTER(:digital_asset_log, digital_asset_log)
67+
68+
INSERT INTO digital_asset_log
69+
70+
( @KEYS(:digital_asset_log_data) )
71+
72+
VALUES ( :digital_asset_log_data );
73+
74+
END
75+
76+
-- edit digital_asset_log
77+
78+
CREATE PROCEDURE edit(
79+
IN digital_asset_log ARRAY,
80+
IN digital_asset_log_id INT,
81+
OUT affected_rows
82+
)
83+
BEGIN
84+
85+
-- allow only table fields and set defaults for missing values
86+
:digital_asset_log_data = @FILTER(:digital_asset_log, digital_asset_log)
87+
88+
UPDATE digital_asset_log
89+
90+
SET @LIST(:digital_asset_log_data)
91+
92+
WHERE digital_asset_log_id = :digital_asset_log_id;
93+
94+
END
95+
96+
97+
-- delete digital_asset_log
98+
99+
PROCEDURE delete(
100+
IN digital_asset_log_id ARRAY,
101+
OUT affected_rows,
102+
OUT affected_rows,
103+
)
104+
BEGIN
105+
-- digital_asset_log
106+
DELETE FROM digital_asset_log WHERE digital_asset_log_id IN (:digital_asset_log_id);
107+
END

admin/sql/pgsql/digital_asset.sql

+23-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
PROCEDURE getAll(
66
IN language_id INT,
77
IN user_id INT,
8+
IN product_id INT,
89
IN order_status_id INT,
910
IN start INT,
1011
IN limit INT,
@@ -13,7 +14,13 @@
1314
)
1415
BEGIN
1516
-- digital_asset
16-
SELECT digital_asset.*, digital_asset_content.name
17+
SELECT UNIQUE digital_asset.digital_asset_id, digital_asset.*, digital_asset_content.name
18+
-- user_id
19+
@IF isset(:user_id)
20+
THEN
21+
, o.customer_order_id, o.order_id, op.name as product_name
22+
END @IF
23+
1724
FROM digital_asset AS digital_asset
1825
INNER JOIN digital_asset_content ON digital_asset_content.digital_asset_id = digital_asset.digital_asset_id
1926
AND digital_asset_content.language_id = :language_id
@@ -26,6 +33,12 @@
2633
INNER JOIN "order" o ON o.order_id = op.order_id AND o.user_id = :user_id AND o.order_status_id = :order_status_id
2734
END @IF
2835

36+
-- product_id
37+
@IF isset(:product_id)
38+
THEN
39+
INNER JOIN product_to_digital_asset ptda ON ptda.digital_asset_id = digital_asset.digital_asset_id AND ptda.product_id = :product_id
40+
END @IF
41+
2942
WHERE 1 = 1
3043

3144
-- limit
@@ -57,7 +70,16 @@
5770
INNER JOIN digital_asset_content ON digital_asset_content.digital_asset_id = _.digital_asset_id
5871
AND digital_asset_content.language_id = :language_id
5972

73+
-- user_id
74+
@IF isset(:user_id)
75+
THEN
76+
INNER JOIN product_to_digital_asset ptda ON ptda.digital_asset_id = _.digital_asset_id
77+
INNER JOIN order_product op ON op.product_id = ptda.product_id
78+
INNER JOIN `order` o ON o.order_id = op.order_id AND o.user_id = :user_id AND o.order_status_id = :order_status_id
79+
END @IF
80+
6081
WHERE _.digital_asset_id = :digital_asset_id;
82+
6183
END
6284

6385
-- add digital_asset

admin/sql/pgsql/digital_asset_log.sql

+107
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
-- Digital assets log
2+
3+
-- get all digital_assets_log
4+
5+
PROCEDURE getAll(
6+
IN user_id INT,
7+
IN start INT,
8+
IN limit INT,
9+
OUT fetch_all,
10+
OUT fetch_one,
11+
)
12+
BEGIN
13+
14+
SELECT digital_asset_log.*
15+
16+
FROM digital_asset_log AS digital_asset_log
17+
18+
WHERE 1 = 1
19+
20+
-- user_id
21+
@IF isset(:user_id)
22+
THEN
23+
user_id = :user_id
24+
END @IF
25+
26+
-- limit
27+
@IF isset(:limit)
28+
THEN
29+
@SQL_LIMIT(:start, :limit)
30+
END @IF;
31+
32+
SELECT count(*) FROM (
33+
34+
@SQL_COUNT(digital_asset.digital_asset_id, digital_asset) -- this takes previous query removes limit and replaces select columns with parameter product_id
35+
36+
) as count;
37+
38+
END
39+
40+
-- get digital_asset
41+
42+
PROCEDURE get(
43+
IN digital_asset_log_id INT,
44+
IN user_id INT,
45+
IN site_id INT,
46+
OUT fetch_row,
47+
)
48+
BEGIN
49+
-- digital_asset
50+
SELECT *
51+
FROM digital_asset_log as _
52+
53+
WHERE _.digital_asset_log_id = :digital_asset_log_id;
54+
55+
END
56+
57+
-- add digital_asset_log
58+
59+
PROCEDURE add(
60+
IN digital_asset_log ARRAY,
61+
OUT fetch_one,
62+
)
63+
BEGIN
64+
65+
-- allow only table fields and set defaults for missing values
66+
:digital_asset_log_data = @FILTER(:digital_asset_log, digital_asset_log)
67+
68+
INSERT INTO digital_asset_log
69+
70+
( @KEYS(:digital_asset_log_data) )
71+
72+
VALUES ( :digital_asset_log_data ) RETURNING digital_asset_log_id;
73+
74+
END
75+
76+
-- edit digital_asset_log
77+
78+
CREATE PROCEDURE edit(
79+
IN digital_asset_log ARRAY,
80+
IN digital_asset_log_id INT,
81+
OUT affected_rows
82+
)
83+
BEGIN
84+
85+
-- allow only table fields and set defaults for missing values
86+
:digital_asset_log_data = @FILTER(:digital_asset_log, digital_asset_log)
87+
88+
UPDATE digital_asset_log
89+
90+
SET @LIST(:digital_asset_log_data)
91+
92+
WHERE digital_asset_log_id = :digital_asset_log_id;
93+
94+
END
95+
96+
97+
-- delete digital_asset_log
98+
99+
PROCEDURE delete(
100+
IN digital_asset_log_id ARRAY,
101+
OUT affected_rows,
102+
OUT affected_rows,
103+
)
104+
BEGIN
105+
-- digital_asset_log
106+
DELETE FROM digital_asset_log WHERE digital_asset_log_id IN (:digital_asset_log_id);
107+
END

admin/sql/sqlite/digital_asset.sql

+23-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
PROCEDURE getAll(
66
IN language_id INT,
77
IN user_id INT,
8+
IN product_id INT,
89
IN order_status_id INT,
910
IN start INT,
1011
IN limit INT,
@@ -13,7 +14,13 @@
1314
)
1415
BEGIN
1516
-- digital_asset
16-
SELECT digital_asset.*, digital_asset_content.name
17+
SELECT UNIQUE digital_asset.digital_asset_id, digital_asset.*, digital_asset_content.name
18+
-- user_id
19+
@IF isset(:user_id)
20+
THEN
21+
, o.customer_order_id, o.order_id, op.name as product_name
22+
END @IF
23+
1724
FROM digital_asset AS digital_asset
1825
INNER JOIN digital_asset_content ON digital_asset_content.digital_asset_id = digital_asset.digital_asset_id
1926
AND digital_asset_content.language_id = :language_id
@@ -26,6 +33,12 @@
2633
INNER JOIN `order` o ON o.order_id = op.order_id AND o.user_id = :user_id AND o.order_status_id = :order_status_id
2734
END @IF
2835

36+
-- product_id
37+
@IF isset(:product_id)
38+
THEN
39+
INNER JOIN product_to_digital_asset ptda ON ptda.digital_asset_id = digital_asset.digital_asset_id AND ptda.product_id = :product_id
40+
END @IF
41+
2942
WHERE 1 = 1
3043

3144
-- limit
@@ -57,7 +70,16 @@
5770
INNER JOIN digital_asset_content ON digital_asset_content.digital_asset_id = _.digital_asset_id
5871
AND digital_asset_content.language_id = :language_id
5972

73+
-- user_id
74+
@IF isset(:user_id)
75+
THEN
76+
INNER JOIN product_to_digital_asset ptda ON ptda.digital_asset_id = _.digital_asset_id
77+
INNER JOIN order_product op ON op.product_id = ptda.product_id
78+
INNER JOIN `order` o ON o.order_id = op.order_id AND o.user_id = :user_id AND o.order_status_id = :order_status_id
79+
END @IF
80+
6081
WHERE _.digital_asset_id = :digital_asset_id;
82+
6183
END
6284

6385
-- add digital_asset

0 commit comments

Comments
 (0)