Skip to content
Snippets Groups Projects
Commit 841e4fbd authored by Nihad Abbasov's avatar Nihad Abbasov
Browse files

cosmetical cleanup of models

parent 2a4359a5
No related branches found
No related tags found
1 merge request!1570models cleanup
Showing with 107 additions and 225 deletions
Loading
@@ -52,7 +52,6 @@ class Ability
Loading
@@ -52,7 +52,6 @@ class Ability
:admin_wiki :admin_wiki
] if project.master_access_for?(user) || project.owner == user ] if project.master_access_for?(user) || project.owner == user
   
rules.flatten rules.flatten
end end
   
Loading
Loading
Loading
@@ -4,24 +4,11 @@ class Commit
Loading
@@ -4,24 +4,11 @@ class Commit
include StaticModel include StaticModel
extend ActiveModel::Naming extend ActiveModel::Naming
   
attr_accessor :commit attr_accessor :commit, :head, :refs
attr_accessor :head
attr_accessor :refs delegate :message, :authored_date, :committed_date, :parents, :sha,
:date, :committer, :author, :message, :diffs, :tree, :id,
delegate :message, :to_patch, to: :commit
:authored_date,
:committed_date,
:parents,
:sha,
:date,
:committer,
:author,
:message,
:diffs,
:tree,
:id,
:to_patch,
to: :commit
   
class << self class << self
def find_or_first(repo, commit_id = nil, root_ref) def find_or_first(repo, commit_id = nil, root_ref)
Loading
@@ -30,6 +17,7 @@ class Commit
Loading
@@ -30,6 +17,7 @@ class Commit
else else
repo.commits(root_ref).first repo.commits(root_ref).first
end end
Commit.new(commit) if commit Commit.new(commit) if commit
end end
   
Loading
Loading
Loading
@@ -16,6 +16,10 @@ class Event < ActiveRecord::Base
Loading
@@ -16,6 +16,10 @@ class Event < ActiveRecord::Base
Joined = 8 # User joined project Joined = 8 # User joined project
Left = 9 # User left project Left = 9 # User left project
   
delegate :name, :email, to: :author, prefix: true, allow_nil: true
delegate :title, to: :issue, prefix: true, allow_nil: true
delegate :title, to: :merge_request, prefix: true, allow_nil: true
belongs_to :project belongs_to :project
belongs_to :target, polymorphic: true belongs_to :target, polymorphic: true
   
Loading
@@ -134,12 +138,8 @@ class Event < ActiveRecord::Base
Loading
@@ -134,12 +138,8 @@ class Event < ActiveRecord::Base
"opened" "opened"
end end
end end
delegate :name, :email, to: :author, prefix: true, allow_nil: true
delegate :title, to: :issue, prefix: true, allow_nil: true
delegate :title, to: :merge_request, prefix: true, allow_nil: true
end end
# == Schema Information # == Schema Information
# #
# Table name: events # Table name: events
Loading
@@ -155,4 +155,3 @@ end
Loading
@@ -155,4 +155,3 @@ end
# action :integer # action :integer
# author_id :integer # author_id :integer
# #
Loading
@@ -9,8 +9,7 @@ class Issue < ActiveRecord::Base
Loading
@@ -9,8 +9,7 @@ class Issue < ActiveRecord::Base
   
belongs_to :milestone belongs_to :milestone
   
validates :description, validates :description, length: { within: 0..2000 }
length: { within: 0..2000 }
   
def self.open_for(user) def self.open_for(user)
opened.assigned(user) opened.assigned(user)
Loading
@@ -32,6 +31,7 @@ class Issue < ActiveRecord::Base
Loading
@@ -32,6 +31,7 @@ class Issue < ActiveRecord::Base
closed_changed? && !closed closed_changed? && !closed
end end
end end
# == Schema Information # == Schema Information
# #
# Table name: issues # Table name: issues
Loading
@@ -49,4 +49,3 @@ end
Loading
@@ -49,4 +49,3 @@ end
# description :text # description :text
# milestone_id :integer # milestone_id :integer
# #
Loading
@@ -6,14 +6,10 @@ class Key < ActiveRecord::Base
Loading
@@ -6,14 +6,10 @@ class Key < ActiveRecord::Base
   
attr_accessible :key, :title attr_accessible :key, :title
   
validates :title, validates :title, presence: true, length: { within: 0..255 }
presence: true, validates :key, presence: true,
length: { within: 0..255 } length: { within: 0..5000 },
format: { :with => /ssh-.{3} / }
validates :key,
presence: true,
format: { :with => /ssh-.{3} / },
length: { within: 0..5000 }
   
before_save :set_identifier before_save :set_identifier
before_validation :strip_white_space before_validation :strip_white_space
Loading
@@ -34,7 +30,7 @@ class Key < ActiveRecord::Base
Loading
@@ -34,7 +30,7 @@ class Key < ActiveRecord::Base
   
def set_identifier def set_identifier
if is_deploy_key if is_deploy_key
self.identifier = "deploy_" + Digest::MD5.hexdigest(key) self.identifier = "deploy_#{Digest::MD5.hexdigest(key)}"
else else
self.identifier = "#{user.identifier}_#{Time.now.to_i}" self.identifier = "#{user.identifier}_#{Time.now.to_i}"
end end
Loading
@@ -57,6 +53,7 @@ class Key < ActiveRecord::Base
Loading
@@ -57,6 +53,7 @@ class Key < ActiveRecord::Base
Key.where(identifier: identifier).count == 0 Key.where(identifier: identifier).count == 0
end end
end end
# == Schema Information # == Schema Information
# #
# Table name: keys # Table name: keys
Loading
@@ -70,4 +67,3 @@ end
Loading
@@ -70,4 +67,3 @@ end
# identifier :string(255) # identifier :string(255)
# project_id :integer # project_id :integer
# #
Loading
@@ -18,8 +18,7 @@ class MergeRequest < ActiveRecord::Base
Loading
@@ -18,8 +18,7 @@ class MergeRequest < ActiveRecord::Base
   
attr_accessor :should_remove_source_branch attr_accessor :should_remove_source_branch
   
validates_presence_of :source_branch validates_presence_of :source_branch, :target_branch
validates_presence_of :target_branch
validate :validate_branches validate :validate_branches
   
def self.find_all_by_branch(branch_name) def self.find_all_by_branch(branch_name)
Loading
@@ -187,6 +186,7 @@ class MergeRequest < ActiveRecord::Base
Loading
@@ -187,6 +186,7 @@ class MergeRequest < ActiveRecord::Base
patch_path patch_path
end end
end end
# == Schema Information # == Schema Information
# #
# Table name: merge_requests # Table name: merge_requests
Loading
@@ -206,4 +206,3 @@ end
Loading
@@ -206,4 +206,3 @@ end
# merged :boolean default(FALSE), not null # merged :boolean default(FALSE), not null
# state :integer default(1), not null # state :integer default(1), not null
# #
# == Schema Information
#
# Table name: milestones
#
# id :integer not null, primary key
# title :string(255) not null
# project_id :integer not null
# description :text
# due_date :date
# closed :boolean default(FALSE), not null
# created_at :datetime not null
# updated_at :datetime not null
#
class Milestone < ActiveRecord::Base class Milestone < ActiveRecord::Base
attr_accessible :title, :description, :due_date, :closed attr_accessible :title, :description, :due_date, :closed
   
belongs_to :project belongs_to :project
has_many :issues has_many :issues
   
validates_presence_of :project_id validates_presence_of :title, :project_id
validates_presence_of :title
   
def self.active def self.active
where("due_date > ? OR due_date IS NULL", Date.today) where("due_date > ? OR due_date IS NULL", Date.today)
Loading
@@ -39,3 +24,17 @@ class Milestone < ActiveRecord::Base
Loading
@@ -39,3 +24,17 @@ class Milestone < ActiveRecord::Base
"expires at #{due_date.stamp("Aug 21, 2011")}" if due_date "expires at #{due_date.stamp("Aug 21, 2011")}" if due_date
end end
end end
# == Schema Information
#
# Table name: milestones
#
# id :integer not null, primary key
# title :string(255) not null
# project_id :integer not null
# description :text
# due_date :date
# closed :boolean default(FALSE), not null
# created_at :datetime not null
# updated_at :datetime not null
#
Loading
@@ -2,39 +2,26 @@ require 'carrierwave/orm/activerecord'
Loading
@@ -2,39 +2,26 @@ require 'carrierwave/orm/activerecord'
require 'file_size_validator' require 'file_size_validator'
   
class Note < ActiveRecord::Base class Note < ActiveRecord::Base
mount_uploader :attachment, AttachmentUploader
attr_accessible :note, :noteable, :noteable_id, :noteable_type, :project_id, attr_accessible :note, :noteable, :noteable_id, :noteable_type, :project_id,
:attachment, :line_code :attachment, :line_code
   
belongs_to :project belongs_to :project
belongs_to :noteable, polymorphic: true belongs_to :noteable, polymorphic: true
belongs_to :author, belongs_to :author, class_name: "User"
class_name: "User"
   
delegate :name, delegate :name, to: :project, prefix: true
to: :project, delegate :name, :email, to: :author, prefix: true
prefix: true
delegate :name,
:email,
to: :author,
prefix: true
   
attr_accessor :notify attr_accessor :notify
attr_accessor :notify_author attr_accessor :notify_author
   
validates_presence_of :project validates_presence_of :project
   
validates :note, validates :note, presence: true, length: { within: 0..5000 }
presence: true, validates :attachment, file_size: { maximum: 10.megabytes.to_i }
length: { within: 0..5000 }
validates :attachment,
file_size: {
maximum: 10.megabytes.to_i
}
   
scope :common, where(noteable_id: nil) scope :common, where(noteable_id: nil)
scope :today, where("created_at >= :date", date: Date.today) scope :today, where("created_at >= :date", date: Date.today)
scope :last_week, where("created_at >= :date", date: (Date.today - 7.days)) scope :last_week, where("created_at >= :date", date: (Date.today - 7.days))
scope :since, lambda { |day| where("created_at >= :date", date: (day)) } scope :since, lambda { |day| where("created_at >= :date", date: (day)) }
Loading
@@ -42,14 +29,13 @@ class Note < ActiveRecord::Base
Loading
@@ -42,14 +29,13 @@ class Note < ActiveRecord::Base
scope :inc_author_project, includes(:project, :author) scope :inc_author_project, includes(:project, :author)
scope :inc_author, includes(:author) scope :inc_author, includes(:author)
   
mount_uploader :attachment, AttachmentUploader
def self.create_status_change_note(noteable, author, status) def self.create_status_change_note(noteable, author, status)
create({ noteable: noteable, create({
project: noteable.project, noteable: noteable,
author: author, project: noteable.project,
note: "_Status changed to #{status}_" }, author: author,
without_protection: true) note: "_Status changed to #{status}_"
}, without_protection: true)
end end
   
def notify def notify
Loading
@@ -114,6 +100,7 @@ class Note < ActiveRecord::Base
Loading
@@ -114,6 +100,7 @@ class Note < ActiveRecord::Base
note.start_with?('-1') || note.start_with?(':-1:') note.start_with?('-1') || note.start_with?(':-1:')
end end
end end
# == Schema Information # == Schema Information
# #
# Table name: notes # Table name: notes
Loading
@@ -129,4 +116,3 @@ end
Loading
@@ -129,4 +116,3 @@ end
# attachment :string(255) # attachment :string(255)
# line_code :string(255) # line_code :string(255)
# #
Loading
@@ -8,10 +8,9 @@ class Project < ActiveRecord::Base
Loading
@@ -8,10 +8,9 @@ class Project < ActiveRecord::Base
   
attr_accessible :name, :path, :description, :code, :default_branch, :issues_enabled, attr_accessible :name, :path, :description, :code, :default_branch, :issues_enabled,
:wall_enabled, :merge_requests_enabled, :wiki_enabled :wall_enabled, :merge_requests_enabled, :wiki_enabled
attr_accessor :error_code
   
#
# Relations # Relations
#
belongs_to :owner, class_name: "User" belongs_to :owner, class_name: "User"
has_many :users, through: :users_projects has_many :users, through: :users_projects
has_many :events, dependent: :destroy has_many :events, dependent: :destroy
Loading
@@ -26,11 +25,7 @@ class Project < ActiveRecord::Base
Loading
@@ -26,11 +25,7 @@ class Project < ActiveRecord::Base
has_many :wikis, dependent: :destroy has_many :wikis, dependent: :destroy
has_many :protected_branches, dependent: :destroy has_many :protected_branches, dependent: :destroy
   
attr_accessor :error_code
#
# Scopes # Scopes
#
scope :public_only, where(private_flag: false) scope :public_only, where(private_flag: false)
scope :without_user, lambda { |user| where("id not in (:ids)", ids: user.projects.map(&:id) ) } scope :without_user, lambda { |user| where("id not in (:ids)", ids: user.projects.map(&:id) ) }
   
Loading
@@ -47,7 +42,6 @@ class Project < ActiveRecord::Base
Loading
@@ -47,7 +42,6 @@ class Project < ActiveRecord::Base
   
Project.transaction do Project.transaction do
project.owner = user project.owner = user
project.save! project.save!
   
# Add user as project master # Add user as project master
Loading
@@ -76,36 +70,19 @@ class Project < ActiveRecord::Base
Loading
@@ -76,36 +70,19 @@ class Project < ActiveRecord::Base
id && valid? id && valid?
end end
   
#
# Validations # Validations
# validates :owner, presence: true
validates :name, validates :description, length: { within: 0..2000 }
uniqueness: true, validates :name, uniqueness: true, presence: true, length: { within: 0..255 }
presence: true, validates :path, uniqueness: true, presence: true, length: { within: 0..255 },
length: { within: 0..255 }
validates :path,
uniqueness: true,
presence: true,
format: { with: /^[a-zA-Z][a-zA-Z0-9_\-\.]*$/, format: { with: /^[a-zA-Z][a-zA-Z0-9_\-\.]*$/,
message: "only letters, digits & '_' '-' '.' allowed. Letter should be first" }, message: "only letters, digits & '_' '-' '.' allowed. Letter should be first" }
length: { within: 0..255 } validates :code, presence: true, uniqueness: true, length: { within: 1..255 },
validates :description,
length: { within: 0..2000 }
validates :code,
presence: true,
uniqueness: true,
format: { with: /^[a-zA-Z][a-zA-Z0-9_\-\.]*$/, format: { with: /^[a-zA-Z][a-zA-Z0-9_\-\.]*$/,
message: "only letters, digits & '_' '-' '.' allowed. Letter should be first" }, message: "only letters, digits & '_' '-' '.' allowed. Letter should be first" }
length: { within: 1..255 }
validates :owner, presence: true
validates :issues_enabled, :wall_enabled, :merge_requests_enabled, validates :issues_enabled, :wall_enabled, :merge_requests_enabled,
:wiki_enabled, inclusion: { in: [true, false] } :wiki_enabled, inclusion: { in: [true, false] }
validate :check_limit validate :check_limit, :repo_name
validate :repo_name
   
def check_limit def check_limit
unless owner.can_create_project? unless owner.can_create_project?
Loading
@@ -197,4 +174,3 @@ end
Loading
@@ -197,4 +174,3 @@ end
# merge_requests_enabled :boolean default(TRUE), not null # merge_requests_enabled :boolean default(TRUE), not null
# wiki_enabled :boolean default(TRUE), not null # wiki_enabled :boolean default(TRUE), not null
# #
class ProjectHook < WebHook
belongs_to :project
end
# == Schema Information # == Schema Information
# #
# Table name: web_hooks # Table name: web_hooks
Loading
@@ -9,7 +13,3 @@
Loading
@@ -9,7 +13,3 @@
# updated_at :datetime not null # updated_at :datetime not null
# type :string(255) default("ProjectHook") # type :string(255) default("ProjectHook")
# #
class ProjectHook < WebHook
belongs_to :project
end
Loading
@@ -4,8 +4,7 @@ class ProtectedBranch < ActiveRecord::Base
Loading
@@ -4,8 +4,7 @@ class ProtectedBranch < ActiveRecord::Base
attr_accessible :name attr_accessible :name
   
belongs_to :project belongs_to :project
validates_presence_of :project_id validates_presence_of :name, :project_id
validates_presence_of :name
   
after_save :update_repository after_save :update_repository
after_destroy :update_repository after_destroy :update_repository
Loading
@@ -18,6 +17,7 @@ class ProtectedBranch < ActiveRecord::Base
Loading
@@ -18,6 +17,7 @@ class ProtectedBranch < ActiveRecord::Base
project.commit(self.name) project.commit(self.name)
end end
end end
# == Schema Information # == Schema Information
# #
# Table name: protected_branches # Table name: protected_branches
Loading
@@ -28,4 +28,3 @@ end
Loading
@@ -28,4 +28,3 @@ end
# created_at :datetime not null # created_at :datetime not null
# updated_at :datetime not null # updated_at :datetime not null
# #
Loading
@@ -7,25 +7,12 @@ class Snippet < ActiveRecord::Base
Loading
@@ -7,25 +7,12 @@ class Snippet < ActiveRecord::Base
belongs_to :author, class_name: "User" belongs_to :author, class_name: "User"
has_many :notes, as: :noteable, dependent: :destroy has_many :notes, as: :noteable, dependent: :destroy
   
delegate :name, delegate :name, :email, to: :author, prefix: true
:email,
to: :author,
prefix: true
   
validates_presence_of :project_id validates_presence_of :author_id, :project_id
validates_presence_of :author_id validates :title, presence: true, length: { within: 0..255 }
validates :file_name, presence: true, length: { within: 0..255 }
validates :title, validates :content, presence: true, length: { within: 0..10000 }
presence: true,
length: { within: 0..255 }
validates :file_name,
presence: true,
length: { within: 0..255 }
validates :content,
presence: true,
length: { within: 0..10000 }
   
scope :fresh, order("created_at DESC") scope :fresh, order("created_at DESC")
scope :non_expired, where(["expires_at IS NULL OR expires_at > ?", Time.current]) scope :non_expired, where(["expires_at IS NULL OR expires_at > ?", Time.current])
Loading
@@ -59,6 +46,7 @@ class Snippet < ActiveRecord::Base
Loading
@@ -59,6 +46,7 @@ class Snippet < ActiveRecord::Base
expires_at && expires_at < Time.current expires_at && expires_at < Time.current
end end
end end
# == Schema Information # == Schema Information
# #
# Table name: snippets # Table name: snippets
Loading
@@ -73,4 +61,3 @@ end
Loading
@@ -73,4 +61,3 @@ end
# file_name :string(255) # file_name :string(255)
# expires_at :datetime # expires_at :datetime
# #
# == 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 SystemHook < WebHook class SystemHook < WebHook
def async_execute(data) def async_execute(data)
Resque.enqueue(SystemHookWorker, id, data) Resque.enqueue(SystemHookWorker, id, data)
end end
Loading
@@ -21,5 +8,16 @@ class SystemHook < WebHook
Loading
@@ -21,5 +8,16 @@ class SystemHook < WebHook
sh.async_execute data sh.async_execute data
end end
end end
end end
# == 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")
#
Loading
@@ -2,16 +2,8 @@ class Tree
Loading
@@ -2,16 +2,8 @@ class Tree
include Linguist::BlobHelper include Linguist::BlobHelper
attr_accessor :path, :tree, :project, :ref attr_accessor :path, :tree, :project, :ref
   
delegate :contents, delegate :contents, :basename, :name, :data, :mime_type,
:basename, :mode, :size, :text?, :colorize, to: :tree
:name,
:data,
:mime_type,
:mode,
:size,
:text?,
:colorize,
to: :tree
   
def initialize(raw_tree, project, ref = nil, path = nil) def initialize(raw_tree, project, ref = nil, path = nil)
@project, @ref, @path = project, ref, path @project, @ref, @path = project, ref, path
Loading
Loading
class User < ActiveRecord::Base class User < ActiveRecord::Base
include Account include Account
   
devise :database_authenticatable, :token_authenticatable, :lockable, devise :database_authenticatable, :token_authenticatable, :lockable,
:recoverable, :rememberable, :trackable, :validatable, :omniauthable :recoverable, :rememberable, :trackable, :validatable, :omniauthable
   
attr_accessible :email, :password, :password_confirmation, :remember_me, :bio, attr_accessible :email, :password, :password_confirmation, :remember_me, :bio, :name,
:name, :skype, :linkedin, :twitter, :dark_scheme, :skype, :linkedin, :twitter, :dark_scheme, :theme_id, :force_random_password,
:theme_id, :force_random_password, :extern_uid, :provider, :as => [:default, :admin] :extern_uid, :provider, :as => [:default, :admin]
attr_accessible :projects_limit, :as => :admin attr_accessible :projects_limit, :as => :admin
   
attr_accessor :force_random_password attr_accessor :force_random_password
   
has_many :users_projects, dependent: :destroy has_many :keys, dependent: :destroy
has_many :projects, through: :users_projects has_many :projects, through: :users_projects
has_many :users_projects, dependent: :destroy
has_many :issues, foreign_key: :author_id, dependent: :destroy
has_many :notes, foreign_key: :author_id, dependent: :destroy
has_many :merge_requests, foreign_key: :author_id, dependent: :destroy
has_many :my_own_projects, class_name: "Project", foreign_key: :owner_id has_many :my_own_projects, class_name: "Project", foreign_key: :owner_id
has_many :keys, dependent: :destroy has_many :events, class_name: "Event", foreign_key: :author_id, dependent: :destroy
has_many :recent_events, class_name: "Event", foreign_key: :author_id, order: "id DESC"
has_many :events, has_many :assigned_issues, class_name: "Issue", foreign_key: :assignee_id, dependent: :destroy
class_name: "Event", has_many :assigned_merge_requests, class_name: "MergeRequest", foreign_key: :assignee_id, dependent: :destroy
foreign_key: :author_id,
dependent: :destroy
has_many :recent_events,
class_name: "Event",
foreign_key: :author_id,
order: "id DESC"
has_many :issues,
foreign_key: :author_id,
dependent: :destroy
has_many :notes,
foreign_key: :author_id,
dependent: :destroy
has_many :assigned_issues,
class_name: "Issue",
foreign_key: :assignee_id,
dependent: :destroy
has_many :merge_requests,
foreign_key: :author_id,
dependent: :destroy
has_many :assigned_merge_requests,
class_name: "MergeRequest",
foreign_key: :assignee_id,
dependent: :destroy
validates :projects_limit,
presence: true,
numericality: {greater_than_or_equal_to: 0}
   
validates :bio, length: { within: 0..255 } validates :bio, length: { within: 0..255 }
validates :extern_uid, :allow_blank => true, :uniqueness => {:scope => :provider} validates :extern_uid, :allow_blank => true, :uniqueness => {:scope => :provider}
validates :projects_limit, presence: true, numericality: {greater_than_or_equal_to: 0}
before_save :ensure_authentication_token
alias_attribute :private_token, :authentication_token
   
scope :not_in_project, lambda { |project| where("id not in (:ids)", ids: project.users.map(&:id) ) } scope :not_in_project, lambda { |project| where("id not in (:ids)", ids: project.users.map(&:id) ) }
scope :admins, where(admin: true) scope :admins, where(admin: true)
Loading
@@ -66,6 +33,8 @@ class User < ActiveRecord::Base
Loading
@@ -66,6 +33,8 @@ class User < ActiveRecord::Base
scope :active, where(blocked: false) scope :active, where(blocked: false)
   
before_validation :generate_password, on: :create before_validation :generate_password, on: :create
before_save :ensure_authentication_token
alias_attribute :private_token, :authentication_token
   
def generate_password def generate_password
if self.force_random_password if self.force_random_password
Loading
@@ -107,6 +76,7 @@ class User < ActiveRecord::Base
Loading
@@ -107,6 +76,7 @@ class User < ActiveRecord::Base
where("name like :query or email like :query", query: "%#{query}%") where("name like :query or email like :query", query: "%#{query}%")
end end
end end
# == Schema Information # == Schema Information
# #
# Table name: users # Table name: users
Loading
@@ -140,4 +110,3 @@ end
Loading
@@ -140,4 +110,3 @@ end
# extern_uid :string(255) # extern_uid :string(255)
# provider :string(255) # provider :string(255)
# #
Loading
@@ -88,6 +88,7 @@ class UsersProject < ActiveRecord::Base
Loading
@@ -88,6 +88,7 @@ class UsersProject < ActiveRecord::Base
self.class.access_roles.invert[self.project_access] self.class.access_roles.invert[self.project_access]
end end
end end
# == Schema Information # == Schema Information
# #
# Table name: users_projects # Table name: users_projects
Loading
@@ -99,4 +100,3 @@ end
Loading
@@ -99,4 +100,3 @@ end
# updated_at :datetime not null # updated_at :datetime not null
# project_access :integer default(0), not null # project_access :integer default(0), not null
# #
Loading
@@ -6,26 +6,23 @@ class WebHook < ActiveRecord::Base
Loading
@@ -6,26 +6,23 @@ class WebHook < ActiveRecord::Base
# HTTParty timeout # HTTParty timeout
default_timeout 10 default_timeout 10
   
validates :url, validates :url, presence: true,
presence: true, format: { with: URI::regexp(%w(http https)), message: "should be a valid url" }
format: {
with: URI::regexp(%w(http https)),
message: "should be a valid url" }
   
def execute(data) def execute(data)
parsed_url = URI.parse(url) parsed_url = URI.parse(url)
if parsed_url.userinfo.blank? if parsed_url.userinfo.blank?
WebHook.post(url, body: data.to_json, headers: { "Content-Type" => "application/json" }) WebHook.post(url, body: data.to_json, headers: { "Content-Type" => "application/json" })
else else
post_url = url.gsub(parsed_url.userinfo+"@", "") post_url = url.gsub("#{parsed_url.userinfo}@", "")
WebHook.post(post_url, WebHook.post(post_url,
body: data.to_json, body: data.to_json,
headers: { "Content-Type" => "application/json" }, headers: {"Content-Type" => "application/json"},
basic_auth: {username: parsed_url.user, password: parsed_url.password}) basic_auth: {username: parsed_url.user, password: parsed_url.password})
end end
end end
end end
# == Schema Information # == Schema Information
# #
# Table name: web_hooks # Table name: web_hooks
Loading
@@ -37,4 +34,3 @@ end
Loading
@@ -37,4 +34,3 @@ end
# updated_at :datetime not null # updated_at :datetime not null
# type :string(255) default("ProjectHook") # type :string(255) default("ProjectHook")
# #
Loading
@@ -32,6 +32,7 @@ class Wiki < ActiveRecord::Base
Loading
@@ -32,6 +32,7 @@ class Wiki < ActiveRecord::Base
end end
end end
end end
# == Schema Information # == Schema Information
# #
# Table name: wikis # Table name: wikis
Loading
@@ -45,4 +46,3 @@ end
Loading
@@ -45,4 +46,3 @@ end
# slug :string(255) # slug :string(255)
# user_id :integer # user_id :integer
# #
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment