Class: PerfectAudit::BooksRepository

Inherits:
Object
  • Object
show all
Defined in:
lib/perfect_audit/api/repositories.rb

Constant Summary collapse

CREATE_PATH =
'book/add'.freeze
ALL_PATH =
'books'.freeze
FIND_PATH =
'book/info'.freeze
DELETE_PATH =
'book/remove'.freeze
EXCEL_EXPORT_PATH =
'book/export/xlsx/analytics'.freeze

Instance Method Summary collapse

Instance Method Details

#allArray<PerfectAudit::Book>

Get all books from Perfect Audit for account

Returns:

Raises:



36
37
38
39
40
41
42
# File 'lib/perfect_audit/api/repositories.rb', line 36

def all
  response = connection.get(ALL_PATH)

  response_parser.parse(response.body.to_s).map{ |item|
    PerfectAudit::Book.new(item)
  }
end

#create(name, public = false) ⇒ PerfectAudit::Book

Create book in Perfect Audit

Parameters:

  • name (String)

    name of book

  • public (Boolean) (defaults to: false)

    should book be public ot not, true or false

Returns:

Raises:



21
22
23
24
25
26
27
28
29
30
# File 'lib/perfect_audit/api/repositories.rb', line 21

def create(name, public = false)
  response = connection.post(CREATE_PATH,
    json: {
      name: name.to_s,
      is_public: public.to_s
    }
  )

  PerfectAudit::Book.new(response_parser.parse(response.body.to_s))
end

#delete(book_or_id) ⇒ true

Delete book in Perfect Audit

Parameters:

  • id (Integer)

    ID of book

Returns:

  • (true)

Raises:



65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/perfect_audit/api/repositories.rb', line 65

def delete(book_or_id)
  id = book_or_id.is_a?(PerfectAudit::Book) ? book_or_id.id.to_s : book_or_id.to_s
  response = connection.post(DELETE_PATH,
    json: {
      book_id: id
    }
  )

  response_parser.parse(response.body.to_s)

  true
end

#find(id) ⇒ PerfectAudit::Book

Find book in Perfect Audit

Parameters:

  • id (Integer)

    ID of book

Returns:

Raises:



50
51
52
53
54
55
56
57
58
# File 'lib/perfect_audit/api/repositories.rb', line 50

def find(id)
  response = connection.get(FIND_PATH,
    params: {
      pk: id.to_s
    }
  )

  PerfectAudit::Book.new(response_parser.parse(response.body.to_s))
end

#to_excel(book_or_id) ⇒ Object



78
79
80
81
82
83
84
85
86
87
# File 'lib/perfect_audit/api/repositories.rb', line 78

def to_excel(book_or_id)
  id = book_or_id.is_a?(PerfectAudit::Book) ? book_or_id.id.to_s : book_or_id.to_s
  response = connection.get(EXCEL_EXPORT_PATH,
    params: {
      pk: id.to_s
    }
  )

  response.body.to_s
end