11/**
2- * We use jQuery's AJAX mechanism as this is already in WordPress and
3- * doesn't require a separate dependency / library liks Axios ... for now.
2+ * WordPress dependencies
43 */
4+ import apiFetch from '@wordpress/api-fetch' ;
55
66class Domains {
77 /**
@@ -11,25 +11,15 @@ class Domains {
1111 * @param {Object } data Data record for the new domain.
1212 */
1313 async add ( data ) {
14- let result = null ;
15-
1614 try {
17- result = await window . jQuery . ajax ( {
18- url : window . dmSettings . rest_root + 'dm/v1/domain' ,
15+ return await apiFetch ( {
1916 data,
20- dataType : 'json' ,
21- method : 'post' ,
22- beforeSend ( xhr ) {
23- xhr . setRequestHeader ( 'X-WP-Nonce' , window . dmSettings . nonce ) ;
24- } ,
17+ method : 'POST' ,
18+ path : '/dm/v1/domain' ,
2519 } ) ;
2620 } catch ( error ) {
27- if ( error . responseJSON ) {
28- result = error . responseJSON ;
29- }
21+ return error ;
3022 }
31-
32- return result ;
3323 }
3424
3525 /**
@@ -40,43 +30,22 @@ class Domains {
4030 * @param {string } domain FQDN to be deleted.
4131 */
4232 async delete ( domain ) {
43- let result = null ;
44-
45- try {
46- result = await window . jQuery . ajax ( {
47- url : window . dmSettings . rest_root + 'dm/v1/domain/' + domain ,
48- data : {
49- force : true ,
50- } ,
51- dataType : 'json' ,
52- method : 'DELETE' ,
53- beforeSend ( xhr ) {
54- xhr . setRequestHeader ( 'X-WP-Nonce' , window . dmSettings . nonce ) ;
55- } ,
56- } ) ;
57- } catch ( error ) {
58- if ( error . responseJSON ) {
59- result = error . responseJSON ;
60- }
61- }
62-
63- return result ;
33+ return await apiFetch ( {
34+ data : {
35+ force : true ,
36+ } ,
37+ method : 'DELETE' ,
38+ path : `/dm/v1/domain/${ domain } ` ,
39+ } ) ;
6440 }
6541
6642 /**
6743 * Retrieve all the domains for a specific website.
6844 */
6945 async getAll ( ) {
70- const result = await window . jQuery . ajax ( {
71- url : window . dmSettings . rest_root + 'dm/v1/domains' ,
72- dataType : 'json' ,
73- method : 'GET' ,
74- beforeSend ( xhr ) {
75- xhr . setRequestHeader ( 'X-WP-Nonce' , window . dmSettings . nonce ) ;
76- } ,
46+ return await apiFetch ( {
47+ path : '/dm/v1/domains' ,
7748 } ) ;
78-
79- return result ;
8049 }
8150
8251 /**
@@ -97,26 +66,11 @@ class Domains {
9766 */
9867 delete data . site ;
9968
100- let result = null ;
101-
102- try {
103- result = await window . jQuery . ajax ( {
104- url :
105- window . dmSettings . rest_root + 'dm/v1/domain/' + data . domain ,
106- data,
107- dataType : 'json' ,
108- method : 'PUT' ,
109- beforeSend ( xhr ) {
110- xhr . setRequestHeader ( 'X-WP-Nonce' , window . dmSettings . nonce ) ;
111- } ,
112- } ) ;
113- } catch ( error ) {
114- if ( error . responseJSON ) {
115- result = error . responseJSON ;
116- }
117- }
118-
119- return result ;
69+ return await apiFetch ( {
70+ data,
71+ method : 'PUT' ,
72+ path : `/dm/v1/domain/${ data . domain } ` ,
73+ } ) ;
12074 }
12175}
12276
0 commit comments