Service model and service hook
This commit is contained in:
parent
be1dc5544a
commit
c3b074acab
7 changed files with 97 additions and 0 deletions
BIN
app/assets/images/service-gitlab-ci.png
Normal file
BIN
app/assets/images/service-gitlab-ci.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.7 KiB |
21
app/models/service.rb
Normal file
21
app/models/service.rb
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
# == Schema Information
|
||||||
|
#
|
||||||
|
# Table name: services
|
||||||
|
#
|
||||||
|
# id :integer not null, primary key
|
||||||
|
# type :string(255)
|
||||||
|
# title :string(255)
|
||||||
|
# token :string(255)
|
||||||
|
# project_id :integer not null
|
||||||
|
# created_at :datetime not null
|
||||||
|
# updated_at :datetime not null
|
||||||
|
#
|
||||||
|
|
||||||
|
class Service < ActiveRecord::Base
|
||||||
|
attr_accessible :title, :token, :type
|
||||||
|
|
||||||
|
belongs_to :project
|
||||||
|
has_one :service_hook
|
||||||
|
|
||||||
|
validates :project_id, presence: true
|
||||||
|
end
|
15
app/models/service_hook.rb
Normal file
15
app/models/service_hook.rb
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
# == Schema Information
|
||||||
|
#
|
||||||
|
# Table name: web_hooks
|
||||||
|
#
|
||||||
|
# id :integer not null, primary key
|
||||||
|
# url :string(255)
|
||||||
|
# project_id :integer
|
||||||
|
# created_at :datetime not null
|
||||||
|
# updated_at :datetime not null
|
||||||
|
# type :string(255) default("ProjectHook")
|
||||||
|
#
|
||||||
|
|
||||||
|
class ServiceHook < WebHook
|
||||||
|
belongs_to :service
|
||||||
|
end
|
12
db/migrate/20121119170638_create_services.rb
Normal file
12
db/migrate/20121119170638_create_services.rb
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
class CreateServices < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
create_table :services do |t|
|
||||||
|
t.string :type
|
||||||
|
t.string :title
|
||||||
|
t.string :token
|
||||||
|
t.integer :project_id, null: false
|
||||||
|
|
||||||
|
t.timestamps
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
5
db/migrate/20121120051432_add_service_id_to_web_hook.rb
Normal file
5
db/migrate/20121120051432_add_service_id_to_web_hook.rb
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
class AddServiceIdToWebHook < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
add_column :web_hooks, :service_id, :integer, null: true
|
||||||
|
end
|
||||||
|
end
|
19
spec/models/service_hook_spec.rb
Normal file
19
spec/models/service_hook_spec.rb
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
# == Schema Information
|
||||||
|
#
|
||||||
|
# Table name: web_hooks
|
||||||
|
#
|
||||||
|
# id :integer not null, primary key
|
||||||
|
# url :string(255)
|
||||||
|
# project_id :integer
|
||||||
|
# created_at :datetime not null
|
||||||
|
# updated_at :datetime not null
|
||||||
|
# type :string(255) default("ProjectHook")
|
||||||
|
#
|
||||||
|
|
||||||
|
require "spec_helper"
|
||||||
|
|
||||||
|
describe ServiceHook do
|
||||||
|
describe "Associations" do
|
||||||
|
it { should belong_to :service }
|
||||||
|
end
|
||||||
|
end
|
25
spec/models/service_spec.rb
Normal file
25
spec/models/service_spec.rb
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
# == Schema Information
|
||||||
|
#
|
||||||
|
# Table name: services
|
||||||
|
#
|
||||||
|
# id :integer not null, primary key
|
||||||
|
# type :string(255)
|
||||||
|
# title :string(255)
|
||||||
|
# token :string(255)
|
||||||
|
# project_id :integer not null
|
||||||
|
# created_at :datetime not null
|
||||||
|
# updated_at :datetime not null
|
||||||
|
#
|
||||||
|
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe Service do
|
||||||
|
describe "Associations" do
|
||||||
|
it { should belong_to :project }
|
||||||
|
it { should have_one :service_hook }
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "Mass assignment" do
|
||||||
|
it { should_not allow_mass_assignment_of(:project_id) }
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in a new issue