mirror of
				https://github.com/pierre42100/ComunicWeb
				synced 2025-11-03 19:54:14 +00:00 
			
		
		
		
	Can send create post request on the API
This commit is contained in:
		@@ -53,7 +53,7 @@ ComunicWeb.common.api = {
 | 
			
		||||
 | 
			
		||||
        //Prepare request response
 | 
			
		||||
        apiXHR.onreadystatechange = function(){
 | 
			
		||||
            ComunicWeb.common.api._on_state_change(apiXHR, nextAction);
 | 
			
		||||
            ComunicWeb.common.api._on_state_change(requestURL, apiXHR, nextAction);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        //Set request headers
 | 
			
		||||
@@ -63,13 +63,56 @@ ComunicWeb.common.api = {
 | 
			
		||||
        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
 | 
			
		||||
     * 
 | 
			
		||||
     * @param {string} requestURL The URL of the request
 | 
			
		||||
     * @param {XMLHttpRequest} apiXHR The request element
 | 
			
		||||
     * @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
 | 
			
		||||
        if(apiXHR.readyState == 4){
 | 
			
		||||
 
 | 
			
		||||
@@ -445,8 +445,22 @@ ComunicWeb.components.posts.form = {
 | 
			
		||||
			var visibilityLevel = visibility_choices_contener.querySelector("input:checked").value;
 | 
			
		||||
			datas.append("visibility", visibilityLevel);
 | 
			
		||||
 | 
			
		||||
			//Try to perform the request
 | 
			
		||||
			//Lock the send button
 | 
			
		||||
			sendButton.disabled = true;
 | 
			
		||||
 | 
			
		||||
			//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);
 | 
			
		||||
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user