Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
5c99eb1
Create MIT License
akhilgkrishnan May 10, 2022
d727381
client index spec, match_array added
May 12, 2022
f354668
Merge branch 'develop' of https://github.com/saeloun/miru-web into ad…
May 12, 2022
c89a3d8
employee dropdown added
May 17, 2022
e614b7c
Merge branch 'develop' of https://github.com/saeloun/miru-web into em…
May 17, 2022
ae6db92
replace current_workplace with current_company in time_tracking_contr…
May 19, 2022
7e8b729
fetch entries issue fixes
May 19, 2022
6b5393c
admin's crud operation added
May 23, 2022
ee06d55
useEffect for selectedEmployeeId added
May 23, 2022
6bde2ab
timesheet entry rspec fixes
May 24, 2022
c390720
companies api added
May 26, 2022
7f6439a
Merge branch 'develop' of https://github.com/saeloun/miru-web into co…
May 26, 2022
6630fc1
companies api rspec added
May 27, 2022
d7ad794
defination name updated for company test
May 27, 2022
8275635
negative test case added
May 29, 2022
365b256
Merge branch 'develop' into companies-api
akhilgkrishnan May 30, 2022
d78766a
gems updated on Company API
May 30, 2022
b0f4933
Merge branch 'companies-api' of https://github.com/saeloun/miru-web i…
May 30, 2022
ea2612d
Merge branch 'develop' of https://github.com/saeloun/miru-web into co…
May 31, 2022
cbe531e
purge logo api added
May 31, 2022
25f154a
negative test case added for purge logo api
Jun 1, 2022
c8589e6
removeLogo axios interceptor route updated
Jun 1, 2022
da99ddd
Merge branch 'develop' of https://github.com/saeloun/miru-web into pu…
Jun 1, 2022
5454347
Merge branch 'develop' of https://github.com/saeloun/miru-web into pu…
Jun 1, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# frozen_string_literal: true

class InternalApi::V1::Companies::PurgeLogoController < InternalApi::V1::ApplicationController
def destroy
authorize current_company, :purge_logo?
current_company.logo.destroy
render json: { notice: I18n.t("companies.purge_logo.destroy.success") }, status: :ok
end
end
10 changes: 8 additions & 2 deletions app/javascript/src/apis/companies.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,18 @@ const index = () => axios.get(path);

const create = payload => axios.post(path, payload);

const update = payload => axios.put(path, payload);
const update = (id, payload) => axios.put(`${path}/${id}`, payload);

const destroy = id => axios.delete(`${path}/${id}`);

const removeLogo = id => axios.delete(`${path}/${id}/purge_logo`);

const companiesApi = {
index,
create,
update
update,
destroy,
removeLogo
};

export default companiesApi;
4 changes: 4 additions & 0 deletions app/policies/company_policy.rb
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,8 @@ def permitted_attributes
[:name, :address, :business_phone, :country, :timezone, :base_currency, :standard_price, :fiscal_year_end,
:date_format, :logo]
end

def purge_logo?
user_owner_or_admin?
end
end
3 changes: 3 additions & 0 deletions config/locales/en.yml
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,9 @@ en:
success: "Company created successfully"
update:
success: "Changes saved successfully"
purge_logo:
destroy:
success: "Company Logo successfully removed"
client:
name:
label: Name
Expand Down
4 changes: 3 additions & 1 deletion config/routes/internal_api.rb
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,9 @@
resources :project_members, only: [:update]
resources :company_users, only: [:index]
resources :timezones, only: [:index]
resources :companies, only: [:index, :create, :update]
resources :companies, only: [:index, :create, :update] do
resource :purge_logo, only: [:destroy], controller: "companies/purge_logo"
end

# Non-Resourceful Routes
get "payments/settings", to: "payment_settings#index"
Expand Down
41 changes: 41 additions & 0 deletions spec/requests/internal_api/v1/companies/purge_logo/destroy_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# frozen_string_literal: true

require "rails_helper"

RSpec.describe "InternalApi::V1::Companies::PurgeLogo#destroy", type: :request do
let(:company) { create(:company, :with_logo) }
let(:user1) { create(:user, current_workspace: company) }
let(:company_user) { create(:company_user, company:, user: user1) }
let(:user2) { create(:user) }

context "when user is not admin" do
before do
sign_in user2
send_request(:delete, "/internal_api/v1/companies/#{company.id}/purge_logo")
end

it "response should be forbidded" do
expect(response).to have_http_status(:forbidden)
end

it "returns error json response" do
expect(json_response["errors"]).to match("You are not authorized to perform this action")
end
end

context "when user is admin" do
before do
user1.add_role :admin, company
sign_in user1
send_request(:delete, "/internal_api/v1/companies/#{company.id}/purge_logo")
end

it "successful status" do
expect(response).to be_successful
end

it "successful notice" do
expect(json_response["notice"]).to eq(I18n.t("companies.purge_logo.destroy.success"))
end
end
end