Service model and service hook

This commit is contained in:
Dmitriy Zaporozhets 2012-11-19 21:14:05 +03:00
parent be1dc5544a
commit c3b074acab
7 changed files with 97 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

21
app/models/service.rb Normal file
View 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

View 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

View 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

View file

@ -0,0 +1,5 @@
class AddServiceIdToWebHook < ActiveRecord::Migration
def change
add_column :web_hooks, :service_id, :integer, null: true
end
end

View 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

View 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