spotted 0.1.0 → 0.2.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.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/README.md +1 -1
  4. data/lib/spotted/models/audiobook_base.rb +182 -0
  5. data/lib/spotted/models/audiobook_list_response.rb +2 -174
  6. data/lib/spotted/models/audiobook_retrieve_response.rb +2 -174
  7. data/lib/spotted/models/chapter_list_response.rb +3 -183
  8. data/lib/spotted/models/chapter_retrieve_response.rb +3 -183
  9. data/lib/spotted/models/episode_object.rb +3 -166
  10. data/lib/spotted/models/me/audiobook_list_response.rb +2 -174
  11. data/lib/spotted/models/me/show_list_response.rb +3 -166
  12. data/lib/spotted/models/search_retrieve_response.rb +6 -345
  13. data/lib/spotted/models/show_base.rb +165 -0
  14. data/lib/spotted/models/show_list_response.rb +3 -163
  15. data/lib/spotted/models/show_retrieve_response.rb +2 -157
  16. data/lib/spotted/models.rb +4 -0
  17. data/lib/spotted/version.rb +1 -1
  18. data/lib/spotted.rb +2 -0
  19. data/rbi/spotted/models/audiobook_base.rbi +219 -0
  20. data/rbi/spotted/models/audiobook_list_response.rbi +4 -212
  21. data/rbi/spotted/models/audiobook_retrieve_response.rbi +4 -209
  22. data/rbi/spotted/models/chapter_list_response.rbi +4 -249
  23. data/rbi/spotted/models/chapter_retrieve_response.rbi +4 -245
  24. data/rbi/spotted/models/episode_object.rbi +4 -199
  25. data/rbi/spotted/models/me/audiobook_list_response.rbi +4 -212
  26. data/rbi/spotted/models/me/show_list_response.rbi +6 -227
  27. data/rbi/spotted/models/search_retrieve_response.rbi +6 -473
  28. data/rbi/spotted/models/show_base.rbi +194 -0
  29. data/rbi/spotted/models/show_list_response.rbi +5 -216
  30. data/rbi/spotted/models/show_retrieve_response.rbi +4 -182
  31. data/rbi/spotted/models.rbi +4 -0
  32. data/sig/spotted/models/audiobook_base.rbs +122 -0
  33. data/sig/spotted/models/audiobook_list_response.rbs +8 -111
  34. data/sig/spotted/models/audiobook_retrieve_response.rbs +8 -113
  35. data/sig/spotted/models/chapter_list_response.rbs +4 -123
  36. data/sig/spotted/models/chapter_retrieve_response.rbs +4 -123
  37. data/sig/spotted/models/episode_object.rbs +4 -111
  38. data/sig/spotted/models/me/audiobook_list_response.rbs +8 -111
  39. data/sig/spotted/models/me/show_list_response.rbs +5 -121
  40. data/sig/spotted/models/search_retrieve_response.rbs +8 -234
  41. data/sig/spotted/models/show_base.rbs +110 -0
  42. data/sig/spotted/models/show_list_response.rbs +4 -116
  43. data/sig/spotted/models/show_retrieve_response.rbs +8 -101
  44. data/sig/spotted/models.rbs +4 -0
  45. metadata +7 -1
@@ -599,11 +599,7 @@ module Spotted
599
599
  sig { returns(String) }
600
600
  attr_accessor :href
601
601
 
602
- sig do
603
- returns(
604
- T::Array[Spotted::Models::SearchRetrieveResponse::Audiobooks::Item]
605
- )
606
- end
602
+ sig { returns(T::Array[Spotted::AudiobookBase]) }
607
603
  attr_accessor :items
608
604
 
609
605
  # The maximum number of items in the response (as set in the query or by default).
@@ -629,10 +625,7 @@ module Spotted
629
625
  sig do
630
626
  params(
631
627
  href: String,
632
- items:
633
- T::Array[
634
- Spotted::Models::SearchRetrieveResponse::Audiobooks::Item::OrHash
635
- ],
628
+ items: T::Array[Spotted::AudiobookBase::OrHash],
636
629
  limit: Integer,
637
630
  next_: T.nilable(String),
638
631
  offset: Integer,
@@ -661,10 +654,7 @@ module Spotted
661
654
  override.returns(
662
655
  {
663
656
  href: String,
664
- items:
665
- T::Array[
666
- Spotted::Models::SearchRetrieveResponse::Audiobooks::Item
667
- ],
657
+ items: T::Array[Spotted::AudiobookBase],
668
658
  limit: Integer,
669
659
  next_: T.nilable(String),
670
660
  offset: Integer,
@@ -675,241 +665,6 @@ module Spotted
675
665
  end
676
666
  def to_hash
677
667
  end
678
-
679
- class Item < Spotted::Internal::Type::BaseModel
680
- OrHash =
681
- T.type_alias do
682
- T.any(
683
- Spotted::Models::SearchRetrieveResponse::Audiobooks::Item,
684
- Spotted::Internal::AnyHash
685
- )
686
- end
687
-
688
- # The [Spotify ID](/documentation/web-api/concepts/spotify-uris-ids) for the
689
- # audiobook.
690
- sig { returns(String) }
691
- attr_accessor :id
692
-
693
- # The author(s) for the audiobook.
694
- sig { returns(T::Array[Spotted::AuthorObject]) }
695
- attr_accessor :authors
696
-
697
- # A list of the countries in which the audiobook can be played, identified by
698
- # their [ISO 3166-1 alpha-2](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)
699
- # code.
700
- sig { returns(T::Array[String]) }
701
- attr_accessor :available_markets
702
-
703
- # The copyright statements of the audiobook.
704
- sig { returns(T::Array[Spotted::CopyrightObject]) }
705
- attr_accessor :copyrights
706
-
707
- # A description of the audiobook. HTML tags are stripped away from this field, use
708
- # `html_description` field in case HTML tags are needed.
709
- sig { returns(String) }
710
- attr_accessor :description
711
-
712
- # Whether or not the audiobook has explicit content (true = yes it does; false =
713
- # no it does not OR unknown).
714
- sig { returns(T::Boolean) }
715
- attr_accessor :explicit
716
-
717
- # External URLs for this audiobook.
718
- sig { returns(Spotted::ExternalURLObject) }
719
- attr_reader :external_urls
720
-
721
- sig { params(external_urls: Spotted::ExternalURLObject::OrHash).void }
722
- attr_writer :external_urls
723
-
724
- # A link to the Web API endpoint providing full details of the audiobook.
725
- sig { returns(String) }
726
- attr_accessor :href
727
-
728
- # A description of the audiobook. This field may contain HTML tags.
729
- sig { returns(String) }
730
- attr_accessor :html_description
731
-
732
- # The cover art for the audiobook in various sizes, widest first.
733
- sig { returns(T::Array[Spotted::ImageObject]) }
734
- attr_accessor :images
735
-
736
- # A list of the languages used in the audiobook, identified by their
737
- # [ISO 639](https://en.wikipedia.org/wiki/ISO_639) code.
738
- sig { returns(T::Array[String]) }
739
- attr_accessor :languages
740
-
741
- # The media type of the audiobook.
742
- sig { returns(String) }
743
- attr_accessor :media_type
744
-
745
- # The name of the audiobook.
746
- sig { returns(String) }
747
- attr_accessor :name
748
-
749
- # The narrator(s) for the audiobook.
750
- sig { returns(T::Array[Spotted::NarratorObject]) }
751
- attr_accessor :narrators
752
-
753
- # The publisher of the audiobook.
754
- sig { returns(String) }
755
- attr_accessor :publisher
756
-
757
- # The number of chapters in this audiobook.
758
- sig { returns(Integer) }
759
- attr_accessor :total_chapters
760
-
761
- # The object type.
762
- sig do
763
- returns(
764
- Spotted::Models::SearchRetrieveResponse::Audiobooks::Item::Type::TaggedSymbol
765
- )
766
- end
767
- attr_accessor :type
768
-
769
- # The [Spotify URI](/documentation/web-api/concepts/spotify-uris-ids) for the
770
- # audiobook.
771
- sig { returns(String) }
772
- attr_accessor :uri
773
-
774
- # The edition of the audiobook.
775
- sig { returns(T.nilable(String)) }
776
- attr_reader :edition
777
-
778
- sig { params(edition: String).void }
779
- attr_writer :edition
780
-
781
- sig do
782
- params(
783
- id: String,
784
- authors: T::Array[Spotted::AuthorObject::OrHash],
785
- available_markets: T::Array[String],
786
- copyrights: T::Array[Spotted::CopyrightObject::OrHash],
787
- description: String,
788
- explicit: T::Boolean,
789
- external_urls: Spotted::ExternalURLObject::OrHash,
790
- href: String,
791
- html_description: String,
792
- images: T::Array[Spotted::ImageObject::OrHash],
793
- languages: T::Array[String],
794
- media_type: String,
795
- name: String,
796
- narrators: T::Array[Spotted::NarratorObject::OrHash],
797
- publisher: String,
798
- total_chapters: Integer,
799
- type:
800
- Spotted::Models::SearchRetrieveResponse::Audiobooks::Item::Type::OrSymbol,
801
- uri: String,
802
- edition: String
803
- ).returns(T.attached_class)
804
- end
805
- def self.new(
806
- # The [Spotify ID](/documentation/web-api/concepts/spotify-uris-ids) for the
807
- # audiobook.
808
- id:,
809
- # The author(s) for the audiobook.
810
- authors:,
811
- # A list of the countries in which the audiobook can be played, identified by
812
- # their [ISO 3166-1 alpha-2](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)
813
- # code.
814
- available_markets:,
815
- # The copyright statements of the audiobook.
816
- copyrights:,
817
- # A description of the audiobook. HTML tags are stripped away from this field, use
818
- # `html_description` field in case HTML tags are needed.
819
- description:,
820
- # Whether or not the audiobook has explicit content (true = yes it does; false =
821
- # no it does not OR unknown).
822
- explicit:,
823
- # External URLs for this audiobook.
824
- external_urls:,
825
- # A link to the Web API endpoint providing full details of the audiobook.
826
- href:,
827
- # A description of the audiobook. This field may contain HTML tags.
828
- html_description:,
829
- # The cover art for the audiobook in various sizes, widest first.
830
- images:,
831
- # A list of the languages used in the audiobook, identified by their
832
- # [ISO 639](https://en.wikipedia.org/wiki/ISO_639) code.
833
- languages:,
834
- # The media type of the audiobook.
835
- media_type:,
836
- # The name of the audiobook.
837
- name:,
838
- # The narrator(s) for the audiobook.
839
- narrators:,
840
- # The publisher of the audiobook.
841
- publisher:,
842
- # The number of chapters in this audiobook.
843
- total_chapters:,
844
- # The object type.
845
- type:,
846
- # The [Spotify URI](/documentation/web-api/concepts/spotify-uris-ids) for the
847
- # audiobook.
848
- uri:,
849
- # The edition of the audiobook.
850
- edition: nil
851
- )
852
- end
853
-
854
- sig do
855
- override.returns(
856
- {
857
- id: String,
858
- authors: T::Array[Spotted::AuthorObject],
859
- available_markets: T::Array[String],
860
- copyrights: T::Array[Spotted::CopyrightObject],
861
- description: String,
862
- explicit: T::Boolean,
863
- external_urls: Spotted::ExternalURLObject,
864
- href: String,
865
- html_description: String,
866
- images: T::Array[Spotted::ImageObject],
867
- languages: T::Array[String],
868
- media_type: String,
869
- name: String,
870
- narrators: T::Array[Spotted::NarratorObject],
871
- publisher: String,
872
- total_chapters: Integer,
873
- type:
874
- Spotted::Models::SearchRetrieveResponse::Audiobooks::Item::Type::TaggedSymbol,
875
- uri: String,
876
- edition: String
877
- }
878
- )
879
- end
880
- def to_hash
881
- end
882
-
883
- # The object type.
884
- module Type
885
- extend Spotted::Internal::Type::Enum
886
-
887
- TaggedSymbol =
888
- T.type_alias do
889
- T.all(
890
- Symbol,
891
- Spotted::Models::SearchRetrieveResponse::Audiobooks::Item::Type
892
- )
893
- end
894
- OrSymbol = T.type_alias { T.any(Symbol, String) }
895
-
896
- AUDIOBOOK =
897
- T.let(
898
- :audiobook,
899
- Spotted::Models::SearchRetrieveResponse::Audiobooks::Item::Type::TaggedSymbol
900
- )
901
-
902
- sig do
903
- override.returns(
904
- T::Array[
905
- Spotted::Models::SearchRetrieveResponse::Audiobooks::Item::Type::TaggedSymbol
906
- ]
907
- )
908
- end
909
- def self.values
910
- end
911
- end
912
- end
913
668
  end
914
669
 
915
670
  class Episodes < Spotted::Internal::Type::BaseModel
@@ -1006,11 +761,7 @@ module Spotted
1006
761
  sig { returns(String) }
1007
762
  attr_accessor :href
1008
763
 
1009
- sig do
1010
- returns(
1011
- T::Array[Spotted::Models::SearchRetrieveResponse::Shows::Item]
1012
- )
1013
- end
764
+ sig { returns(T::Array[Spotted::ShowBase]) }
1014
765
  attr_accessor :items
1015
766
 
1016
767
  # The maximum number of items in the response (as set in the query or by default).
@@ -1036,10 +787,7 @@ module Spotted
1036
787
  sig do
1037
788
  params(
1038
789
  href: String,
1039
- items:
1040
- T::Array[
1041
- Spotted::Models::SearchRetrieveResponse::Shows::Item::OrHash
1042
- ],
790
+ items: T::Array[Spotted::ShowBase::OrHash],
1043
791
  limit: Integer,
1044
792
  next_: T.nilable(String),
1045
793
  offset: Integer,
@@ -1068,8 +816,7 @@ module Spotted
1068
816
  override.returns(
1069
817
  {
1070
818
  href: String,
1071
- items:
1072
- T::Array[Spotted::Models::SearchRetrieveResponse::Shows::Item],
819
+ items: T::Array[Spotted::ShowBase],
1073
820
  limit: Integer,
1074
821
  next_: T.nilable(String),
1075
822
  offset: Integer,
@@ -1080,220 +827,6 @@ module Spotted
1080
827
  end
1081
828
  def to_hash
1082
829
  end
1083
-
1084
- class Item < Spotted::Internal::Type::BaseModel
1085
- OrHash =
1086
- T.type_alias do
1087
- T.any(
1088
- Spotted::Models::SearchRetrieveResponse::Shows::Item,
1089
- Spotted::Internal::AnyHash
1090
- )
1091
- end
1092
-
1093
- # The [Spotify ID](/documentation/web-api/concepts/spotify-uris-ids) for the show.
1094
- sig { returns(String) }
1095
- attr_accessor :id
1096
-
1097
- # A list of the countries in which the show can be played, identified by their
1098
- # [ISO 3166-1 alpha-2](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) code.
1099
- sig { returns(T::Array[String]) }
1100
- attr_accessor :available_markets
1101
-
1102
- # The copyright statements of the show.
1103
- sig { returns(T::Array[Spotted::CopyrightObject]) }
1104
- attr_accessor :copyrights
1105
-
1106
- # A description of the show. HTML tags are stripped away from this field, use
1107
- # `html_description` field in case HTML tags are needed.
1108
- sig { returns(String) }
1109
- attr_accessor :description
1110
-
1111
- # Whether or not the show has explicit content (true = yes it does; false = no it
1112
- # does not OR unknown).
1113
- sig { returns(T::Boolean) }
1114
- attr_accessor :explicit
1115
-
1116
- # External URLs for this show.
1117
- sig { returns(Spotted::ExternalURLObject) }
1118
- attr_reader :external_urls
1119
-
1120
- sig { params(external_urls: Spotted::ExternalURLObject::OrHash).void }
1121
- attr_writer :external_urls
1122
-
1123
- # A link to the Web API endpoint providing full details of the show.
1124
- sig { returns(String) }
1125
- attr_accessor :href
1126
-
1127
- # A description of the show. This field may contain HTML tags.
1128
- sig { returns(String) }
1129
- attr_accessor :html_description
1130
-
1131
- # The cover art for the show in various sizes, widest first.
1132
- sig { returns(T::Array[Spotted::ImageObject]) }
1133
- attr_accessor :images
1134
-
1135
- # True if all of the shows episodes are hosted outside of Spotify's CDN. This
1136
- # field might be `null` in some cases.
1137
- sig { returns(T::Boolean) }
1138
- attr_accessor :is_externally_hosted
1139
-
1140
- # A list of the languages used in the show, identified by their
1141
- # [ISO 639](https://en.wikipedia.org/wiki/ISO_639) code.
1142
- sig { returns(T::Array[String]) }
1143
- attr_accessor :languages
1144
-
1145
- # The media type of the show.
1146
- sig { returns(String) }
1147
- attr_accessor :media_type
1148
-
1149
- # The name of the episode.
1150
- sig { returns(String) }
1151
- attr_accessor :name
1152
-
1153
- # The publisher of the show.
1154
- sig { returns(String) }
1155
- attr_accessor :publisher
1156
-
1157
- # The total number of episodes in the show.
1158
- sig { returns(Integer) }
1159
- attr_accessor :total_episodes
1160
-
1161
- # The object type.
1162
- sig do
1163
- returns(
1164
- Spotted::Models::SearchRetrieveResponse::Shows::Item::Type::TaggedSymbol
1165
- )
1166
- end
1167
- attr_accessor :type
1168
-
1169
- # The [Spotify URI](/documentation/web-api/concepts/spotify-uris-ids) for the
1170
- # show.
1171
- sig { returns(String) }
1172
- attr_accessor :uri
1173
-
1174
- sig do
1175
- params(
1176
- id: String,
1177
- available_markets: T::Array[String],
1178
- copyrights: T::Array[Spotted::CopyrightObject::OrHash],
1179
- description: String,
1180
- explicit: T::Boolean,
1181
- external_urls: Spotted::ExternalURLObject::OrHash,
1182
- href: String,
1183
- html_description: String,
1184
- images: T::Array[Spotted::ImageObject::OrHash],
1185
- is_externally_hosted: T::Boolean,
1186
- languages: T::Array[String],
1187
- media_type: String,
1188
- name: String,
1189
- publisher: String,
1190
- total_episodes: Integer,
1191
- type:
1192
- Spotted::Models::SearchRetrieveResponse::Shows::Item::Type::OrSymbol,
1193
- uri: String
1194
- ).returns(T.attached_class)
1195
- end
1196
- def self.new(
1197
- # The [Spotify ID](/documentation/web-api/concepts/spotify-uris-ids) for the show.
1198
- id:,
1199
- # A list of the countries in which the show can be played, identified by their
1200
- # [ISO 3166-1 alpha-2](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) code.
1201
- available_markets:,
1202
- # The copyright statements of the show.
1203
- copyrights:,
1204
- # A description of the show. HTML tags are stripped away from this field, use
1205
- # `html_description` field in case HTML tags are needed.
1206
- description:,
1207
- # Whether or not the show has explicit content (true = yes it does; false = no it
1208
- # does not OR unknown).
1209
- explicit:,
1210
- # External URLs for this show.
1211
- external_urls:,
1212
- # A link to the Web API endpoint providing full details of the show.
1213
- href:,
1214
- # A description of the show. This field may contain HTML tags.
1215
- html_description:,
1216
- # The cover art for the show in various sizes, widest first.
1217
- images:,
1218
- # True if all of the shows episodes are hosted outside of Spotify's CDN. This
1219
- # field might be `null` in some cases.
1220
- is_externally_hosted:,
1221
- # A list of the languages used in the show, identified by their
1222
- # [ISO 639](https://en.wikipedia.org/wiki/ISO_639) code.
1223
- languages:,
1224
- # The media type of the show.
1225
- media_type:,
1226
- # The name of the episode.
1227
- name:,
1228
- # The publisher of the show.
1229
- publisher:,
1230
- # The total number of episodes in the show.
1231
- total_episodes:,
1232
- # The object type.
1233
- type:,
1234
- # The [Spotify URI](/documentation/web-api/concepts/spotify-uris-ids) for the
1235
- # show.
1236
- uri:
1237
- )
1238
- end
1239
-
1240
- sig do
1241
- override.returns(
1242
- {
1243
- id: String,
1244
- available_markets: T::Array[String],
1245
- copyrights: T::Array[Spotted::CopyrightObject],
1246
- description: String,
1247
- explicit: T::Boolean,
1248
- external_urls: Spotted::ExternalURLObject,
1249
- href: String,
1250
- html_description: String,
1251
- images: T::Array[Spotted::ImageObject],
1252
- is_externally_hosted: T::Boolean,
1253
- languages: T::Array[String],
1254
- media_type: String,
1255
- name: String,
1256
- publisher: String,
1257
- total_episodes: Integer,
1258
- type:
1259
- Spotted::Models::SearchRetrieveResponse::Shows::Item::Type::TaggedSymbol,
1260
- uri: String
1261
- }
1262
- )
1263
- end
1264
- def to_hash
1265
- end
1266
-
1267
- # The object type.
1268
- module Type
1269
- extend Spotted::Internal::Type::Enum
1270
-
1271
- TaggedSymbol =
1272
- T.type_alias do
1273
- T.all(
1274
- Symbol,
1275
- Spotted::Models::SearchRetrieveResponse::Shows::Item::Type
1276
- )
1277
- end
1278
- OrSymbol = T.type_alias { T.any(Symbol, String) }
1279
-
1280
- SHOW =
1281
- T.let(
1282
- :show,
1283
- Spotted::Models::SearchRetrieveResponse::Shows::Item::Type::TaggedSymbol
1284
- )
1285
-
1286
- sig do
1287
- override.returns(
1288
- T::Array[
1289
- Spotted::Models::SearchRetrieveResponse::Shows::Item::Type::TaggedSymbol
1290
- ]
1291
- )
1292
- end
1293
- def self.values
1294
- end
1295
- end
1296
- end
1297
830
  end
1298
831
 
1299
832
  class Tracks < Spotted::Internal::Type::BaseModel