Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
heptapod
heptapod
Commits
ffa73739f70a
Commit
ffa73739
authored
Oct 19, 2016
by
Douglas Barbosa Alexandre
Browse files
Rename Labels::CreateService to Labels::FindOrCreateService
parent
f53cc60ac39d
Changes
12
Hide whitespace changes
Inline
Side-by-side
app/models/project.rb
View file @
ffa73739
...
...
@@ -734,7 +734,7 @@
def
create_labels
Label
.
templates
.
each
do
|
label
|
params
=
label
.
attributes
.
except
(
'id'
,
'template'
,
'created_at'
,
'updated_at'
)
Labels
::
CreateService
.
new
(
owner
,
self
,
params
).
execute
Labels
::
FindOr
CreateService
.
new
(
owner
,
self
,
params
).
execute
end
end
...
...
app/services/boards/lists/generate_service.rb
View file @
ffa73739
...
...
@@ -19,7 +19,7 @@
end
def
find_or_create_label
(
params
)
::
Labels
::
CreateService
.
new
(
current_user
,
project
,
params
).
execute
::
Labels
::
FindOr
CreateService
.
new
(
current_user
,
project
,
params
).
execute
end
def
label_params
...
...
app/services/issuable_base_service.rb
View file @
ffa73739
...
...
@@ -88,7 +88,7 @@
return
unless
labels
params
[
:label_ids
]
=
labels
.
split
(
','
).
map
do
|
label_name
|
service
=
Labels
::
CreateService
.
new
(
current_user
,
project
,
title:
label_name
.
strip
)
service
=
Labels
::
FindOr
CreateService
.
new
(
current_user
,
project
,
title:
label_name
.
strip
)
label
=
service
.
execute
label
.
id
...
...
app/services/labels/create_service.rb
deleted
100644 → 0
View file @
f53cc60a
module
Labels
class
CreateService
def
initialize
(
current_user
,
project
,
params
=
{})
@current_user
=
current_user
@group
=
project
.
group
@project
=
project
@params
=
params
.
dup
end
def
execute
find_or_create_label
end
private
attr_reader
:current_user
,
:group
,
:project
,
:params
def
available_labels
@available_labels
||=
LabelsFinder
.
new
(
current_user
,
project_id:
project
.
id
).
execute
end
def
find_or_create_label
new_label
=
available_labels
.
find_by
(
title:
title
)
new_label
||=
project
.
labels
.
create
(
params
)
new_label
end
def
title
params
[
:title
]
||
params
[
:name
]
end
end
end
app/services/labels/find_or_create_service.rb
0 → 100644
View file @
ffa73739
module
Labels
class
FindOrCreateService
def
initialize
(
current_user
,
project
,
params
=
{})
@current_user
=
current_user
@group
=
project
.
group
@project
=
project
@params
=
params
.
dup
end
def
execute
find_or_create_label
end
private
attr_reader
:current_user
,
:group
,
:project
,
:params
def
available_labels
@available_labels
||=
LabelsFinder
.
new
(
current_user
,
project_id:
project
.
id
).
execute
end
def
find_or_create_label
new_label
=
available_labels
.
find_by
(
title:
title
)
new_label
||=
project
.
labels
.
create
(
params
)
new_label
end
def
title
params
[
:title
]
||
params
[
:name
]
end
end
end
app/services/labels/transfer_service.rb
View file @
ffa73739
...
...
@@ -43,7 +43,7 @@
def
find_or_create_label!
(
label
)
params
=
label
.
attributes
.
slice
(
'title'
,
'description'
,
'color'
)
new_label
=
CreateService
.
new
(
current_user
,
project
,
params
).
execute
new_label
=
FindOr
CreateService
.
new
(
current_user
,
project
,
params
).
execute
new_label
.
id
end
...
...
lib/gitlab/fogbugz_import/importer.rb
View file @
ffa73739
...
...
@@ -75,7 +75,7 @@
def
create_label
(
name
)
params
=
{
title:
name
,
color:
nice_label_color
(
name
)
}
::
Labels
::
CreateService
.
new
(
project
.
owner
,
project
,
params
).
execute
::
Labels
::
FindOr
CreateService
.
new
(
project
.
owner
,
project
,
params
).
execute
end
def
user_info
(
person_id
)
...
...
lib/gitlab/github_import/label_formatter.rb
View file @
ffa73739
...
...
@@ -15,7 +15,7 @@
def
create!
params
=
attributes
.
except
(
:project
)
service
=
::
Labels
::
CreateService
.
new
(
project
.
owner
,
project
,
params
)
service
=
::
Labels
::
FindOr
CreateService
.
new
(
project
.
owner
,
project
,
params
)
label
=
service
.
execute
raise
ActiveRecord
::
RecordInvalid
.
new
(
label
)
unless
label
.
persisted?
...
...
lib/gitlab/google_code_import/importer.rb
View file @
ffa73739
...
...
@@ -234,7 +234,7 @@
def
create_label
(
name
)
params
=
{
name:
name
,
color:
nice_label_color
(
name
)
}
::
Labels
::
CreateService
.
new
(
project
.
owner
,
project
,
params
).
execute
::
Labels
::
FindOr
CreateService
.
new
(
project
.
owner
,
project
,
params
).
execute
end
def
format_content
(
raw_content
)
...
...
lib/gitlab/issues_labels.rb
View file @
ffa73739
...
...
@@ -19,7 +19,7 @@
]
labels
.
each
do
|
params
|
::
Labels
::
CreateService
.
new
(
project
.
owner
,
project
).
execute
(
params
)
::
Labels
::
FindOr
CreateService
.
new
(
project
.
owner
,
project
).
execute
(
params
)
end
end
end
...
...
spec/services/labels/create_service_spec.rb
deleted
100644 → 0
View file @
f53cc60a
require
'spec_helper'
describe
Labels
::
CreateService
,
services:
true
do
describe
'#execute'
do
let
(
:user
)
{
create
(
:user
)
}
let
(
:group
)
{
create
(
:group
)
}
let
(
:project
)
{
create
(
:project
,
namespace:
group
)
}
let
(
:params
)
do
{
title:
'Security'
,
description:
'Security related stuff.'
,
color:
'#FF0000'
}
end
subject
(
:service
)
{
described_class
.
new
(
user
,
project
,
params
)
}
before
do
project
.
team
<<
[
user
,
:developer
]
end
context
'when label does not exist at group level'
do
it
'creates a new label at project level'
do
expect
{
service
.
execute
}.
to
change
(
project
.
labels
,
:count
).
by
(
1
)
end
end
context
'when label exists at group level'
do
it
'returns the group label'
do
group_label
=
create
(
:group_label
,
group:
group
,
title:
'Security'
)
expect
(
service
.
execute
).
to
eq
group_label
end
end
context
'when label does not exist at group level'
do
it
'creates a new label at project leve'
do
expect
{
service
.
execute
}.
to
change
(
project
.
labels
,
:count
).
by
(
1
)
end
end
context
'when label exists at project level'
do
it
'returns the project label'
do
project_label
=
create
(
:label
,
project:
project
,
title:
'Security'
)
expect
(
service
.
execute
).
to
eq
project_label
end
end
end
end
spec/services/labels/find_or_create_service_spec.rb
0 → 100644
View file @
ffa73739
require
'spec_helper'
describe
Labels
::
FindOrCreateService
,
services:
true
do
describe
'#execute'
do
let
(
:user
)
{
create
(
:user
)
}
let
(
:group
)
{
create
(
:group
)
}
let
(
:project
)
{
create
(
:project
,
namespace:
group
)
}
let
(
:params
)
do
{
title:
'Security'
,
description:
'Security related stuff.'
,
color:
'#FF0000'
}
end
subject
(
:service
)
{
described_class
.
new
(
user
,
project
,
params
)
}
before
do
project
.
team
<<
[
user
,
:developer
]
end
context
'when label does not exist at group level'
do
it
'creates a new label at project level'
do
expect
{
service
.
execute
}.
to
change
(
project
.
labels
,
:count
).
by
(
1
)
end
end
context
'when label exists at group level'
do
it
'returns the group label'
do
group_label
=
create
(
:group_label
,
group:
group
,
title:
'Security'
)
expect
(
service
.
execute
).
to
eq
group_label
end
end
context
'when label does not exist at group level'
do
it
'creates a new label at project leve'
do
expect
{
service
.
execute
}.
to
change
(
project
.
labels
,
:count
).
by
(
1
)
end
end
context
'when label exists at project level'
do
it
'returns the project label'
do
project_label
=
create
(
:label
,
project:
project
,
title:
'Security'
)
expect
(
service
.
execute
).
to
eq
project_label
end
end
end
end
Write
Preview
Supports
Markdown
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