mirror of
https://github.com/pierre42100/ComunicWeb
synced 2024-12-24 09:58:51 +00:00
Can send create post request on the API
This commit is contained in:
parent
1b5678cdd1
commit
f7ba871344
@ -53,7 +53,7 @@ ComunicWeb.common.api = {
|
|||||||
|
|
||||||
//Prepare request response
|
//Prepare request response
|
||||||
apiXHR.onreadystatechange = function(){
|
apiXHR.onreadystatechange = function(){
|
||||||
ComunicWeb.common.api._on_state_change(apiXHR, nextAction);
|
ComunicWeb.common.api._on_state_change(requestURL, apiXHR, nextAction);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Set request headers
|
//Set request headers
|
||||||
@ -63,13 +63,56 @@ ComunicWeb.common.api = {
|
|||||||
apiXHR.send(datas);
|
apiXHR.send(datas);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Make an API request with a prepared form data object
|
||||||
|
*
|
||||||
|
* @param {String} apiURI The URI to call in the API
|
||||||
|
* @param {FormData} data The form data object
|
||||||
|
* @param {Boolean} requireLoginTokens Specify if login tokens are required or not
|
||||||
|
* @param {Function} nextAction What to do next
|
||||||
|
*/
|
||||||
|
makeFormDatarequest: function(apiURI, data, requireLoginTokens, nextAction){
|
||||||
|
//Prepare the request URL
|
||||||
|
var requestURL = ComunicWeb.__config.apiURL + apiURI;
|
||||||
|
|
||||||
|
//Add API service tokens
|
||||||
|
data.append('serviceName', ComunicWeb.__config.apiServiceName);
|
||||||
|
data.append('serviceToken', ComunicWeb.__config.apiServiceToken);
|
||||||
|
|
||||||
|
//Add login tokens to params if required
|
||||||
|
if(requireLoginTokens){
|
||||||
|
//Get login tokens
|
||||||
|
tokens = ComunicWeb.user.loginTokens.getLoginTokens();
|
||||||
|
|
||||||
|
if(tokens){
|
||||||
|
//Add tokens
|
||||||
|
data.append('userToken1', tokens.token1);
|
||||||
|
data.append('userToken2', tokens.token2);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//Create request
|
||||||
|
var apiXHR = new XMLHttpRequest();
|
||||||
|
apiXHR.open("POST", requestURL);
|
||||||
|
|
||||||
|
//Prepare request response
|
||||||
|
apiXHR.onreadystatechange = function(){
|
||||||
|
ComunicWeb.common.api._on_state_change(requestURL, apiXHR, nextAction);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Submit request
|
||||||
|
apiXHR.send(data);
|
||||||
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handle xhr request chnages
|
* Handle xhr request chnages
|
||||||
*
|
*
|
||||||
|
* @param {string} requestURL The URL of the request
|
||||||
* @param {XMLHttpRequest} apiXHR The request element
|
* @param {XMLHttpRequest} apiXHR The request element
|
||||||
* @param {Function} nextAction What to do once the request is done
|
* @param {Function} nextAction What to do once the request is done
|
||||||
*/
|
*/
|
||||||
_on_state_change: function(apiXHR, nextAction){
|
_on_state_change: function(requestURL, apiXHR, nextAction){
|
||||||
|
|
||||||
//We continue only if request is terminated
|
//We continue only if request is terminated
|
||||||
if(apiXHR.readyState == 4){
|
if(apiXHR.readyState == 4){
|
||||||
|
@ -445,8 +445,22 @@ ComunicWeb.components.posts.form = {
|
|||||||
var visibilityLevel = visibility_choices_contener.querySelector("input:checked").value;
|
var visibilityLevel = visibility_choices_contener.querySelector("input:checked").value;
|
||||||
datas.append("visibility", visibilityLevel);
|
datas.append("visibility", visibilityLevel);
|
||||||
|
|
||||||
|
//Lock the send button
|
||||||
|
sendButton.disabled = true;
|
||||||
|
|
||||||
//Try to perform the request
|
//Try to perform the request
|
||||||
|
ComunicWeb.components.posts.interface.send_post(kind, id, datas, function(result){
|
||||||
|
|
||||||
|
//Check for errors
|
||||||
|
if(result.error){
|
||||||
|
ComunicWeb.common.notificationSystem.showNotification("An error occured while trying to send a new post !", "danger");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Else
|
||||||
|
//DEBUG - Temporary behaviour
|
||||||
|
sendButton.disabled = false;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -25,4 +25,26 @@ ComunicWeb.components.posts.interface = {
|
|||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Send a new post
|
||||||
|
*
|
||||||
|
* @param {string} kind The kind of page
|
||||||
|
* @param {string} id The ID of the kind of page
|
||||||
|
* @param {FormData} data The data of the new post
|
||||||
|
* @param {function} callback The function to call once the post is posted
|
||||||
|
*/
|
||||||
|
send_post: function(kind, id, data, callback){
|
||||||
|
|
||||||
|
//Prepare the request
|
||||||
|
var apiURI = "posts/create";
|
||||||
|
|
||||||
|
//Append the kind of post to the request
|
||||||
|
data.append("kind-page", kind);
|
||||||
|
data.append("kind-id", id);
|
||||||
|
|
||||||
|
//Perform the request
|
||||||
|
ComunicWeb.common.api.makeFormDatarequest(apiURI, data, true, callback);
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user