Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
9af1773f
Commit
9af1773f
authored
Jan 25, 2018
by
Phil Hughes
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Converted API.js to axios
parent
364395b3
Changes
5
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
102 additions
and
200 deletions
+102
-200
app/assets/javascripts/api.js
app/assets/javascripts/api.js
+38
-77
app/assets/javascripts/ide/stores/actions.js
app/assets/javascripts/ide/stores/actions.js
+3
-3
app/assets/javascripts/ide/stores/actions/branch.js
app/assets/javascripts/ide/stores/actions/branch.js
+1
-1
app/assets/javascripts/lib/utils/users_cache.js
app/assets/javascripts/lib/utils/users_cache.js
+4
-4
spec/javascripts/api_spec.js
spec/javascripts/api_spec.js
+56
-115
No files found.
app/assets/javascripts/api.js
View file @
9af1773f
import
$
from
'
jquery
'
;
import
axios
from
'
./lib/utils/axios_utils
'
;
import
axios
from
'
./lib/utils/axios_utils
'
;
const
Api
=
{
const
Api
=
{
...
@@ -23,38 +22,32 @@ const Api = {
...
@@ -23,38 +22,32 @@ const Api = {
group
(
groupId
,
callback
)
{
group
(
groupId
,
callback
)
{
const
url
=
Api
.
buildUrl
(
Api
.
groupPath
)
const
url
=
Api
.
buildUrl
(
Api
.
groupPath
)
.
replace
(
'
:id
'
,
groupId
);
.
replace
(
'
:id
'
,
groupId
);
return
$
.
ajax
({
return
axios
.
get
(
url
)
url
,
.
then
(({
data
})
=>
callback
(
data
));
dataType
:
'
json
'
,
})
.
done
(
group
=>
callback
(
group
));
},
},
// Return groups list. Filtered by query
// Return groups list. Filtered by query
groups
(
query
,
options
,
callback
)
{
groups
(
query
,
options
,
callback
)
{
const
url
=
Api
.
buildUrl
(
Api
.
groupsPath
);
const
url
=
Api
.
buildUrl
(
Api
.
groupsPath
);
return
$
.
ajax
({
return
axios
.
get
(
url
,
{
url
,
params
:
Object
.
assign
({
data
:
Object
.
assign
({
search
:
query
,
search
:
query
,
per_page
:
20
,
per_page
:
20
,
},
options
),
},
options
),
dataType
:
'
json
'
,
})
})
.
done
(
groups
=>
callback
(
groups
));
.
then
(({
data
})
=>
callback
(
data
));
},
},
// Return namespaces list. Filtered by query
// Return namespaces list. Filtered by query
namespaces
(
query
,
callback
)
{
namespaces
(
query
,
callback
)
{
const
url
=
Api
.
buildUrl
(
Api
.
namespacesPath
);
const
url
=
Api
.
buildUrl
(
Api
.
namespacesPath
);
return
$
.
ajax
({
return
axios
.
get
(
url
,
{
url
,
params
:
{
data
:
{
search
:
query
,
search
:
query
,
per_page
:
20
,
per_page
:
20
,
},
},
dataType
:
'
json
'
,
})
}).
done
(
namespaces
=>
callback
(
namespaces
));
.
then
(({
data
})
=>
callback
(
data
));
},
},
// Return projects list. Filtered by query
// Return projects list. Filtered by query
...
@@ -70,12 +63,10 @@ const Api = {
...
@@ -70,12 +63,10 @@ const Api = {
defaults
.
membership
=
true
;
defaults
.
membership
=
true
;
}
}
return
$
.
ajax
({
return
axios
.
get
(
url
,
{
url
,
params
:
Object
.
assign
(
defaults
,
options
),
data
:
Object
.
assign
(
defaults
,
options
),
dataType
:
'
json
'
,
})
})
.
done
(
projects
=>
callback
(
projects
));
.
then
(({
data
})
=>
callback
(
data
));
},
},
// Return single project
// Return single project
...
@@ -97,41 +88,34 @@ const Api = {
...
@@ -97,41 +88,34 @@ const Api = {
url
=
Api
.
buildUrl
(
Api
.
groupLabelsPath
).
replace
(
'
:namespace_path
'
,
namespacePath
);
url
=
Api
.
buildUrl
(
Api
.
groupLabelsPath
).
replace
(
'
:namespace_path
'
,
namespacePath
);
}
}
return
$
.
ajax
({
return
axios
.
post
(
url
,
{
url
,
label
:
data
,
type
:
'
POST
'
,
data
:
{
label
:
data
},
dataType
:
'
json
'
,
})
})
.
done
(
label
=>
callback
(
label
))
.
then
(
res
=>
callback
(
res
.
data
))
.
fail
(
message
=>
callback
(
message
.
responseJSON
));
.
catch
(
e
=>
callback
(
e
.
response
.
data
));
},
},
// Return group projects list. Filtered by query
// Return group projects list. Filtered by query
groupProjects
(
groupId
,
query
,
callback
)
{
groupProjects
(
groupId
,
query
,
callback
)
{
const
url
=
Api
.
buildUrl
(
Api
.
groupProjectsPath
)
const
url
=
Api
.
buildUrl
(
Api
.
groupProjectsPath
)
.
replace
(
'
:id
'
,
groupId
);
.
replace
(
'
:id
'
,
groupId
);
return
$
.
ajax
({
return
axios
.
get
(
url
,
{
url
,
params
:
{
data
:
{
search
:
query
,
search
:
query
,
per_page
:
20
,
per_page
:
20
,
},
},
dataType
:
'
json
'
,
})
})
.
done
(
projects
=>
callback
(
projects
));
.
then
(({
data
})
=>
callback
(
data
));
},
},
commitMultiple
(
id
,
data
)
{
commitMultiple
(
id
,
data
)
{
// see https://docs.gitlab.com/ce/api/commits.html#create-a-commit-with-multiple-files-and-actions
// see https://docs.gitlab.com/ce/api/commits.html#create-a-commit-with-multiple-files-and-actions
const
url
=
Api
.
buildUrl
(
Api
.
commitPath
)
const
url
=
Api
.
buildUrl
(
Api
.
commitPath
)
.
replace
(
'
:id
'
,
encodeURIComponent
(
id
));
.
replace
(
'
:id
'
,
encodeURIComponent
(
id
));
return
this
.
wrapAjaxCall
({
return
axios
.
post
(
url
,
JSON
.
stringify
(
data
),
{
url
,
headers
:
{
type
:
'
POST
'
,
'
Content-Type
'
:
'
application/json; charset=utf-8
'
,
contentType
:
'
application/json; charset=utf-8
'
,
},
data
:
JSON
.
stringify
(
data
),
dataType
:
'
json
'
,
});
});
},
},
...
@@ -140,40 +124,37 @@ const Api = {
...
@@ -140,40 +124,37 @@ const Api = {
.
replace
(
'
:id
'
,
encodeURIComponent
(
id
))
.
replace
(
'
:id
'
,
encodeURIComponent
(
id
))
.
replace
(
'
:branch
'
,
branch
);
.
replace
(
'
:branch
'
,
branch
);
return
this
.
wrapAjaxCall
({
return
axios
.
get
(
url
);
url
,
type
:
'
GET
'
,
contentType
:
'
application/json; charset=utf-8
'
,
dataType
:
'
json
'
,
});
},
},
// Return text for a specific license
// Return text for a specific license
licenseText
(
key
,
data
,
callback
)
{
licenseText
(
key
,
data
,
callback
)
{
const
url
=
Api
.
buildUrl
(
Api
.
licensePath
)
const
url
=
Api
.
buildUrl
(
Api
.
licensePath
)
.
replace
(
'
:key
'
,
key
);
.
replace
(
'
:key
'
,
key
);
return
$
.
ajax
({
return
axios
.
get
(
url
,
{
url
,
params
:
data
,
data
,
})
})
.
done
(
license
=>
callback
(
license
));
.
then
(
res
=>
callback
(
res
.
data
));
},
},
gitignoreText
(
key
,
callback
)
{
gitignoreText
(
key
,
callback
)
{
const
url
=
Api
.
buildUrl
(
Api
.
gitignorePath
)
const
url
=
Api
.
buildUrl
(
Api
.
gitignorePath
)
.
replace
(
'
:key
'
,
key
);
.
replace
(
'
:key
'
,
key
);
return
$
.
get
(
url
,
gitignore
=>
callback
(
gitignore
));
return
axios
.
get
(
url
)
.
then
(({
data
})
=>
callback
(
data
));
},
},
gitlabCiYml
(
key
,
callback
)
{
gitlabCiYml
(
key
,
callback
)
{
const
url
=
Api
.
buildUrl
(
Api
.
gitlabCiYmlPath
)
const
url
=
Api
.
buildUrl
(
Api
.
gitlabCiYmlPath
)
.
replace
(
'
:key
'
,
key
);
.
replace
(
'
:key
'
,
key
);
return
$
.
get
(
url
,
file
=>
callback
(
file
));
return
axios
.
get
(
url
)
.
then
(({
data
})
=>
callback
(
data
));
},
},
dockerfileYml
(
key
,
callback
)
{
dockerfileYml
(
key
,
callback
)
{
const
url
=
Api
.
buildUrl
(
Api
.
dockerfilePath
).
replace
(
'
:key
'
,
key
);
const
url
=
Api
.
buildUrl
(
Api
.
dockerfilePath
).
replace
(
'
:key
'
,
key
);
$
.
get
(
url
,
callback
);
return
axios
.
get
(
url
)
.
then
(({
data
})
=>
callback
(
data
));
},
},
issueTemplate
(
namespacePath
,
projectPath
,
key
,
type
,
callback
)
{
issueTemplate
(
namespacePath
,
projectPath
,
key
,
type
,
callback
)
{
...
@@ -182,23 +163,18 @@ const Api = {
...
@@ -182,23 +163,18 @@ const Api = {
.
replace
(
'
:type
'
,
type
)
.
replace
(
'
:type
'
,
type
)
.
replace
(
'
:project_path
'
,
projectPath
)
.
replace
(
'
:project_path
'
,
projectPath
)
.
replace
(
'
:namespace_path
'
,
namespacePath
);
.
replace
(
'
:namespace_path
'
,
namespacePath
);
$
.
ajax
({
return
axios
.
get
(
url
)
url
,
.
then
(({
data
})
=>
callback
(
null
,
data
))
dataType
:
'
json
'
,
.
catch
(
callback
);
})
.
done
(
file
=>
callback
(
null
,
file
))
.
fail
(
callback
);
},
},
users
(
query
,
options
)
{
users
(
query
,
options
)
{
const
url
=
Api
.
buildUrl
(
this
.
usersPath
);
const
url
=
Api
.
buildUrl
(
this
.
usersPath
);
return
Api
.
wrapAjaxCall
({
return
axios
.
get
(
url
,
{
url
,
params
:
Object
.
assign
({
data
:
Object
.
assign
({
search
:
query
,
search
:
query
,
per_page
:
20
,
per_page
:
20
,
},
options
),
},
options
),
dataType
:
'
json
'
,
});
});
},
},
...
@@ -209,21 +185,6 @@ const Api = {
...
@@ -209,21 +185,6 @@ const Api = {
}
}
return
urlRoot
+
url
.
replace
(
'
:version
'
,
gon
.
api_version
);
return
urlRoot
+
url
.
replace
(
'
:version
'
,
gon
.
api_version
);
},
},
wrapAjaxCall
(
options
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
// jQuery 2 is not Promises/A+ compatible (missing catch)
$
.
ajax
(
options
)
// eslint-disable-line promise/catch-or-return
.
then
(
data
=>
resolve
(
data
),
(
jqXHR
,
textStatus
,
errorThrown
)
=>
{
const
error
=
new
Error
(
`
${
options
.
url
}
:
${
errorThrown
}
`
);
error
.
textStatus
=
textStatus
;
if
(
jqXHR
&&
jqXHR
.
responseJSON
)
error
.
responseJSON
=
jqXHR
.
responseJSON
;
reject
(
error
);
},
);
});
},
};
};
export
default
Api
;
export
default
Api
;
app/assets/javascripts/ide/stores/actions.js
View file @
9af1773f
...
@@ -90,7 +90,7 @@ export const commitChanges = (
...
@@ -90,7 +90,7 @@ export const commitChanges = (
)
=>
)
=>
service
service
.
commit
(
state
.
currentProjectId
,
payload
)
.
commit
(
state
.
currentProjectId
,
payload
)
.
then
((
data
)
=>
{
.
then
((
{
data
}
)
=>
{
const
{
branch
}
=
payload
;
const
{
branch
}
=
payload
;
if
(
!
data
.
short_id
)
{
if
(
!
data
.
short_id
)
{
flash
(
data
.
message
,
'
alert
'
,
document
,
null
,
false
,
true
);
flash
(
data
.
message
,
'
alert
'
,
document
,
null
,
false
,
true
);
...
@@ -147,8 +147,8 @@ export const commitChanges = (
...
@@ -147,8 +147,8 @@ export const commitChanges = (
})
})
.
catch
((
err
)
=>
{
.
catch
((
err
)
=>
{
let
errMsg
=
'
Error committing changes. Please try again.
'
;
let
errMsg
=
'
Error committing changes. Please try again.
'
;
if
(
err
.
response
JSON
&&
err
.
responseJSON
.
message
)
{
if
(
err
.
response
.
data
&&
err
.
response
.
data
.
message
)
{
errMsg
+=
` (
${
stripHtml
(
err
.
response
JSON
.
message
)}
)`
;
errMsg
+=
` (
${
stripHtml
(
err
.
response
.
data
.
message
)}
)`
;
}
}
flash
(
errMsg
,
'
alert
'
,
document
,
null
,
false
,
true
);
flash
(
errMsg
,
'
alert
'
,
document
,
null
,
false
,
true
);
window
.
dispatchEvent
(
new
Event
(
'
resize
'
));
window
.
dispatchEvent
(
new
Event
(
'
resize
'
));
...
...
app/assets/javascripts/ide/stores/actions/branch.js
View file @
9af1773f
...
@@ -10,7 +10,7 @@ export const getBranchData = (
...
@@ -10,7 +10,7 @@ export const getBranchData = (
!
state
.
projects
[
`
${
projectId
}
`
].
branches
[
branchId
])
!
state
.
projects
[
`
${
projectId
}
`
].
branches
[
branchId
])
||
force
)
{
||
force
)
{
service
.
getBranchData
(
`
${
projectId
}
`
,
branchId
)
service
.
getBranchData
(
`
${
projectId
}
`
,
branchId
)
.
then
((
data
)
=>
{
.
then
((
{
data
}
)
=>
{
const
{
id
}
=
data
.
commit
;
const
{
id
}
=
data
.
commit
;
commit
(
types
.
SET_BRANCH
,
{
projectPath
:
`
${
projectId
}
`
,
branchName
:
branchId
,
branch
:
data
});
commit
(
types
.
SET_BRANCH
,
{
projectPath
:
`
${
projectId
}
`
,
branchName
:
branchId
,
branch
:
data
});
commit
(
types
.
SET_BRANCH_WORKING_REFERENCE
,
{
projectId
,
branchId
,
reference
:
id
});
commit
(
types
.
SET_BRANCH_WORKING_REFERENCE
,
{
projectId
,
branchId
,
reference
:
id
});
...
...
app/assets/javascripts/lib/utils/users_cache.js
View file @
9af1773f
...
@@ -8,16 +8,16 @@ class UsersCache extends Cache {
...
@@ -8,16 +8,16 @@ class UsersCache extends Cache {
}
}
return
Api
.
users
(
''
,
{
username
})
return
Api
.
users
(
''
,
{
username
})
.
then
((
users
)
=>
{
.
then
((
{
data
}
)
=>
{
if
(
!
users
.
length
)
{
if
(
!
data
.
length
)
{
throw
new
Error
(
`User "
${
username
}
" could not be found!`
);
throw
new
Error
(
`User "
${
username
}
" could not be found!`
);
}
}
if
(
users
.
length
>
1
)
{
if
(
data
.
length
>
1
)
{
throw
new
Error
(
`Expected username "
${
username
}
" to be unique!`
);
throw
new
Error
(
`Expected username "
${
username
}
" to be unique!`
);
}
}
const
user
=
users
[
0
];
const
user
=
data
[
0
];
this
.
internalStorage
[
username
]
=
user
;
this
.
internalStorage
[
username
]
=
user
;
return
user
;
return
user
;
});
});
...
...
spec/javascripts/api_spec.js
View file @
9af1773f
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment