diff --git a/app/resources/v1/player_resource.rb b/app/resources/v1/player_resource.rb index bd8d85f..51c785e 100644 --- a/app/resources/v1/player_resource.rb +++ b/app/resources/v1/player_resource.rb @@ -3,6 +3,8 @@ class PlayerResource < BaseResource attribute :name + attribute :avatar + has_one :user filter :name @@ -11,7 +13,8 @@ class << self def creatable_fields(context) [ :user, - :name + :name, + :avatar ] end diff --git a/db/migrate/20150917165044_add_avatar_to_players.rb b/db/migrate/20150917165044_add_avatar_to_players.rb new file mode 100644 index 0000000..614477a --- /dev/null +++ b/db/migrate/20150917165044_add_avatar_to_players.rb @@ -0,0 +1,6 @@ +class AddAvatarToPlayers < ActiveRecord::Migration + def change + add_column :players, :avatar, :string, null: false, default: " +iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAG9QTFRF7+/v7u7uzc3N0NDQzs7O7Ozs0dHR6Ojoz8/P4eHh2NjY29vb1dXV7e3t09PT6enp3Nzc4ODg1NTU5OTk5eXl6urq5+fn1tbW19fX0tLS6+vr39/f4+Pj4uLi3t7e2dnZ5ubm2tra3d3dzMzM8PDwN0UjmgAAAfdJREFUeNrs1smSozAMAFB5A8y+hzUkMf//jR3S01NdBNsyuU2N7n42WJYE64cB/4F/G4CsiNUW/HEKELciDF6AurSNSIgjMFyZ+htsGedKuADkdv+1/vkVzEvDOUEDbRRz9RZ93uAA8Dt1HAVBAUlIj9fTqMEAQx5oDkAvLQaYNPtvf6FGACLSrldcghUA6ekBFddgAaC5GNYrGhIb4McmQPXE+gkjMwGpFVi1WfSK0g4kuWE9z8F+jSagrOxAczcAXWsHbqZ7vCCAKTVdwmQH5t4AeMWHJ+glfJYHYQYfvUZaIJ6zKZHYhADIw/APKwQAo+EWMRVprQJ9NfBRRTXSCUyiyjpkmorAF2xjKammJgMS0BSlmGB745DzwzTGd+fs6EnnAg/A/H6EoHaZD8Rbe6HR4DShkG7fVzNwG3F2lZFdXYesaF+KXIesZQ84niArd3ewDHgAnj063N9jcEWPeSQTdXiQBxILZGN0+JrSsSF2gIj2qpsQ+F1WfkLABIj6EQfaIes5r3ZF7QsNAH4ll5RR44TCvTSOZNWKNyAZZFh6ChPcK7vR/xnf4c/uRY5b/ZPa99knv4AqDgLqAlCeXr+FDUiqWLlHH7XkGyBTqc4EeyXnM2+NM4ky9uoXkEh2EgiibANunTobNNyAuTwNKG9dvwQYAFj3GiTfQntsAAAAAElFTkSuQmCC" + end +end diff --git a/spec/acceptance/players_spec.rb b/spec/acceptance/players_spec.rb index 6ff565c..cb0bc2d 100644 --- a/spec/acceptance/players_spec.rb +++ b/spec/acceptance/players_spec.rb @@ -37,6 +37,15 @@ "Barney" end + parameter "avatar", <<-DESC, scope: :attributes + The avatar of the player. Whatever you like! + DESC + + let :avatar do + " +/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBggGBQkIEhQQCRUKDRwWGRgXDRwTFBgiHCQhIB4THhsYJzIfGBovJR4mJjsmLyc1LDA4Fio9NzwqOjI3MzUBCQoKDQsNGQ4OGTUkHiQ1NTU1NTU1NTA1NTU1LzU1NTQ1NTQ0NC81MDE1NCk1LzQ0LjA1LDY0LDQ1NC80Lyw2Kf/AABEIADIAMgMBIgACEQEDEQH/xAAcAAEAAgMBAQEAAAAAAAAAAAAABQcBBAYDCAL/xAA2EAABAwMBAwoBDQAAAAAAAAABAAIDBAURBiFBYQcSFDFRUmJxgZKxEyIkQ3J0oaKywcLR8P/EABkBAAIDAQAAAAAAAAAAAAAAAAQGAAEDBf/EAB0RAAICAgMBAAAAAAAAAAAAAAEDAAIEERMxURL/2gAMAwEAAhEDEQA/ALxWvX10NtoJqt55rYWFx7fIcVsLj+VGqdBpRkQOPl6hrTxABd8QFqlfIwU9mOQziVa/gnE3vXd3u1S9zZH0bM7GRvLdnFw2uP4cFpUOq71b5myNnldg9TpC9p9HbFEomgJWK/IqNRNOQ21vo2O5eGldRR6ks7anAjew817ew9o8J/3UplVhyTVLm3itps7JIA7H2SBn8ys9LmWoKaajqNmE4vQL27hERCwyFyPKfRuqdKCUbejTtcfI5b8XBdcvKqpYq2klp3jntlaWkdoK1SzjYL+TF6+Vdqez57RSepLMLDfJqIPE4ZtB34O4+JaFPCaipjhBDTI4NyTgDOzJO4JsrYWr9DqJNqWrY0Pc7jkmpHOuldV7o4Qz3HP8VZqi9OWODT9mipG4eetzu849bvLcOAUolfKaHNNh1HHDSUJFD3CIiGhch77qu2aebiV3OeRkMaOc8+nUB5qub9yiXO7B0Mf0GM7mn5583f1hOUwEawfxhb+65RMGJiKFAwjZMV87NcWWWDoDyCcnPWiIunOTJyw6yulgcGsd8tGPq35LfTe302easjT+vbZfXsgOaSV+wMcdhPY13UfXB4Km1u2Tbf6D7yz9QQWRiKaDbWjOhi5zkkVB2PDL8RESzG6fh8UchyQHY7RlY6ND3W+0LCK9mVoTPRoe632hOjQ91vtCwimzJoTPRoe632hBBE0ghrRjwhEU2ZNCeiIiqXP/2Q==" + end + example_request "POST /v1/players" do expect(status).to eq 201 parsed = JSON.parse(response_body) diff --git a/spec/factories/players.rb b/spec/factories/players.rb index 220fc0c..3bc302b 100644 --- a/spec/factories/players.rb +++ b/spec/factories/players.rb @@ -2,5 +2,7 @@ factory :player do association :user, strategy: :build name "Barney" + avatar " +/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBggGBQkIEhQQCRUKDRwWGRgXDRwTFBgiHCQhIB4THhsYJzIfGBovJR4mJjsmLyc1LDA4Fio9NzwqOjI3MzUBCQoKDQsNGQ4OGTUkHiQ1NTU1NTU1NTA1NTU1LzU1NTQ1NTQ0NC81MDE1NCk1LzQ0LjA1LDY0LDQ1NC80Lyw2Kf/AABEIADIAMgMBIgACEQEDEQH/xAAcAAEAAgMBAQEAAAAAAAAAAAAABQcBBAYDCAL/xAA2EAABAwMBAwoBDQAAAAAAAAABAAIDBAURBiFBYQcSFDFRUmJxgZKxEyIkQ3J0oaKywcLR8P/EABkBAAIDAQAAAAAAAAAAAAAAAAQGAAEDBf/EAB0RAAICAgMBAAAAAAAAAAAAAAEDAAIEERMxURL/2gAMAwEAAhEDEQA/ALxWvX10NtoJqt55rYWFx7fIcVsLj+VGqdBpRkQOPl6hrTxABd8QFqlfIwU9mOQziVa/gnE3vXd3u1S9zZH0bM7GRvLdnFw2uP4cFpUOq71b5myNnldg9TpC9p9HbFEomgJWK/IqNRNOQ21vo2O5eGldRR6ks7anAjew817ew9o8J/3UplVhyTVLm3itps7JIA7H2SBn8ys9LmWoKaajqNmE4vQL27hERCwyFyPKfRuqdKCUbejTtcfI5b8XBdcvKqpYq2klp3jntlaWkdoK1SzjYL+TF6+Vdqez57RSepLMLDfJqIPE4ZtB34O4+JaFPCaipjhBDTI4NyTgDOzJO4JsrYWr9DqJNqWrY0Pc7jkmpHOuldV7o4Qz3HP8VZqi9OWODT9mipG4eetzu849bvLcOAUolfKaHNNh1HHDSUJFD3CIiGhch77qu2aebiV3OeRkMaOc8+nUB5qub9yiXO7B0Mf0GM7mn5583f1hOUwEawfxhb+65RMGJiKFAwjZMV87NcWWWDoDyCcnPWiIunOTJyw6yulgcGsd8tGPq35LfTe302easjT+vbZfXsgOaSV+wMcdhPY13UfXB4Km1u2Tbf6D7yz9QQWRiKaDbWjOhi5zkkVB2PDL8RESzG6fh8UchyQHY7RlY6ND3W+0LCK9mVoTPRoe632hOjQ91vtCwimzJoTPRoe632hBBE0ghrRjwhEU2ZNCeiIiqXP/2Q==" end end diff --git a/spec/models/player_spec.rb b/spec/models/player_spec.rb index 9e9ca03..fd68b16 100644 --- a/spec/models/player_spec.rb +++ b/spec/models/player_spec.rb @@ -53,4 +53,13 @@ expect(subject.name).not_to be_blank end + it "has an avatar" do + subject.avatar = " +/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBggGBQkIEhQQCRUKDRwWGRgXDRwTFBgiHCQhIB4THhsYJzIfGBovJR4mJjsmLyc1LDA4Fio9NzwqOjI3MzUBCQoKDQsNGQ4OGTUkHiQ1NTU1NTU1NTA1NTU1LzU1NTQ1NTQ0NC81MDE1NCk1LzQ0LjA1LDY0LDQ1NC80Lyw2Kf/AABEIADIAMgMBIgACEQEDEQH/xAAcAAEAAgMBAQEAAAAAAAAAAAAABQcBBAYDCAL/xAA2EAABAwMBAwoBDQAAAAAAAAABAAIDBAURBiFBYQcSFDFRUmJxgZKxEyIkQ3J0oaKywcLR8P/EABkBAAIDAQAAAAAAAAAAAAAAAAQGAAEDBf/EAB0RAAICAgMBAAAAAAAAAAAAAAEDAAIEERMxURL/2gAMAwEAAhEDEQA/ALxWvX10NtoJqt55rYWFx7fIcVsLj+VGqdBpRkQOPl6hrTxABd8QFqlfIwU9mOQziVa/gnE3vXd3u1S9zZH0bM7GRvLdnFw2uP4cFpUOq71b5myNnldg9TpC9p9HbFEomgJWK/IqNRNOQ21vo2O5eGldRR6ks7anAjew817ew9o8J/3UplVhyTVLm3itps7JIA7H2SBn8ys9LmWoKaajqNmE4vQL27hERCwyFyPKfRuqdKCUbejTtcfI5b8XBdcvKqpYq2klp3jntlaWkdoK1SzjYL+TF6+Vdqez57RSepLMLDfJqIPE4ZtB34O4+JaFPCaipjhBDTI4NyTgDOzJO4JsrYWr9DqJNqWrY0Pc7jkmpHOuldV7o4Qz3HP8VZqi9OWODT9mipG4eetzu849bvLcOAUolfKaHNNh1HHDSUJFD3CIiGhch77qu2aebiV3OeRkMaOc8+nUB5qub9yiXO7B0Mf0GM7mn5583f1hOUwEawfxhb+65RMGJiKFAwjZMV87NcWWWDoDyCcnPWiIunOTJyw6yulgcGsd8tGPq35LfTe302easjT+vbZfXsgOaSV+wMcdhPY13UfXB4Km1u2Tbf6D7yz9QQWRiKaDbWjOhi5zkkVB2PDL8RESzG6fh8UchyQHY7RlY6ND3W+0LCK9mVoTPRoe632hOjQ91vtCwimzJoTPRoe632hBBE0ghrRjwhEU2ZNCeiIiqXP/2Q==" + expect(subject.avatar).not_to be_blank + end + + it "initializes with default avatar" do + expect(subject.avatar).not_to be_blank + end end diff --git a/spec/resources/v1/player_resource_spec.rb b/spec/resources/v1/player_resource_spec.rb index f23d047..98ff865 100644 --- a/spec/resources/v1/player_resource_spec.rb +++ b/spec/resources/v1/player_resource_spec.rb @@ -4,7 +4,8 @@ module V1 let :creatable_and_updatable_fields do [ :user, - :name + :name, + :avatar ].sort end