papierkram_api_client 0.2.2 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|