diff --git a/routes/gitlab.js b/routes/gitlab.js index 67b300a029bb75e8677cf7babede283e9983a3db..49e89807f7b1ce0a714221a6b7b0c363bd276f56 100644 --- a/routes/gitlab.js +++ b/routes/gitlab.js @@ -27,15 +27,14 @@ var gitlab = { callback(res) }) }, - // todo: fixing callback - createNewPages: function(newPagesdata, callback) { + createNewPages: function(newPagesData, newLogoFile, callback) { let data = new formData() - data.append('avatar', fs.createReadStream(newPagesdata.avatar)) + data.append('avatar', fs.createReadStream(newLogoFile)) let dataConfig = { method: 'post', - url: 'https://transfer.hft-stuttgart.de/gitlab/api/v4/projects/user/'+newPagesdata.gitlabUserId+ - '?name='+newPagesdata.name+'&description='+newPagesdata.description+'&tag_list=website'+ + url: 'https://transfer.hft-stuttgart.de/gitlab/api/v4/projects/user/'+newPagesData.getOwnerGitlabId()+ + '?name='+newPagesData.getName()+'&description='+newPagesData.getDesc()+'&tag_list=website'+ '&use_custom_template=true&template_name=page_basic', headers: { 'Authorization': 'Bearer '+config.gitlab.token_readWriteProjects, @@ -45,13 +44,52 @@ var gitlab = { } axios(dataConfig) - .then(function (response) { - callback(response.data) + .then(response => { + let res = { + error: false, + data: response.data} + callback(res) + }) + .catch(err => { + console.log(err) + let res = { + error: true, + data: err.response.data} + callback(res) + }) + }, + updateProject: function(updatedProjectData, newLogoFile, callback){ + console.log(updatedProjectData) + let data = new formData() + if (newLogoFile) { + data.append('avatar', fs.createReadStream(newLogoFile)) + } + + let dataConfig = { + method: 'put', + url: 'https://transfer.hft-stuttgart.de/gitlab/api/v4/projects/'+updatedProjectData.getId()+ + '?name='+updatedProjectData.getName()+'&description='+updatedProjectData.getDesc(), + headers: { + 'Authorization': 'Bearer '+config.gitlab.token_readWriteProjects, + ...data.getHeaders() + }, + data : data + } + + axios(dataConfig) + .then(response => { + let res = { + error: false, + data: response.data} + callback(res) + }) + .catch(err => { + console.log(err) + let res = { + error: true, + data: err.response.data} + callback(res) }) - .catch(function (err) { - if(err) - callback(err.response.data) - }) }, getUserProjects: function(gitlabUserId, callback) { axios.get('https://transfer.hft-stuttgart.de/gitlab/api/v4/users/'+gitlabUserId+'/projects?private_token='+ @@ -65,7 +103,7 @@ var gitlab = { .catch(err => { let res = { error: true, - data: err} + data: err.message} callback(res) }) },