praxicraft 0.1.2 → 1.0.0
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/CHANGELOG.md +5 -3
- data/README.md +3 -3
- data/lib/praxicraft/resources/assessments.rb +13 -13
- data/lib/praxicraft/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: 686ed00809dbb228cc3d5c49600310c02c8c64ee4036bfb26f0ed6a481c60675
|
|
4
|
+
data.tar.gz: 6e5bac90ab609afe0c8abe8e58f843ba4e1bf6ecd088a7d46a2dadf309608e3b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: da59f91f5b965c5868957a6b23cb41451dfc2d9c701b5071bc7af0b2d7ee2fa06ff9a3961f7f598325f81b1fa010685dbdd250f8f4feb84e3943df237b93aa2c
|
|
7
|
+
data.tar.gz: 6f1ae348d21261916b693d1dcbbbe84175f0e092108f5b15045b9b6bd450e7f1b3ed1f5d94347343177020fd016437c70d8c8c64ae99b3ca38fbfb312ef08c78
|
data/CHANGELOG.md
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## 0.
|
|
3
|
+
## [1.0.0] — 2026-08-27
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
### Breaking
|
|
6
|
+
|
|
7
|
+
- Rename assessment task methods from `list_cases` / `attach_cases` / `replace_cases` / `remove_case` to `list_tasks` / `attach_tasks` / `replace_tasks` / `remove_task`.
|
|
8
|
+
- Wire paths use `/tasks/` instead of `/cases/`; JSON keys use `tasks`, `task_id`, and `assessment_task_id`.
|
|
7
9
|
|
|
8
10
|
## [0.1.1] — 2026-08-21
|
|
9
11
|
|
data/README.md
CHANGED
|
@@ -96,7 +96,7 @@ Responses are **flat JSON** (same shape as the Public API — no `{ "data": …
|
|
|
96
96
|
| Resource | Common methods |
|
|
97
97
|
|----------|----------------|
|
|
98
98
|
| `client.org` | `retrieve`, `stats` |
|
|
99
|
-
| `client.assessments` | `list`, `retrieve`, `create`, `update`, `activate`, `
|
|
99
|
+
| `client.assessments` | `list`, `retrieve`, `create`, `update`, `activate`, `list_tasks`, `attach_tasks`, `replace_tasks`, `remove_task` |
|
|
100
100
|
| `client.invites` | `create`, `bulk_create`, `list`, `retrieve`, `remind`, `cancel` |
|
|
101
101
|
| `client.results` | `list`, `retrieve`, `iter_all` |
|
|
102
102
|
| `client.webhooks` | `list`, `create`, `retrieve`, `update`, `delete`, `test`, `deliveries` |
|
|
@@ -131,9 +131,9 @@ client.invites.bulk_create(
|
|
|
131
131
|
|
|
132
132
|
```ruby
|
|
133
133
|
assessment = client.assessments.create(title: "Backend screen")
|
|
134
|
-
client.assessments.
|
|
134
|
+
client.assessments.attach_tasks(
|
|
135
135
|
assessment["slug"],
|
|
136
|
-
|
|
136
|
+
tasks: [{ "task_id" => "<platform-or-org-task-uuid>", "source" => "platform" }]
|
|
137
137
|
)
|
|
138
138
|
client.assessments.activate(assessment["slug"])
|
|
139
139
|
```
|
|
@@ -35,35 +35,35 @@ module Praxicraft
|
|
|
35
35
|
update(assessment, "status" => "active")
|
|
36
36
|
end
|
|
37
37
|
|
|
38
|
-
def
|
|
38
|
+
def list_tasks(assessment, params = nil)
|
|
39
39
|
key = Client.path_segment(assessment, "assessment")
|
|
40
|
-
@client.get("/assessments/#{key}/
|
|
40
|
+
@client.get("/assessments/#{key}/tasks/", normalize(params))
|
|
41
41
|
end
|
|
42
42
|
|
|
43
|
-
def
|
|
43
|
+
def attach_tasks(assessment, args = nil, **kwargs)
|
|
44
44
|
body = normalize(args || kwargs)
|
|
45
45
|
if body.nil? || body.empty?
|
|
46
|
-
raise APIError.new("
|
|
46
|
+
raise APIError.new("attach_tasks() requires tasks or task_id", "INVALID_ARGUMENT")
|
|
47
47
|
end
|
|
48
48
|
|
|
49
49
|
key = Client.path_segment(assessment, "assessment")
|
|
50
|
-
@client.post("/assessments/#{key}/
|
|
50
|
+
@client.post("/assessments/#{key}/tasks/attach/", body)
|
|
51
51
|
end
|
|
52
52
|
|
|
53
|
-
def
|
|
53
|
+
def replace_tasks(assessment, tasks, extra = nil, **kwargs)
|
|
54
54
|
key = Client.path_segment(assessment, "assessment")
|
|
55
|
-
body = { "
|
|
56
|
-
@client.put("/assessments/#{key}/
|
|
55
|
+
body = { "tasks" => tasks }.merge(normalize(extra || kwargs) || {})
|
|
56
|
+
@client.put("/assessments/#{key}/tasks/replace/", body)
|
|
57
57
|
end
|
|
58
58
|
|
|
59
|
-
def
|
|
59
|
+
def remove_task(assessment, assessment_task_id)
|
|
60
60
|
key = Client.path_segment(assessment, "assessment")
|
|
61
|
-
|
|
62
|
-
if
|
|
63
|
-
raise APIError.new("
|
|
61
|
+
task_id = assessment_task_id.to_s.strip
|
|
62
|
+
if task_id.empty?
|
|
63
|
+
raise APIError.new("assessment_task_id must be a non-empty string", "INVALID_ARGUMENT")
|
|
64
64
|
end
|
|
65
65
|
|
|
66
|
-
@client.delete("/assessments/#{key}/
|
|
66
|
+
@client.delete("/assessments/#{key}/tasks/remove/", { "assessment_task_id" => task_id })
|
|
67
67
|
end
|
|
68
68
|
|
|
69
69
|
private
|
data/lib/praxicraft/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: praxicraft
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 1.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- PraxiCraft
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-08-
|
|
11
|
+
date: 2026-08-27 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: minitest
|