papierkram_api_client 0.2.2 → 0.2.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +1 -0
- data/CHANGELOG.md +14 -0
- data/Gemfile.lock +1 -1
- data/README.md +142 -0
- data/lib/papierkram_api/v1/endpoints/contact/companies.rb +52 -54
- data/lib/papierkram_api/v1/endpoints/contact/companies_persons.rb +47 -0
- data/lib/papierkram_api/v1/endpoints/income/propositions.rb +42 -0
- data/lib/papierkram_api/v1/endpoints/projects.rb +52 -0
- data/lib/papierkram_api_client/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 149edeeed9ee09d36a1c017a9a831eb00dcf347c507d89b37c498bef24ff87f6
|
4
|
+
data.tar.gz: 48e326b8fc0c92af833e8e928daba56ca0b8f9d28e3d2490af07ffad5cf317de
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fc5b3801503c34095ae1cad9695e78eb749ba8b1c65f2704978bda859640f8e342339aaa1a7b0354a672be2433366bee7436ec6d57b42eaa560216dde9f025e8
|
7
|
+
data.tar.gz: 669678b6e1cc39a506c95ad3d05ab705acbc3ee51f0377ef682ad06b7b1b0daacceb58b8c3da7a9e692f7d7960a7faeac51e2af11c9d79be3d735feb26b31304
|
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,19 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
[0.2.4] - 2023-06-30
|
4
|
+
|
5
|
+
#### Fixed
|
6
|
+
|
7
|
+
- [#48](https://github.com/simonneutert/papierkram_api_client/pull/48) Arguments weren't truly optional when possible. [@simonneutert](https://github.com/simonneutert)
|
8
|
+
|
9
|
+
[0.2.3] - 2023-06-29
|
10
|
+
|
11
|
+
### Added
|
12
|
+
|
13
|
+
- [#47](https://github.com/simonneutert/papierkram_api_client/pull/47) Adds CRUD endpoint support for income propositions. [@simonneutert](https://github.com/simonneutert)
|
14
|
+
- [#46](https://github.com/simonneutert/papierkram_api_client/pull/46) Adds CRUD endpoint support for projects. [@simonneutert](https://github.com/simonneutert)
|
15
|
+
- [#45](https://github.com/simonneutert/papierkram_api_client/pull/45) Adds CRUD endpoint support for contact companies persons. [@simonneutert](https://github.com/simonneutert)
|
16
|
+
|
3
17
|
## [0.2.2] - 2023-06-28
|
4
18
|
|
5
19
|
### Fixed
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -77,6 +77,9 @@ Ziele:
|
|
77
77
|
- [Contact::Company (Kontaktperson eines Unternehmens)](#contactcompany-kontaktperson-eines-unternehmens)
|
78
78
|
- [alle Kontaktpersonen (eines Unternehmens)](#alle-kontaktpersonen-eines-unternehmens)
|
79
79
|
- [eine Kontaktperson (eines Unternehmens)](#eine-kontaktperson-eines-unternehmens)
|
80
|
+
- [erstelle eine Kontaktperson (eines Unternehmens)](#erstelle-eine-kontaktperson-eines-unternehmens)
|
81
|
+
- [aktualisiere eine Kontaktperson (eines Unternehmens)](#aktualisiere-eine-kontaktperson-eines-unternehmens)
|
82
|
+
- [lösche eine Kontaktperson (eines Unternehmens)](#lösche-eine-kontaktperson-eines-unternehmens)
|
80
83
|
- [Expense::Voucher (Ausgabe Beleg)](#expensevoucher-ausgabe-beleg)
|
81
84
|
- [alle Ausgabe Belege](#alle-ausgabe-belege)
|
82
85
|
- [einen Ausgabe Beleg](#einen-ausgabe-beleg)
|
@@ -92,10 +95,20 @@ Ziele:
|
|
92
95
|
- [Income::Proposition (Waren / Dienstleistungen)](#incomeproposition-waren--dienstleistungen)
|
93
96
|
- [alle Waren / Dienstleistungen](#alle-waren--dienstleistungen)
|
94
97
|
- [eine Ware / Dienstleistung](#eine-ware--dienstleistung)
|
98
|
+
- [eine Ware / Dienstleistung erstellen](#eine-ware--dienstleistung-erstellen)
|
99
|
+
- [eine Ware / Dienstleistung aktualisieren](#eine-ware--dienstleistung-aktualisieren)
|
100
|
+
- [eine Ware / Dienstleistung löschen](#eine-ware--dienstleistung-löschen)
|
101
|
+
- [eine Ware / Dienstleistung archivieren](#eine-ware--dienstleistung-archivieren)
|
102
|
+
- [eine Ware / Dienstleistung unarchivieren](#eine-ware--dienstleistung-unarchivieren)
|
95
103
|
- [Info](#info)
|
96
104
|
- [Project::Project (Projekt)](#projectproject-projekt)
|
97
105
|
- [alle Projekte](#alle-projekte)
|
98
106
|
- [ein Projekt](#ein-projekt)
|
107
|
+
- [erstelle ein Projekt](#erstelle-ein-projekt)
|
108
|
+
- [aktualisiere ein Projekt](#aktualisiere-ein-projekt)
|
109
|
+
- [lösche ein Projekt](#lösche-ein-projekt)
|
110
|
+
- [archiviere ein Projekt](#archiviere-ein-projekt)
|
111
|
+
- [unarchiviere ein Projekt](#unarchiviere-ein-projekt)
|
99
112
|
- [Tracker::Task (Aufgabe)](#trackertask-aufgabe)
|
100
113
|
- [alle Aufgaben](#alle-aufgaben)
|
101
114
|
- [eine Aufgabe](#eine-aufgabe)
|
@@ -347,6 +360,41 @@ puts company.headers
|
|
347
360
|
puts company.body
|
348
361
|
```
|
349
362
|
|
363
|
+
#### erstelle eine Kontaktperson (eines Unternehmens)
|
364
|
+
|
365
|
+
```ruby
|
366
|
+
company = client.contact_companies_persons.create(
|
367
|
+
company_id: 1,
|
368
|
+
attributes: {
|
369
|
+
first_name: 'Max',
|
370
|
+
last_name: 'Mustermann'
|
371
|
+
}
|
372
|
+
)
|
373
|
+
puts company.headers
|
374
|
+
puts company.body
|
375
|
+
```
|
376
|
+
|
377
|
+
Siehe [CompaniesPersons#create](lib/papierkram_api/v1/endpoints/contact/companies_persons.rb) für mögliche Parameter.
|
378
|
+
|
379
|
+
#### aktualisiere eine Kontaktperson (eines Unternehmens)
|
380
|
+
|
381
|
+
```ruby
|
382
|
+
company = client.contact_companies_persons
|
383
|
+
.update_by(company_id: 1, id: 1, attributes: { first_name: 'Moritz' })
|
384
|
+
puts company.headers
|
385
|
+
puts company.body
|
386
|
+
```
|
387
|
+
|
388
|
+
Siehe [CompaniesPersons#update_by](lib/papierkram_api/v1/endpoints/contact/companies_persons.rb) für mögliche Parameter.
|
389
|
+
|
390
|
+
#### lösche eine Kontaktperson (eines Unternehmens)
|
391
|
+
|
392
|
+
```ruby
|
393
|
+
company = client.contact_companies_persons.delete_by(company_id: 1, id: 1)
|
394
|
+
puts company.headers
|
395
|
+
puts company.body
|
396
|
+
```
|
397
|
+
|
350
398
|
### Expense::Voucher (Ausgabe Beleg)
|
351
399
|
|
352
400
|
Der Endpunkt `/papierkram_api/v1/endpoints/expense/vouchers` liefert Informationen über die Ausgabe Belege. Die Informationen werden als `Faraday::Response` zurückgegeben.
|
@@ -459,6 +507,56 @@ puts proposition.headers
|
|
459
507
|
puts proposition.body
|
460
508
|
```
|
461
509
|
|
510
|
+
#### eine Ware / Dienstleistung erstellen
|
511
|
+
|
512
|
+
```ruby
|
513
|
+
proposition = client.income_propositions.create(
|
514
|
+
name: 'Software design',
|
515
|
+
article_no: '12345',
|
516
|
+
description: 'Here, we can describe what "Software design" actually entails.',
|
517
|
+
time_unit: 'hour',
|
518
|
+
proposition_type: 'service',
|
519
|
+
price: '150.0',
|
520
|
+
vat_rate: '19%'
|
521
|
+
)
|
522
|
+
puts proposition.headers
|
523
|
+
puts proposition.body
|
524
|
+
```
|
525
|
+
|
526
|
+
Siehe [Propositions#create](lib/papierkram_api/v1/endpoints/income/propositions.rb) für mögliche Parameter.
|
527
|
+
|
528
|
+
#### eine Ware / Dienstleistung aktualisieren
|
529
|
+
|
530
|
+
```ruby
|
531
|
+
client.income_propositions.update_by(
|
532
|
+
id: 1,
|
533
|
+
attributes: {
|
534
|
+
name: 'Software design',
|
535
|
+
vat_rate: '19%' # verpflichtend bei Änderung
|
536
|
+
}
|
537
|
+
)
|
538
|
+
```
|
539
|
+
|
540
|
+
Siehe [Propositions#update_by](lib/papierkram_api/v1/endpoints/income/propositions.rb) für mögliche Parameter.
|
541
|
+
|
542
|
+
#### eine Ware / Dienstleistung löschen
|
543
|
+
|
544
|
+
```ruby
|
545
|
+
client.income_propositions.delete_by(id: 1)
|
546
|
+
```
|
547
|
+
|
548
|
+
#### eine Ware / Dienstleistung archivieren
|
549
|
+
|
550
|
+
```ruby
|
551
|
+
client.income_propositions.archive_by(id: 1)
|
552
|
+
```
|
553
|
+
|
554
|
+
#### eine Ware / Dienstleistung unarchivieren
|
555
|
+
|
556
|
+
```ruby
|
557
|
+
client.income_propositions.unarchive_by(id: 1)
|
558
|
+
```
|
559
|
+
|
462
560
|
### Info
|
463
561
|
|
464
562
|
Der Endpunkt `lib/papierkram_api/v1/endpoints/info.rb` liefert Informationen über die API. Die Informationen werden als `Faraday::Response` zurückgegeben.
|
@@ -493,6 +591,50 @@ puts project.headers
|
|
493
591
|
puts project.body
|
494
592
|
```
|
495
593
|
|
594
|
+
#### erstelle ein Projekt
|
595
|
+
|
596
|
+
```ruby
|
597
|
+
project = client.projects.create(name: 'Projekt 1')
|
598
|
+
puts project.headers
|
599
|
+
puts project.body
|
600
|
+
```
|
601
|
+
|
602
|
+
Siehe [Projects](lib/papierkram_api/v1/endpoints/projects.rb) für mögliche Parameter.
|
603
|
+
|
604
|
+
#### aktualisiere ein Projekt
|
605
|
+
|
606
|
+
```ruby
|
607
|
+
project = client.projects.update_by(id: 1, attributes: { name: 'Projekt 2' })
|
608
|
+
puts project.headers
|
609
|
+
puts project.body
|
610
|
+
```
|
611
|
+
|
612
|
+
Siehe [Projects](lib/papierkram_api/v1/endpoints/projects.rb) für mögliche Parameter.
|
613
|
+
|
614
|
+
#### lösche ein Projekt
|
615
|
+
|
616
|
+
```ruby
|
617
|
+
project = client.projects.delete_by(id: 1)
|
618
|
+
puts project.headers
|
619
|
+
puts project.body
|
620
|
+
```
|
621
|
+
|
622
|
+
#### archiviere ein Projekt
|
623
|
+
|
624
|
+
```ruby
|
625
|
+
project = client.projects.archive_by(id: 1)
|
626
|
+
puts project.headers
|
627
|
+
puts project.body
|
628
|
+
```
|
629
|
+
|
630
|
+
#### unarchiviere ein Projekt
|
631
|
+
|
632
|
+
```ruby
|
633
|
+
project = client.projects.unarchive_by(id: 1)
|
634
|
+
puts project.headers
|
635
|
+
puts project.body
|
636
|
+
```
|
637
|
+
|
496
638
|
### Tracker::Task (Aufgabe)
|
497
639
|
|
498
640
|
Der Endpunkt `/papierkram_api/v1/tracker/tasks` liefert Informationen über die Aufgaben. Die Informationen werden als `Faraday::Response` zurückgegeben.
|
@@ -24,7 +24,7 @@ module PapierkramApi
|
|
24
24
|
get("#{@url_api_path}/contact/companies", query)
|
25
25
|
end
|
26
26
|
|
27
|
-
def create_supplier( # rubocop:disable Metrics/ParameterLists
|
27
|
+
def create_supplier( # rubocop:disable Metrics/ParameterLists, Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
|
28
28
|
name:,
|
29
29
|
phone: nil,
|
30
30
|
fax: nil,
|
@@ -50,37 +50,36 @@ module PapierkramApi
|
|
50
50
|
color: nil
|
51
51
|
)
|
52
52
|
|
53
|
-
body = {
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
}
|
53
|
+
body = {}
|
54
|
+
body[:contact_type] = 'supplier'
|
55
|
+
body[:name] = name
|
56
|
+
body[:phone] = phone if phone
|
57
|
+
body[:fax] = fax if fax
|
58
|
+
body[:email] = email if email
|
59
|
+
body[:delivery_method] = delivery_method if delivery_method
|
60
|
+
body[:ust_idnr] = ust_idnr if ust_idnr
|
61
|
+
body[:website] = website if website
|
62
|
+
body[:twitter] = twitter if twitter
|
63
|
+
body[:postal_street] = postal_street if postal_street
|
64
|
+
body[:postal_city] = postal_city if postal_city
|
65
|
+
body[:postal_zip] = postal_zip if postal_zip
|
66
|
+
body[:postal_country] = postal_country if postal_country
|
67
|
+
body[:physical_street] = physical_street if physical_street
|
68
|
+
body[:physical_city] = physical_city if physical_city
|
69
|
+
body[:physical_zip] = physical_zip if physical_zip
|
70
|
+
body[:physical_country] = physical_country if physical_country
|
71
|
+
body[:bank_blz] = bank_blz if bank_blz
|
72
|
+
body[:bank_institute] = bank_institute if bank_institute
|
73
|
+
body[:bank_account_no] = bank_account_no if bank_account_no
|
74
|
+
body[:bank_bic] = bank_bic if bank_bic
|
75
|
+
body[:bank_iban] = bank_iban if bank_iban
|
76
|
+
body[:notes] = notes if notes
|
77
|
+
body[:color] = color if color
|
79
78
|
|
80
79
|
post("#{@url_api_path}/contact/companies", body)
|
81
80
|
end
|
82
81
|
|
83
|
-
def create_customer( # rubocop:disable Metrics/ParameterLists
|
82
|
+
def create_customer( # rubocop:disable Metrics/ParameterLists, Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
|
84
83
|
name:,
|
85
84
|
phone: nil,
|
86
85
|
fax: nil,
|
@@ -106,32 +105,31 @@ module PapierkramApi
|
|
106
105
|
color: nil
|
107
106
|
)
|
108
107
|
|
109
|
-
body = {
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
}
|
108
|
+
body = {}
|
109
|
+
body[:contact_type] = 'customer'
|
110
|
+
body[:name] = name
|
111
|
+
body[:phone] = phone if phone
|
112
|
+
body[:fax] = fax if fax
|
113
|
+
body[:email] = email if email
|
114
|
+
body[:delivery_method] = delivery_method if delivery_method
|
115
|
+
body[:ust_idnr] = ust_idnr if ust_idnr
|
116
|
+
body[:website] = website if website
|
117
|
+
body[:twitter] = twitter if twitter
|
118
|
+
body[:postal_street] = postal_street if postal_street
|
119
|
+
body[:postal_city] = postal_city if postal_city
|
120
|
+
body[:postal_zip] = postal_zip if postal_zip
|
121
|
+
body[:postal_country] = postal_country if postal_country
|
122
|
+
body[:physical_street] = physical_street if physical_street
|
123
|
+
body[:physical_city] = physical_city if physical_city
|
124
|
+
body[:physical_zip] = physical_zip if physical_zip
|
125
|
+
body[:physical_country] = physical_country if physical_country
|
126
|
+
body[:bank_blz] = bank_blz if bank_blz
|
127
|
+
body[:bank_institute] = bank_institute if bank_institute
|
128
|
+
body[:bank_account_no] = bank_account_no if bank_account_no
|
129
|
+
body[:bank_bic] = bank_bic if bank_bic
|
130
|
+
body[:bank_iban] = bank_iban if bank_iban
|
131
|
+
body[:notes] = notes if notes
|
132
|
+
body[:color] = color if color
|
135
133
|
|
136
134
|
post("#{@url_api_path}/contact/companies", body)
|
137
135
|
end
|
@@ -21,6 +21,53 @@ module PapierkramApi
|
|
21
21
|
|
22
22
|
get("#{@url_api_path}/contact/companies/#{company_id}/persons", query)
|
23
23
|
end
|
24
|
+
|
25
|
+
def create( # rubocop:disable Metrics/ParameterLists, Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
26
|
+
company_id:,
|
27
|
+
first_name:,
|
28
|
+
last_name:,
|
29
|
+
title: nil,
|
30
|
+
salutation: nil,
|
31
|
+
position: nil,
|
32
|
+
department: nil,
|
33
|
+
email: nil,
|
34
|
+
phone: nil,
|
35
|
+
mobile: nil,
|
36
|
+
fax: nil,
|
37
|
+
skype: nil,
|
38
|
+
comment: nil
|
39
|
+
)
|
40
|
+
body = {}
|
41
|
+
body[:first_name] = first_name
|
42
|
+
body[:last_name] = last_name
|
43
|
+
body[:title] = title if title
|
44
|
+
body[:salutation] = salutation if salutation
|
45
|
+
body[:position] = position if position
|
46
|
+
body[:department] = department if department
|
47
|
+
body[:email] = email if email
|
48
|
+
body[:phone] = phone if phone
|
49
|
+
body[:mobile] = mobile if mobile
|
50
|
+
body[:fax] = fax if fax
|
51
|
+
body[:skype] = skype if skype
|
52
|
+
body[:comment] = comment if comment
|
53
|
+
|
54
|
+
post("#{@url_api_path}/contact/companies/#{company_id}/persons", body)
|
55
|
+
end
|
56
|
+
|
57
|
+
def update_by(company_id:, id:, attributes: {})
|
58
|
+
raise ArgumentError, 'attributes must be a Hash' unless attributes.is_a?(Hash)
|
59
|
+
raise ArgumentError, 'company_id must be an Integer' unless company_id.is_a?(Integer)
|
60
|
+
raise ArgumentError, 'id must be an Integer' unless id.is_a?(Integer)
|
61
|
+
|
62
|
+
put("#{@url_api_path}/contact/companies/#{company_id}/persons/#{id}", attributes)
|
63
|
+
end
|
64
|
+
|
65
|
+
def delete_by(company_id:, id:)
|
66
|
+
raise ArgumentError, 'company_id must be an Integer' unless company_id.is_a?(Integer)
|
67
|
+
raise ArgumentError, 'id must be an Integer' unless id.is_a?(Integer)
|
68
|
+
|
69
|
+
delete("#{@url_api_path}/contact/companies/#{company_id}/persons/#{id}")
|
70
|
+
end
|
24
71
|
end
|
25
72
|
end
|
26
73
|
end
|
@@ -13,6 +13,48 @@ module PapierkramApi
|
|
13
13
|
def all
|
14
14
|
get("#{@url_api_path}/income/propositions")
|
15
15
|
end
|
16
|
+
|
17
|
+
def create(
|
18
|
+
name:,
|
19
|
+
article_no:,
|
20
|
+
description: nil,
|
21
|
+
time_unit: nil,
|
22
|
+
proposition_type: nil,
|
23
|
+
price: nil,
|
24
|
+
vat_rate: nil
|
25
|
+
)
|
26
|
+
|
27
|
+
body = {}
|
28
|
+
body[:name] = name
|
29
|
+
body[:article_no] = article_no
|
30
|
+
body[:description] = description if description
|
31
|
+
body[:time_unit] = time_unit if time_unit
|
32
|
+
body[:proposition_type] = proposition_type if proposition_type
|
33
|
+
body[:price] = price if price
|
34
|
+
body[:vat_rate] = vat_rate if vat_rate
|
35
|
+
|
36
|
+
post("#{@url_api_path}/income/propositions", body)
|
37
|
+
end
|
38
|
+
|
39
|
+
def update_by(id:, attributes: {})
|
40
|
+
if attributes[:vat_rate] && (attributes[:vat_rate].empty? || !attributes[:vat_rate].include?('%'))
|
41
|
+
raise ArgumentError, 'vat_rate must be a percentage and include a % sign'
|
42
|
+
end
|
43
|
+
|
44
|
+
put("#{@url_api_path}/income/propositions/#{id}", attributes)
|
45
|
+
end
|
46
|
+
|
47
|
+
def delete_by(id:)
|
48
|
+
delete("#{@url_api_path}/income/propositions/#{id}")
|
49
|
+
end
|
50
|
+
|
51
|
+
def archive_by(id:)
|
52
|
+
post("#{@url_api_path}/income/propositions/#{id}/archive")
|
53
|
+
end
|
54
|
+
|
55
|
+
def unarchive_by(id:)
|
56
|
+
post("#{@url_api_path}/income/propositions/#{id}/unarchive")
|
57
|
+
end
|
16
58
|
end
|
17
59
|
end
|
18
60
|
end
|
@@ -20,6 +20,58 @@ module PapierkramApi
|
|
20
20
|
|
21
21
|
get("#{@url_api_path}/projects", query)
|
22
22
|
end
|
23
|
+
|
24
|
+
def create( # rubocop:disable Metrics/ParameterLists, Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
25
|
+
name:,
|
26
|
+
customer_id:,
|
27
|
+
description: nil,
|
28
|
+
start_date: nil,
|
29
|
+
end_date: nil,
|
30
|
+
flagged: nil,
|
31
|
+
budget_type: nil,
|
32
|
+
budget_money: nil,
|
33
|
+
budget_time: nil,
|
34
|
+
budget_time_unit: nil,
|
35
|
+
color: nil,
|
36
|
+
default_proposition: nil,
|
37
|
+
team_members: nil
|
38
|
+
)
|
39
|
+
|
40
|
+
body = {}
|
41
|
+
body[:name] = name
|
42
|
+
body[:customer] = { id: customer_id }
|
43
|
+
body[:description] = description if description
|
44
|
+
body[:start_date] = start_date if start_date
|
45
|
+
body[:end_date] = end_date if end_date
|
46
|
+
body[:flagged] = flagged if flagged
|
47
|
+
body[:budget_type] = budget_type if budget_type
|
48
|
+
body[:budget_money] = budget_money if budget_money
|
49
|
+
body[:budget_time] = budget_time if budget_time
|
50
|
+
body[:budget_time_unit] = budget_time_unit if budget_time_unit
|
51
|
+
body[:color] = color if color
|
52
|
+
body[:default_proposition] = default_proposition if default_proposition
|
53
|
+
body[:team_members] = team_members if team_members
|
54
|
+
|
55
|
+
post("#{@url_api_path}/projects", body)
|
56
|
+
end
|
57
|
+
|
58
|
+
def update_by(id:, attributes: {})
|
59
|
+
raise ArgumentError, 'attributes must be a Hash' unless attributes.is_a?(Hash)
|
60
|
+
|
61
|
+
put("#{@url_api_path}/projects/#{id}", attributes)
|
62
|
+
end
|
63
|
+
|
64
|
+
def delete_by(id:)
|
65
|
+
delete("#{@url_api_path}/projects/#{id}")
|
66
|
+
end
|
67
|
+
|
68
|
+
def archive_by(id:)
|
69
|
+
post("#{@url_api_path}/projects/#{id}/archive")
|
70
|
+
end
|
71
|
+
|
72
|
+
def unarchive_by(id:)
|
73
|
+
post("#{@url_api_path}/projects/#{id}/unarchive")
|
74
|
+
end
|
23
75
|
end
|
24
76
|
end
|
25
77
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: papierkram_api_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Simon Neutert
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-06-
|
11
|
+
date: 2023-06-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|