Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
7475f9d1
G
gitlab-foss
项目概览
李少辉-开发者
/
gitlab-foss
通知
15
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
gitlab-foss
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
7475f9d1
编写于
6月 30, 2016
作者:
Z
Z.J. van de Weg
提交者:
Fatih Acet
9月 19, 2016
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
API support for Award Emoji on Snippets
上级
25004cbc
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
71 addition
and
16 deletion
+71
-16
CHANGELOG
CHANGELOG
+1
-1
lib/api/award_emoji.rb
lib/api/award_emoji.rb
+20
-10
spec/requests/api/award_emoji_spec.rb
spec/requests/api/award_emoji_spec.rb
+50
-5
未找到文件。
CHANGELOG
浏览文件 @
7475f9d1
...
...
@@ -281,6 +281,7 @@ v 8.11.0
- Clean up unused routes (Josef Strzibny)
- Fix issue on empty project to allow developers to only push to protected branches if given permission
- API: Add enpoints for pipelines
- Emoji can be awarded on Snippets !4456
- Add green outline to New Branch button. !5447 (winniehell)
- Optimize generating of cache keys for issues and notes
- Fix repository push email formatting in Outlook
...
...
@@ -508,7 +509,6 @@ v 8.10.0
- Updated project header design
- Issuable collapsed assignee tooltip is now the users name
- Fix compare view not changing code view rendering style
- Emoji can be awarded on Snippets !4456
- Exclude email check from the standard health check
- Updated layout for Projects, Groups, Users on Admin area. !4424
- Fix changing issue state columns in milestone view
...
...
lib/api/award_emoji.rb
浏览文件 @
7475f9d1
...
...
@@ -87,9 +87,7 @@ module API
helpers
do
def
can_read_awardable?
ability
=
"read_
#{
awardable
.
class
.
to_s
.
underscore
}
"
.
to_sym
can?
(
current_user
,
ability
,
awardable
)
can?
(
current_user
,
ability_name
(
awardable
),
awardable
)
end
def
can_award_awardable?
...
...
@@ -100,18 +98,30 @@ module API
@awardable
||=
begin
if
params
.
include?
(
:note_id
)
noteable
.
notes
.
find
(
params
[
:note_id
])
note_id
=
params
[
:note_id
]
params
.
delete
(
:note_id
)
awardable
.
notes
.
find
(
note_id
)
elsif
params
.
include?
(
:issue_id
)
user_project
.
issues
.
find
(
params
[
:issue_id
])
elsif
params
.
include?
(
:merge_request_id
)
user_project
.
merge_requests
.
find
(
params
[
:merge_request_id
])
else
noteable
user_project
.
snippets
.
find
(
params
[
:snippet_id
])
end
end
end
def
noteable
if
params
.
include?
(
:issue_id
)
user_project
.
issues
.
find
(
params
[
:issue_id
])
else
user_project
.
merge_requests
.
find
(
params
[
:merge_request_id
])
def
ability_name
(
awardable
)
case
awardable
when
Note
ability_name
(
awardable
.
noteable
)
when
Snippet
:read_project_snippet
when
MergeRequest
:read_merge_request
when
Issue
:read_issue
end
end
end
...
...
spec/requests/api/award_emoji_spec.rb
浏览文件 @
7475f9d1
...
...
@@ -4,7 +4,7 @@ describe API::API, api: true do
include
ApiHelpers
let
(
:user
)
{
create
(
:user
)
}
let!
(
:project
)
{
create
(
:project
)
}
let
(
:issue
)
{
create
(
:issue
,
project:
project
)
}
let
(
:issue
)
{
create
(
:issue
,
project:
project
,
author:
user
)
}
let!
(
:award_emoji
)
{
create
(
:award_emoji
,
awardable:
issue
,
user:
user
)
}
let!
(
:merge_request
)
{
create
(
:merge_request
,
source_project:
project
,
target_project:
project
)
}
let!
(
:downvote
)
{
create
(
:award_emoji
,
:downvote
,
awardable:
merge_request
,
user:
user
)
}
...
...
@@ -14,9 +14,6 @@ describe API::API, api: true do
describe
"GET /projects/:id/awardable/:awardable_id/award_emoji"
do
context
'on an issue'
do
let
(
:issue
)
{
create
(
:issue
,
project:
project
,
author:
user
)
}
let!
(
:award_emoji
)
{
create
(
:award_emoji
,
awardable:
issue
,
user:
user
)
}
it
"returns an array of award_emoji"
do
get
api
(
"/projects/
#{
project
.
id
}
/issues/
#{
issue
.
id
}
/award_emoji"
,
user
)
...
...
@@ -43,7 +40,16 @@ describe API::API, api: true do
end
context
'on a snippet'
do
it
'returns the awarded '
let
(
:snippet
)
{
create
(
:project_snippet
,
:public
,
project:
project
)
}
let!
(
:award
)
{
create
(
:award_emoji
,
awardable:
snippet
)
}
it
'returns the awarded emoji'
do
get
api
(
"/projects/
#{
project
.
id
}
/snippets/
#{
snippet
.
id
}
/award_emoji"
,
user
)
expect
(
response
).
to
have_http_status
(
200
)
expect
(
json_response
).
to
be_an
Array
expect
(
json_response
.
first
[
'name'
]).
to
eq
(
award
.
name
)
end
end
context
'when the user has no access'
do
...
...
@@ -98,6 +104,20 @@ describe API::API, api: true do
end
end
context
'on a snippet'
do
let
(
:snippet
)
{
create
(
:project_snippet
,
:public
,
project:
project
)
}
let!
(
:award
)
{
create
(
:award_emoji
,
awardable:
snippet
)
}
it
'returns the awarded emoji'
do
get
api
(
"/projects/
#{
project
.
id
}
/snippets/
#{
snippet
.
id
}
/award_emoji/
#{
award
.
id
}
"
,
user
)
expect
(
response
).
to
have_http_status
(
200
)
expect
(
json_response
[
'name'
]).
to
eq
(
award
.
name
)
expect
(
json_response
[
'awardable_id'
]).
to
eq
(
snippet
.
id
)
expect
(
json_response
[
'awardable_type'
]).
to
eq
(
"Snippet"
)
end
end
context
'when the user has no access'
do
it
'returns a status code 404'
do
user1
=
create
(
:user
)
...
...
@@ -167,6 +187,18 @@ describe API::API, api: true do
end
end
end
context
'on a snippet'
do
it
'creates a new award emoji'
do
snippet
=
create
(
:project_snippet
,
:public
,
project:
project
)
post
api
(
"/projects/
#{
project
.
id
}
/snippets/
#{
snippet
.
id
}
/award_emoji"
,
user
),
name:
'blowfish'
expect
(
response
).
to
have_http_status
(
201
)
expect
(
json_response
[
'name'
]).
to
eq
(
'blowfish'
)
expect
(
json_response
[
'user'
][
'username'
]).
to
eq
(
user
.
username
)
end
end
end
describe
"POST /projects/:id/awardable/:awardable_id/notes/:note_id/award_emoji"
do
...
...
@@ -236,6 +268,19 @@ describe API::API, api: true do
expect
(
response
).
to
have_http_status
(
404
)
end
end
context
'when the awardable is a Snippet'
do
let
(
:snippet
)
{
create
(
:project_snippet
,
:public
,
project:
project
)
}
let!
(
:award
)
{
create
(
:award_emoji
,
awardable:
snippet
,
user:
user
)
}
it
'deletes the award'
do
expect
do
delete
api
(
"/projects/
#{
project
.
id
}
/snippets/
#{
snippet
.
id
}
/award_emoji/
#{
award
.
id
}
"
,
user
)
end
.
to
change
{
snippet
.
award_emoji
.
count
}.
from
(
1
).
to
(
0
)
expect
(
response
).
to
have_http_status
(
200
)
end
end
end
describe
'DELETE /projects/:id/awardable/:awardable_id/award_emoji/:award_emoji_id'
do
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录