spree_api 4.5.5 → 4.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (29) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/concerns/spree/api/v2/product_list_includes.rb +2 -1
  3. data/app/controllers/spree/api/v2/base_controller.rb +2 -0
  4. data/app/controllers/spree/api/v2/data_feeds/google_controller.rb +24 -0
  5. data/app/controllers/spree/api/v2/platform/data_feeds_controller.rb +15 -0
  6. data/app/controllers/spree/api/v2/resource_controller.rb +1 -1
  7. data/app/controllers/spree/api/v2/storefront/products_controller.rb +1 -1
  8. data/app/controllers/spree/api/v2/storefront/taxons_controller.rb +4 -3
  9. data/app/helpers/spree/api/v2/collection_options_helpers.rb +1 -1
  10. data/app/models/spree/webhooks/event.rb +8 -0
  11. data/app/models/spree/webhooks/event_signature.rb +33 -0
  12. data/app/models/spree/webhooks/subscriber.rb +2 -1
  13. data/app/serializers/spree/api/v2/platform/data_feed_serializer.rb +13 -0
  14. data/app/serializers/spree/api/v2/platform/user_serializer.rb +1 -1
  15. data/app/serializers/spree/v2/storefront/product_serializer.rb +4 -0
  16. data/app/serializers/spree/v2/storefront/taxon_serializer.rb +4 -0
  17. data/app/serializers/spree/v2/storefront/user_serializer.rb +1 -1
  18. data/app/services/spree/webhooks/subscribers/handle_request.rb +5 -1
  19. data/app/services/spree/webhooks/subscribers/make_request.rb +3 -2
  20. data/brakeman.ignore +7 -0
  21. data/config/routes.rb +8 -0
  22. data/db/migrate/20221221122100_add_secret_key_to_spree_webhooks_subscribers.rb +5 -0
  23. data/db/migrate/20230116204600_backfill_secret_key_for_spree_webhooks_subscribers.rb +5 -0
  24. data/db/migrate/20230116205000_change_secret_key_to_non_null_column.rb +5 -0
  25. data/docs/oauth/index.yml +5 -5
  26. data/docs/v2/platform/index.yaml +329 -1
  27. data/docs/v2/storefront/index.yaml +129 -105
  28. data/lib/spree/api/dependencies.rb +86 -129
  29. metadata +15 -7
@@ -2200,6 +2200,282 @@ paths:
2200
2200
  error: The access token is invalid
2201
2201
  schema:
2202
2202
  "$ref": "#/components/schemas/error"
2203
+ "/api/v2/platform/data_feeds":
2204
+ get:
2205
+ summary: Return a list of Data Feeds
2206
+ tags:
2207
+ - Data Feeds
2208
+ security:
2209
+ - bearer_auth: [ ]
2210
+ operationId: data-feeds-list
2211
+ parameters:
2212
+ - name: page
2213
+ in: query
2214
+ example: 1
2215
+ schema:
2216
+ type: integer
2217
+ - name: per_page
2218
+ in: query
2219
+ example: 50
2220
+ schema:
2221
+ type: integer
2222
+ responses:
2223
+ '200':
2224
+ description: Records returned
2225
+ content:
2226
+ application/vnd.api+json:
2227
+ examples:
2228
+ Example:
2229
+ value:
2230
+ data:
2231
+ - id: '1'
2232
+ type: data_feed
2233
+ attributes:
2234
+ name: First Data Feed
2235
+ type: Spree::DataFeed::Google
2236
+ slug: e593ae1f-630a-4f77-832f-0489da1c921b
2237
+ active: true
2238
+ - id: '2'
2239
+ type: data_feed
2240
+ attributes:
2241
+ name: Second Data Feed
2242
+ type: Spree::DataFeed::Google
2243
+ slug: 52f060f2-76cf-4983-89a3-714419941463
2244
+ active: true
2245
+ meta:
2246
+ count: 2
2247
+ total_count: 2
2248
+ total_pages: 1
2249
+ links:
2250
+ self: http://www.example.com/api/v2/platform/data_feeds?page=1&per_page=
2251
+ next: http://www.example.com/api/v2/platform/data_feeds?page=1&per_page=
2252
+ prev: http://www.example.com/api/v2/platform/data_feeds?page=1&per_page=
2253
+ last: http://www.example.com/api/v2/platform/data_feeds?page=1&per_page=
2254
+ first: http://www.example.com/api/v2/platform/data_feeds?page=1&per_page=
2255
+ schema:
2256
+ "$ref": "#/components/schemas/resources_list"
2257
+ '401':
2258
+ description: Authentication Failed
2259
+ content:
2260
+ application/vnd.api+json:
2261
+ examples:
2262
+ Example:
2263
+ value:
2264
+ error: The access token is invalid
2265
+ schema:
2266
+ "$ref": "#/components/schemas/error"
2267
+ post:
2268
+ summary: Create a Data Feed
2269
+ tags:
2270
+ - Data Feeds
2271
+ security:
2272
+ - bearer_auth: [ ]
2273
+ description: Creates a Data Feed
2274
+ operationId: create-data-feed
2275
+ parameters: [ ]
2276
+ responses:
2277
+ '201':
2278
+ description: Record created
2279
+ content:
2280
+ application/vnd.api+json:
2281
+ examples:
2282
+ Example:
2283
+ value:
2284
+ data:
2285
+ id: '1'
2286
+ type: data_feed
2287
+ attributes:
2288
+ name: First Data Feed
2289
+ type: Spree::DataFeed::Google
2290
+ slug: e593ae1f-630a-4f77-832f-0489da1c921b
2291
+ active: true
2292
+ schema:
2293
+ "$ref": "#/components/schemas/resource"
2294
+ '422':
2295
+ description: Invalid request
2296
+ content:
2297
+ application/vnd.api+json:
2298
+ examples:
2299
+ Example:
2300
+ value:
2301
+ error: Data Feed name can't be blank
2302
+ errors:
2303
+ name:
2304
+ - can't be blank
2305
+ type:
2306
+ - can't be blank
2307
+ schema:
2308
+ "$ref": "#/components/schemas/validation_errors"
2309
+ requestBody:
2310
+ content:
2311
+ application/json:
2312
+ schema:
2313
+ "$ref": "#/components/schemas/create_data_feed_params"
2314
+ "/api/v2/platform/data_feeds/{id}":
2315
+ get:
2316
+ summary: Return a Data Feed
2317
+ tags:
2318
+ - Data Feeds
2319
+ security:
2320
+ - bearer_auth: [ ]
2321
+ description: Returns a Data Feed
2322
+ operationId: show-data-feed
2323
+ parameters:
2324
+ - name: id
2325
+ in: path
2326
+ required: true
2327
+ schema:
2328
+ type: string
2329
+ responses:
2330
+ '200':
2331
+ description: Record found
2332
+ content:
2333
+ application/vnd.api+json:
2334
+ examples:
2335
+ Example:
2336
+ value:
2337
+ data:
2338
+ id: '1'
2339
+ type: data_feed
2340
+ attributes:
2341
+ name: First Data Feed
2342
+ type: Spree::DataFeed::Google
2343
+ slug: e593ae1f-630a-4f77-832f-0489da1c921b
2344
+ active: true
2345
+ relationships:
2346
+ store:
2347
+ data:
2348
+ id: '1'
2349
+ type: store
2350
+ schema:
2351
+ "$ref": "#/components/schemas/resource"
2352
+ '404':
2353
+ description: Record not found
2354
+ content:
2355
+ application/vnd.api+json:
2356
+ examples:
2357
+ Example:
2358
+ value:
2359
+ error: The resource you were looking for could not be found.
2360
+ schema:
2361
+ "$ref": "#/components/schemas/error"
2362
+ '401':
2363
+ description: Authentication Failed
2364
+ content:
2365
+ application/vnd.api+json:
2366
+ examples:
2367
+ Example:
2368
+ value:
2369
+ error: The access token is invalid
2370
+ schema:
2371
+ "$ref": "#/components/schemas/error"
2372
+ patch:
2373
+ summary: Update a Data Feed
2374
+ tags:
2375
+ - Data Feeds
2376
+ security:
2377
+ - bearer_auth: [ ]
2378
+ description: Updates a Data Feed
2379
+ operationId: update-data-feed
2380
+ parameters:
2381
+ - name: id
2382
+ in: path
2383
+ required: true
2384
+ schema:
2385
+ type: string
2386
+ responses:
2387
+ '200':
2388
+ description: Record updated
2389
+ content:
2390
+ application/vnd.api+json:
2391
+ examples:
2392
+ Example:
2393
+ value:
2394
+ data:
2395
+ id: '1'
2396
+ type: data_feed
2397
+ attributes:
2398
+ name: First Data Feed
2399
+ type: Spree::DataFeed::Google
2400
+ slug: e593ae1f-630a-4f77-832f-0489da1c921b
2401
+ active: true
2402
+ schema:
2403
+ "$ref": "#/components/schemas/resource"
2404
+ '422':
2405
+ description: Invalid request
2406
+ content:
2407
+ application/vnd.api+json:
2408
+ examples:
2409
+ Example:
2410
+ value:
2411
+ error: Name is blank
2412
+ errors:
2413
+ name:
2414
+ - is blank
2415
+ schema:
2416
+ "$ref": "#/components/schemas/validation_errors"
2417
+ '404':
2418
+ description: Record not found
2419
+ content:
2420
+ application/vnd.api+json:
2421
+ examples:
2422
+ Example:
2423
+ value:
2424
+ error: The resource you were looking for could not be found.
2425
+ schema:
2426
+ "$ref": "#/components/schemas/error"
2427
+ '401':
2428
+ description: Authentication Failed
2429
+ content:
2430
+ application/vnd.api+json:
2431
+ examples:
2432
+ Example:
2433
+ value:
2434
+ error: The access token is invalid
2435
+ schema:
2436
+ "$ref": "#/components/schemas/error"
2437
+ requestBody:
2438
+ content:
2439
+ application/json:
2440
+ schema:
2441
+ "$ref": "#/components/schemas/update_data_feed_params"
2442
+ delete:
2443
+ summary: Delete a Data Feed
2444
+ tags:
2445
+ - Data Feeds
2446
+ security:
2447
+ - bearer_auth: [ ]
2448
+ description: Deletes a Data Feed
2449
+ operationId: delete-data-feed
2450
+ parameters:
2451
+ - name: id
2452
+ in: path
2453
+ required: true
2454
+ schema:
2455
+ type: string
2456
+ responses:
2457
+ '204':
2458
+ description: Record deleted
2459
+ '404':
2460
+ description: Record not found
2461
+ content:
2462
+ application/vnd.api+json:
2463
+ examples:
2464
+ Example:
2465
+ value:
2466
+ error: The resource you were looking for could not be found.
2467
+ schema:
2468
+ "$ref": "#/components/schemas/error"
2469
+ '401':
2470
+ description: Authentication Failed
2471
+ content:
2472
+ application/vnd.api+json:
2473
+ examples:
2474
+ Example:
2475
+ value:
2476
+ error: The access token is invalid
2477
+ schema:
2478
+ "$ref": "#/components/schemas/error"
2203
2479
  "/api/v2/platform/digital_links":
2204
2480
  get:
2205
2481
  summary: Return a list of Digital Links
@@ -15490,6 +15766,7 @@ paths:
15490
15766
  email: ivonne.braun@smith.biz
15491
15767
  first_name: Liberty
15492
15768
  last_name: Becker
15769
+ selected_locale: nil
15493
15770
  created_at: '2022-11-08T19:35:53.726Z'
15494
15771
  updated_at: '2022-11-08T19:35:53.726Z'
15495
15772
  public_metadata: {}
@@ -15508,6 +15785,7 @@ paths:
15508
15785
  email: lenita.mayer@kulas.us
15509
15786
  first_name: Chasidy
15510
15787
  last_name: Strosin
15788
+ selected_locale: 'fr'
15511
15789
  created_at: '2022-11-08T19:35:53.730Z'
15512
15790
  updated_at: '2022-11-08T19:35:53.730Z'
15513
15791
  public_metadata: {}
@@ -15526,6 +15804,7 @@ paths:
15526
15804
  email: dewayne@terrybarton.info
15527
15805
  first_name: Ruben
15528
15806
  last_name: Schmidt
15807
+ selected_locale: 'de'
15529
15808
  created_at: '2022-11-08T19:35:53.732Z'
15530
15809
  updated_at: '2022-11-08T19:35:53.732Z'
15531
15810
  public_metadata: {}
@@ -15591,6 +15870,7 @@ paths:
15591
15870
  email: rex_champlin@breitenberg.com
15592
15871
  first_name: Zenia
15593
15872
  last_name: King
15873
+ selected_locale: 'pl'
15594
15874
  created_at: '2022-11-08T19:35:54.351Z'
15595
15875
  updated_at: '2022-11-08T19:35:54.351Z'
15596
15876
  public_metadata: {}
@@ -15660,6 +15940,7 @@ paths:
15660
15940
  email: gaynell@parisian.biz
15661
15941
  first_name: Irwin
15662
15942
  last_name: DuBuque
15943
+ selected_locale: 'en'
15663
15944
  created_at: '2022-11-08T19:35:54.635Z'
15664
15945
  updated_at: '2022-11-08T19:35:54.635Z'
15665
15946
  public_metadata: {}
@@ -15730,6 +16011,7 @@ paths:
15730
16011
  email: john@example.com
15731
16012
  first_name: Astrid
15732
16013
  last_name: Kohler
16014
+ selected_locale: 'fr'
15733
16015
  created_at: '2022-11-08T19:35:55.180Z'
15734
16016
  updated_at: '2022-11-08T19:35:55.414Z'
15735
16017
  public_metadata: {}
@@ -17669,7 +17951,7 @@ servers:
17669
17951
  - url: http://{defaultHost}
17670
17952
  variables:
17671
17953
  defaultHost:
17672
- default: localhost:3000
17954
+ default: localhost:4000
17673
17955
  tags:
17674
17956
  - name: Addresses
17675
17957
  - name: Adjustments
@@ -19179,6 +19461,48 @@ components:
19179
19461
  - cms_section
19180
19462
  title: Update a Rich Text Section
19181
19463
  x-internal: false
19464
+ create_data_feed_params:
19465
+ type: object
19466
+ properties:
19467
+ data_feed:
19468
+ type: object
19469
+ required:
19470
+ - name
19471
+ - type
19472
+ properties:
19473
+ name:
19474
+ type: string
19475
+ example: 'First data feed'
19476
+ slug:
19477
+ type: string
19478
+ example: 'first-data-feed'
19479
+ type:
19480
+ type: string
19481
+ example: 'Spree::DataFeed::Google'
19482
+ active:
19483
+ type: boolean
19484
+ x-internal: false
19485
+ update_data_feed_params:
19486
+ type: object
19487
+ properties:
19488
+ data_feed:
19489
+ type: object
19490
+ required:
19491
+ - name
19492
+ - type
19493
+ properties:
19494
+ name:
19495
+ type: string
19496
+ example: 'First data feed'
19497
+ slug:
19498
+ type: string
19499
+ example: 'first-data-feed'
19500
+ type:
19501
+ type: string
19502
+ example: 'Spree::DataFeed::Google'
19503
+ active:
19504
+ type: boolean
19505
+ x-internal: false
19182
19506
  create_digital_params:
19183
19507
  type: object
19184
19508
  properties:
@@ -21338,6 +21662,8 @@ components:
21338
21662
  type: string
21339
21663
  password_confirmation:
21340
21664
  type: string
21665
+ selected_locale:
21666
+ type: string
21341
21667
  ship_address_id:
21342
21668
  type: string
21343
21669
  bill_address_id:
@@ -21365,6 +21691,8 @@ components:
21365
21691
  type: string
21366
21692
  password_confirmation:
21367
21693
  type: string
21694
+ selected_locale:
21695
+ type: string
21368
21696
  ship_address_id:
21369
21697
  type: string
21370
21698
  bill_address_id: