@osise/api-client 0.0.1

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.
Files changed (116) hide show
  1. package/README.md +474 -0
  2. package/dist/cjs/api/admin.js +277 -0
  3. package/dist/cjs/api/admin.js.map +1 -0
  4. package/dist/cjs/api/artisans.js +277 -0
  5. package/dist/cjs/api/artisans.js.map +1 -0
  6. package/dist/cjs/api/auth.js +83 -0
  7. package/dist/cjs/api/auth.js.map +1 -0
  8. package/dist/cjs/api/consumers.js +170 -0
  9. package/dist/cjs/api/consumers.js.map +1 -0
  10. package/dist/cjs/api/index.js +22 -0
  11. package/dist/cjs/api/index.js.map +1 -0
  12. package/dist/cjs/api/jobs.js +202 -0
  13. package/dist/cjs/api/jobs.js.map +1 -0
  14. package/dist/cjs/hooks/index.js +435 -0
  15. package/dist/cjs/hooks/index.js.map +1 -0
  16. package/dist/cjs/index.js +189 -0
  17. package/dist/cjs/index.js.map +1 -0
  18. package/dist/cjs/types/admin.js +6 -0
  19. package/dist/cjs/types/admin.js.map +1 -0
  20. package/dist/cjs/types/artisan.js +6 -0
  21. package/dist/cjs/types/artisan.js.map +1 -0
  22. package/dist/cjs/types/auth.js +6 -0
  23. package/dist/cjs/types/auth.js.map +1 -0
  24. package/dist/cjs/types/common.js +6 -0
  25. package/dist/cjs/types/common.js.map +1 -0
  26. package/dist/cjs/types/consumer.js +6 -0
  27. package/dist/cjs/types/consumer.js.map +1 -0
  28. package/dist/cjs/types/enums.js +226 -0
  29. package/dist/cjs/types/enums.js.map +1 -0
  30. package/dist/cjs/types/index.js +35 -0
  31. package/dist/cjs/types/index.js.map +1 -0
  32. package/dist/cjs/types/job.js +6 -0
  33. package/dist/cjs/types/job.js.map +1 -0
  34. package/dist/cjs/utils/http-client.js +214 -0
  35. package/dist/cjs/utils/http-client.js.map +1 -0
  36. package/dist/cjs/utils/index.js +19 -0
  37. package/dist/cjs/utils/index.js.map +1 -0
  38. package/dist/cjs/utils/storage.js +105 -0
  39. package/dist/cjs/utils/storage.js.map +1 -0
  40. package/dist/esm/api/admin.js +269 -0
  41. package/dist/esm/api/admin.js.map +1 -0
  42. package/dist/esm/api/artisans.js +270 -0
  43. package/dist/esm/api/artisans.js.map +1 -0
  44. package/dist/esm/api/auth.js +79 -0
  45. package/dist/esm/api/auth.js.map +1 -0
  46. package/dist/esm/api/consumers.js +165 -0
  47. package/dist/esm/api/consumers.js.map +1 -0
  48. package/dist/esm/api/index.js +6 -0
  49. package/dist/esm/api/index.js.map +1 -0
  50. package/dist/esm/api/jobs.js +197 -0
  51. package/dist/esm/api/jobs.js.map +1 -0
  52. package/dist/esm/hooks/index.js +408 -0
  53. package/dist/esm/hooks/index.js.map +1 -0
  54. package/dist/esm/index.js +165 -0
  55. package/dist/esm/index.js.map +1 -0
  56. package/dist/esm/types/admin.js +5 -0
  57. package/dist/esm/types/admin.js.map +1 -0
  58. package/dist/esm/types/artisan.js +5 -0
  59. package/dist/esm/types/artisan.js.map +1 -0
  60. package/dist/esm/types/auth.js +5 -0
  61. package/dist/esm/types/auth.js.map +1 -0
  62. package/dist/esm/types/common.js +5 -0
  63. package/dist/esm/types/common.js.map +1 -0
  64. package/dist/esm/types/consumer.js +5 -0
  65. package/dist/esm/types/consumer.js.map +1 -0
  66. package/dist/esm/types/enums.js +223 -0
  67. package/dist/esm/types/enums.js.map +1 -0
  68. package/dist/esm/types/index.js +19 -0
  69. package/dist/esm/types/index.js.map +1 -0
  70. package/dist/esm/types/job.js +5 -0
  71. package/dist/esm/types/job.js.map +1 -0
  72. package/dist/esm/utils/http-client.js +208 -0
  73. package/dist/esm/utils/http-client.js.map +1 -0
  74. package/dist/esm/utils/index.js +3 -0
  75. package/dist/esm/utils/index.js.map +1 -0
  76. package/dist/esm/utils/storage.js +99 -0
  77. package/dist/esm/utils/storage.js.map +1 -0
  78. package/dist/types/api/admin.d.ts +188 -0
  79. package/dist/types/api/admin.d.ts.map +1 -0
  80. package/dist/types/api/artisans.d.ts +183 -0
  81. package/dist/types/api/artisans.d.ts.map +1 -0
  82. package/dist/types/api/auth.d.ts +58 -0
  83. package/dist/types/api/auth.d.ts.map +1 -0
  84. package/dist/types/api/consumers.d.ts +113 -0
  85. package/dist/types/api/consumers.d.ts.map +1 -0
  86. package/dist/types/api/index.d.ts +6 -0
  87. package/dist/types/api/index.d.ts.map +1 -0
  88. package/dist/types/api/jobs.d.ts +136 -0
  89. package/dist/types/api/jobs.d.ts.map +1 -0
  90. package/dist/types/hooks/index.d.ts +225 -0
  91. package/dist/types/hooks/index.d.ts.map +1 -0
  92. package/dist/types/index.d.ts +127 -0
  93. package/dist/types/index.d.ts.map +1 -0
  94. package/dist/types/types/admin.d.ts +226 -0
  95. package/dist/types/types/admin.d.ts.map +1 -0
  96. package/dist/types/types/artisan.d.ts +438 -0
  97. package/dist/types/types/artisan.d.ts.map +1 -0
  98. package/dist/types/types/auth.d.ts +92 -0
  99. package/dist/types/types/auth.d.ts.map +1 -0
  100. package/dist/types/types/common.d.ts +105 -0
  101. package/dist/types/types/common.d.ts.map +1 -0
  102. package/dist/types/types/consumer.d.ts +144 -0
  103. package/dist/types/types/consumer.d.ts.map +1 -0
  104. package/dist/types/types/enums.d.ts +199 -0
  105. package/dist/types/types/enums.d.ts.map +1 -0
  106. package/dist/types/types/index.d.ts +12 -0
  107. package/dist/types/types/index.d.ts.map +1 -0
  108. package/dist/types/types/job.d.ts +226 -0
  109. package/dist/types/types/job.d.ts.map +1 -0
  110. package/dist/types/utils/http-client.d.ts +65 -0
  111. package/dist/types/utils/http-client.d.ts.map +1 -0
  112. package/dist/types/utils/index.d.ts +3 -0
  113. package/dist/types/utils/index.d.ts.map +1 -0
  114. package/dist/types/utils/storage.d.ts +48 -0
  115. package/dist/types/utils/storage.d.ts.map +1 -0
  116. package/package.json +78 -0
@@ -0,0 +1,165 @@
1
+ /**
2
+ * Consumers API
3
+ * Handles consumer profile, addresses, favorites, and notifications
4
+ */
5
+ export class ConsumersApi {
6
+ constructor(http) {
7
+ this.http = http;
8
+ this.basePath = '/api/v1/consumers';
9
+ }
10
+ // ==================== Profile ====================
11
+ /**
12
+ * Register consumer profile after authentication
13
+ */
14
+ async register(data) {
15
+ return this.http.post(`${this.basePath}/register`, data);
16
+ }
17
+ /**
18
+ * Get current consumer's profile
19
+ */
20
+ async getProfile() {
21
+ return this.http.get(`${this.basePath}/profile`);
22
+ }
23
+ /**
24
+ * Update consumer profile
25
+ */
26
+ async updateProfile(data) {
27
+ return this.http.patch(`${this.basePath}/profile`, data);
28
+ }
29
+ /**
30
+ * Upload profile photo (Uploadcare URL)
31
+ */
32
+ async uploadProfilePhoto(photoUrl) {
33
+ return this.http.post(`${this.basePath}/profile/photo`, { photoUrl });
34
+ }
35
+ /**
36
+ * Update account type (Individual/Business)
37
+ */
38
+ async updateAccountType(accountType) {
39
+ return this.http.patch(`${this.basePath}/profile/account-type`, { accountType });
40
+ }
41
+ /**
42
+ * Request account deletion (NDPR compliance)
43
+ */
44
+ async requestAccountDeletion(data) {
45
+ return this.http.post(`${this.basePath}/profile/delete-request`, data);
46
+ }
47
+ /**
48
+ * Export consumer data (NDPR compliance)
49
+ */
50
+ async exportData() {
51
+ return this.http.get(`${this.basePath}/profile/export`);
52
+ }
53
+ // ==================== Addresses ====================
54
+ /**
55
+ * Get all addresses for the consumer
56
+ */
57
+ async getAddresses() {
58
+ return this.http.get(`${this.basePath}/addresses`);
59
+ }
60
+ /**
61
+ * Get a specific address
62
+ */
63
+ async getAddress(addressId) {
64
+ return this.http.get(`${this.basePath}/addresses/${addressId}`);
65
+ }
66
+ /**
67
+ * Add a new address
68
+ */
69
+ async addAddress(data) {
70
+ return this.http.post(`${this.basePath}/addresses`, data);
71
+ }
72
+ /**
73
+ * Update an existing address
74
+ */
75
+ async updateAddress(addressId, data) {
76
+ return this.http.patch(`${this.basePath}/addresses/${addressId}`, data);
77
+ }
78
+ /**
79
+ * Delete an address
80
+ */
81
+ async deleteAddress(addressId) {
82
+ return this.http.delete(`${this.basePath}/addresses/${addressId}`);
83
+ }
84
+ /**
85
+ * Set an address as the default
86
+ */
87
+ async setDefaultAddress(addressId) {
88
+ return this.http.post(`${this.basePath}/addresses/${addressId}/set-default`);
89
+ }
90
+ // ==================== Favorites ====================
91
+ /**
92
+ * Get favorite artisans
93
+ */
94
+ async getFavorites(params) {
95
+ return this.http.get(`${this.basePath}/favorites`, params);
96
+ }
97
+ /**
98
+ * Add artisan to favorites
99
+ */
100
+ async addFavorite(artisanId, notes) {
101
+ return this.http.post(`${this.basePath}/favorites/${artisanId}`, { notes });
102
+ }
103
+ /**
104
+ * Remove artisan from favorites
105
+ */
106
+ async removeFavorite(artisanId) {
107
+ return this.http.delete(`${this.basePath}/favorites/${artisanId}`);
108
+ }
109
+ // ==================== Notifications ====================
110
+ /**
111
+ * Get notification settings
112
+ */
113
+ async getNotificationSettings() {
114
+ return this.http.get(`${this.basePath}/notifications/settings`);
115
+ }
116
+ /**
117
+ * Update notification settings
118
+ */
119
+ async updateNotificationSettings(data) {
120
+ return this.http.put(`${this.basePath}/notifications/settings`, data);
121
+ }
122
+ }
123
+ export class ConsumerAddressesApi {
124
+ constructor(http) {
125
+ this.http = http;
126
+ this.basePath = '/api/v1/consumers/addresses';
127
+ }
128
+ /**
129
+ * Get all addresses for the consumer
130
+ */
131
+ async getAll() {
132
+ return this.http.get(this.basePath);
133
+ }
134
+ /**
135
+ * Get a specific address
136
+ */
137
+ async get(addressId) {
138
+ return this.http.get(`${this.basePath}/${addressId}`);
139
+ }
140
+ /**
141
+ * Add a new address
142
+ */
143
+ async create(data) {
144
+ return this.http.post(this.basePath, data);
145
+ }
146
+ /**
147
+ * Update an existing address
148
+ */
149
+ async update(addressId, data) {
150
+ return this.http.patch(`${this.basePath}/${addressId}`, data);
151
+ }
152
+ /**
153
+ * Delete an address
154
+ */
155
+ async delete(addressId) {
156
+ return this.http.delete(`${this.basePath}/${addressId}`);
157
+ }
158
+ /**
159
+ * Set an address as the default
160
+ */
161
+ async setDefault(addressId) {
162
+ return this.http.post(`${this.basePath}/${addressId}/set-default`);
163
+ }
164
+ }
165
+ //# sourceMappingURL=consumers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumers.js","sourceRoot":"","sources":["../../../src/api/consumers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export * from './auth';
2
+ export * from './consumers';
3
+ export * from './artisans';
4
+ export * from './jobs';
5
+ export * from './admin';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC"}
@@ -0,0 +1,197 @@
1
+ /**
2
+ * Jobs API
3
+ * Handles job requests, quotes, payments, ratings, and disputes
4
+ */
5
+ import { JobStatus, } from '../types';
6
+ export class JobsApi {
7
+ constructor(http) {
8
+ this.http = http;
9
+ this.basePath = '/api/v1/jobs';
10
+ }
11
+ // ==================== Consumer Job Operations ====================
12
+ /**
13
+ * Create a new job request
14
+ */
15
+ async create(data) {
16
+ return this.http.post(this.basePath, data);
17
+ }
18
+ /**
19
+ * Get a specific job by ID
20
+ */
21
+ async get(jobId) {
22
+ return this.http.get(`${this.basePath}/${jobId}`);
23
+ }
24
+ /**
25
+ * Update a pending job request
26
+ */
27
+ async update(jobId, data) {
28
+ return this.http.patch(`${this.basePath}/${jobId}`, data);
29
+ }
30
+ /**
31
+ * Get consumer's jobs (paginated with filters)
32
+ */
33
+ async list(params) {
34
+ return this.http.get(this.basePath, params);
35
+ }
36
+ /**
37
+ * Cancel a job
38
+ */
39
+ async cancel(jobId, data) {
40
+ return this.http.post(`${this.basePath}/${jobId}/cancel`, data);
41
+ }
42
+ /**
43
+ * Get job timeline/history
44
+ */
45
+ async getTimeline(jobId) {
46
+ return this.http.get(`${this.basePath}/${jobId}/timeline`);
47
+ }
48
+ // ==================== Quote Operations (Consumer) ====================
49
+ /**
50
+ * Get the current quote for a job
51
+ */
52
+ async getQuote(jobId) {
53
+ return this.http.get(`${this.basePath}/${jobId}/quote`);
54
+ }
55
+ /**
56
+ * Approve or reject a quote
57
+ */
58
+ async respondToQuote(jobId, data) {
59
+ return this.http.post(`${this.basePath}/${jobId}/quote/respond`, data);
60
+ }
61
+ // ==================== Payment Operations ====================
62
+ /**
63
+ * Get payment details for a job
64
+ */
65
+ async getPayment(jobId) {
66
+ return this.http.get(`${this.basePath}/${jobId}/payment`);
67
+ }
68
+ /**
69
+ * Initiate payment for a job
70
+ */
71
+ async initiatePayment(jobId, data) {
72
+ return this.http.post(`${this.basePath}/${jobId}/payment/initiate`, data);
73
+ }
74
+ /**
75
+ * Verify payment (callback from payment gateway)
76
+ */
77
+ async verifyPayment(jobId, reference) {
78
+ return this.http.post(`${this.basePath}/${jobId}/payment/verify`, { reference });
79
+ }
80
+ /**
81
+ * Mark payment as cash (for cash payments)
82
+ */
83
+ async markCashPayment(jobId) {
84
+ return this.http.post(`${this.basePath}/${jobId}/payment/cash`);
85
+ }
86
+ // ==================== Rating Operations ====================
87
+ /**
88
+ * Get rating for a completed job
89
+ */
90
+ async getRating(jobId) {
91
+ return this.http.get(`${this.basePath}/${jobId}/rating`);
92
+ }
93
+ /**
94
+ * Submit rating for a completed job
95
+ */
96
+ async submitRating(jobId, data) {
97
+ return this.http.post(`${this.basePath}/${jobId}/rating`, data);
98
+ }
99
+ // ==================== Dispute Operations ====================
100
+ /**
101
+ * Get dispute for a job
102
+ */
103
+ async getDispute(jobId) {
104
+ return this.http.get(`${this.basePath}/${jobId}/dispute`);
105
+ }
106
+ /**
107
+ * Create a dispute for a job
108
+ */
109
+ async createDispute(jobId, data) {
110
+ return this.http.post(`${this.basePath}/${jobId}/dispute`, data);
111
+ }
112
+ }
113
+ export class ArtisanJobsApi {
114
+ constructor(http) {
115
+ this.http = http;
116
+ this.basePath = '/api/v1/artisans/jobs';
117
+ }
118
+ /**
119
+ * Get assigned jobs for artisan (paginated with filters)
120
+ */
121
+ async list(params) {
122
+ return this.http.get(this.basePath, params);
123
+ }
124
+ /**
125
+ * Get a specific assigned job
126
+ */
127
+ async get(jobId) {
128
+ return this.http.get(`${this.basePath}/${jobId}`);
129
+ }
130
+ /**
131
+ * Accept an assigned job
132
+ */
133
+ async accept(jobId) {
134
+ return this.http.post(`${this.basePath}/${jobId}/accept`);
135
+ }
136
+ /**
137
+ * Decline an assigned job
138
+ */
139
+ async decline(jobId, reason) {
140
+ return this.http.post(`${this.basePath}/${jobId}/decline`, { reason });
141
+ }
142
+ /**
143
+ * Update job status (en_route, arrived, in_progress, completed)
144
+ */
145
+ async updateStatus(jobId, data) {
146
+ return this.http.patch(`${this.basePath}/${jobId}/status`, data);
147
+ }
148
+ /**
149
+ * Start traveling to job location
150
+ */
151
+ async startEnRoute(jobId) {
152
+ return this.updateStatus(jobId, { status: JobStatus.ArtisanEnRoute });
153
+ }
154
+ /**
155
+ * Mark arrival at job location (GPS verified)
156
+ */
157
+ async markArrived(jobId, location) {
158
+ return this.updateStatus(jobId, { status: JobStatus.Arrived, location });
159
+ }
160
+ /**
161
+ * Start work on the job
162
+ */
163
+ async startWork(jobId) {
164
+ return this.updateStatus(jobId, { status: JobStatus.InProgress });
165
+ }
166
+ /**
167
+ * Mark job as completed
168
+ */
169
+ async complete(jobId, notes) {
170
+ return this.updateStatus(jobId, { status: JobStatus.Completed, notes });
171
+ }
172
+ /**
173
+ * Submit a quote for the job
174
+ */
175
+ async submitQuote(jobId, data) {
176
+ return this.http.post(`${this.basePath}/${jobId}/quote`, data);
177
+ }
178
+ /**
179
+ * Revise a rejected quote
180
+ */
181
+ async reviseQuote(jobId, data) {
182
+ return this.http.put(`${this.basePath}/${jobId}/quote`, data);
183
+ }
184
+ /**
185
+ * Update location while en route
186
+ */
187
+ async updateLocation(jobId, data) {
188
+ return this.http.post(`${this.basePath}/${jobId}/location`, data);
189
+ }
190
+ /**
191
+ * Respond to a consumer review
192
+ */
193
+ async respondToReview(jobId, response) {
194
+ return this.http.post(`${this.basePath}/${jobId}/review/respond`, { response });
195
+ }
196
+ }
197
+ //# sourceMappingURL=jobs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../../src/api/jobs.ts"],"names":[],"mappings":"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"}