diff --git a/app/models/project_services/jira_service.rb b/app/models/project_services/jira_service.rb index 96faea5536..594472bd82 100644 --- a/app/models/project_services/jira_service.rb +++ b/app/models/project_services/jira_service.rb @@ -42,7 +42,8 @@ class JiraService < Service { type: 'text', name: 'project_url', placeholder: 'Url to JIRA, http://jira.example' }, { type: 'text', name: 'username', placeholder: '' }, { type: 'password', name: 'password', placeholder: '' }, - { type: 'text', name: 'api_version', placeholder: '2' } + { type: 'text', name: 'api_version', placeholder: '2' }, + { type: 'text', name: 'jira_issue_transition_id', placeholder: '2' } ] end @@ -69,7 +70,7 @@ class JiraService < Service }] }, 'transition' => { - 'id' => '2' + 'id' => jira_issue_transition_id } } diff --git a/db/migrate/20140811155127_add_jira_issue_transition_id_to_services.rb b/db/migrate/20140811155127_add_jira_issue_transition_id_to_services.rb new file mode 100644 index 0000000000..c687804fbe --- /dev/null +++ b/db/migrate/20140811155127_add_jira_issue_transition_id_to_services.rb @@ -0,0 +1,11 @@ +class AddJiraIssueTransitionIdToServices < ActiveRecord::Migration + def up + add_column :services, :jira_issue_transition_id, :string, default: '2' + Service.reset_column_information + Service.where(jira_issue_transition_id: nil).update_all jira_issue_transition_id: '2' + end + + def down + remove_column :services, :jira_issue_transition_id + end +end diff --git a/db/schema.rb b/db/schema.rb index bdf35c8945..c05897a8b7 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20140611135229) do +ActiveRecord::Schema.define(version: 20140811155127) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -273,10 +273,10 @@ ActiveRecord::Schema.define(version: 20140611135229) do t.string "type" t.string "title" t.string "token" - t.integer "project_id", null: false + t.integer "project_id", null: false t.datetime "created_at" t.datetime "updated_at" - t.boolean "active", default: false, null: false + t.boolean "active", default: false, null: false t.string "project_url" t.string "subdomain" t.string "room" @@ -285,6 +285,7 @@ ActiveRecord::Schema.define(version: 20140611135229) do t.string "username" t.string "password" t.string "api_version" + t.string "jira_issue_transition_id", default: "2" end add_index "services", ["project_id"], name: "index_services_on_project_id", using: :btree @@ -325,12 +326,12 @@ ActiveRecord::Schema.define(version: 20140611135229) do end create_table "users", force: true do |t| - t.string "email", default: "", null: false - t.string "encrypted_password", default: "", null: false + t.string "email", default: "", null: false + t.string "encrypted_password", default: "", null: false t.string "reset_password_token" t.datetime "reset_password_sent_at" t.datetime "remember_created_at" - t.integer "sign_in_count", default: 0 + t.integer "sign_in_count", default: 0 t.datetime "current_sign_in_at" t.datetime "last_sign_in_at" t.string "current_sign_in_ip" @@ -338,24 +339,24 @@ ActiveRecord::Schema.define(version: 20140611135229) do t.datetime "created_at" t.datetime "updated_at" t.string "name" - t.boolean "admin", default: false, null: false - t.integer "projects_limit", default: 10 - t.string "skype", default: "", null: false - t.string "linkedin", default: "", null: false - t.string "twitter", default: "", null: false + t.boolean "admin", default: false, null: false + t.integer "projects_limit", default: 10 + t.string "skype", default: "", null: false + t.string "linkedin", default: "", null: false + t.string "twitter", default: "", null: false t.string "authentication_token" - t.integer "theme_id", default: 1, null: false + t.integer "theme_id", default: 1, null: false t.string "bio" - t.integer "failed_attempts", default: 0 + t.integer "failed_attempts", default: 0 t.datetime "locked_at" t.string "extern_uid" t.string "provider" t.string "username" - t.boolean "can_create_group", default: true, null: false - t.boolean "can_create_team", default: true, null: false + t.boolean "can_create_group", default: true, null: false + t.boolean "can_create_team", default: true, null: false t.string "state" - t.integer "color_scheme_id", default: 1, null: false - t.integer "notification_level", default: 1, null: false + t.integer "color_scheme_id", default: 1, null: false + t.integer "notification_level", default: 1, null: false t.datetime "password_expires_at" t.integer "created_by_id" t.datetime "last_credential_check_at" @@ -364,8 +365,9 @@ ActiveRecord::Schema.define(version: 20140611135229) do t.datetime "confirmed_at" t.datetime "confirmation_sent_at" t.string "unconfirmed_email" - t.boolean "hide_no_ssh_key", default: false - t.string "website_url", default: "", null: false + t.boolean "hide_no_ssh_key", default: false + t.string "website_url", default: "", null: false + t.datetime "admin_email_unsubscribed_at" end add_index "users", ["admin"], name: "index_users_on_admin", using: :btree diff --git a/spec/models/jira_service_spec.rb b/spec/models/jira_service_spec.rb index e1b2a91b78..ae81531c86 100644 --- a/spec/models/jira_service_spec.rb +++ b/spec/models/jira_service_spec.rb @@ -55,5 +55,13 @@ describe JiraService, models: true do body: /Issue solved with/ ).once end + + it "calls the api with jira_issue_transition_id" do + @jira_service.jira_issue_transition_id = 'this-is-a-custom-id' + @jira_service.execute(@sample_data, JiraIssue.new("JIRA-123")) + WebMock.should have_requested(:post, @api_url).with( + body: /this-is-a-custom-id/ + ).once + end end end