├── .gitignore ├── LICENSE ├── README.md ├── client ├── go │ ├── musixmatch.go │ └── swagger ├── iOS │ └── SwaggerClientApp │ │ ├── Musixmatch │ │ ├── SwaggerClient.podspec │ │ └── SwaggerClient │ │ │ ├── Api │ │ │ ├── SWGAlbumApi.h │ │ │ ├── SWGAlbumApi.m │ │ │ ├── SWGArtistApi.h │ │ │ ├── SWGArtistApi.m │ │ │ ├── SWGLyricsApi.h │ │ │ ├── SWGLyricsApi.m │ │ │ ├── SWGSnippetApi.h │ │ │ ├── SWGSnippetApi.m │ │ │ ├── SWGSubtitleApi.h │ │ │ ├── SWGSubtitleApi.m │ │ │ ├── SWGTrackApi.h │ │ │ └── SWGTrackApi.m │ │ │ ├── Core │ │ │ ├── JSONValueTransformer+ISO8601.h │ │ │ ├── JSONValueTransformer+ISO8601.m │ │ │ ├── SWGApi.h │ │ │ ├── SWGApiClient.h │ │ │ ├── SWGApiClient.m │ │ │ ├── SWGConfiguration.h │ │ │ ├── SWGConfiguration.m │ │ │ ├── SWGJSONRequestSerializer.h │ │ │ ├── SWGJSONRequestSerializer.m │ │ │ ├── SWGJSONResponseSerializer.h │ │ │ ├── SWGJSONResponseSerializer.m │ │ │ ├── SWGLogger.h │ │ │ ├── SWGLogger.m │ │ │ ├── SWGObject.h │ │ │ ├── SWGObject.m │ │ │ ├── SWGQueryParamCollection.h │ │ │ ├── SWGQueryParamCollection.m │ │ │ ├── SWGResponseDeserializer.h │ │ │ ├── SWGResponseDeserializer.m │ │ │ ├── SWGSanitizer.h │ │ │ └── SWGSanitizer.m │ │ │ └── Model │ │ │ ├── SWGAlbum.h │ │ │ ├── SWGAlbum.m │ │ │ ├── SWGAlbumPrimaryGenres.h │ │ │ ├── SWGAlbumPrimaryGenres.m │ │ │ ├── SWGAlbumPrimaryGenresMusicGenre.h │ │ │ ├── SWGAlbumPrimaryGenresMusicGenre.m │ │ │ ├── SWGAlbumPrimaryGenresMusicGenreList.h │ │ │ ├── SWGAlbumPrimaryGenresMusicGenreList.m │ │ │ ├── SWGArtist.h │ │ │ ├── SWGArtist.m │ │ │ ├── SWGArtistArtistAliasList.h │ │ │ ├── SWGArtistArtistAliasList.m │ │ │ ├── SWGArtistArtistCredits.h │ │ │ ├── SWGArtistArtistCredits.m │ │ │ ├── SWGArtistArtistNameTranslation.h │ │ │ ├── SWGArtistArtistNameTranslation.m │ │ │ ├── SWGArtistArtistNameTranslationList.h │ │ │ ├── SWGArtistArtistNameTranslationList.m │ │ │ ├── SWGArtistPrimaryGenres.h │ │ │ ├── SWGArtistPrimaryGenres.m │ │ │ ├── SWGArtistPrimaryGenresMusicGenre.h │ │ │ ├── SWGArtistPrimaryGenresMusicGenre.m │ │ │ ├── SWGArtistPrimaryGenresMusicGenreList.h │ │ │ ├── SWGArtistPrimaryGenresMusicGenreList.m │ │ │ ├── SWGArtistSecondaryGenres.h │ │ │ ├── SWGArtistSecondaryGenres.m │ │ │ ├── SWGInlineResponse200.h │ │ │ ├── SWGInlineResponse200.m │ │ │ ├── SWGInlineResponse2001.h │ │ │ ├── SWGInlineResponse2001.m │ │ │ ├── SWGInlineResponse20010.h │ │ │ ├── SWGInlineResponse20010.m │ │ │ ├── SWGInlineResponse20010Message.h │ │ │ ├── SWGInlineResponse20010Message.m │ │ │ ├── SWGInlineResponse20010MessageBody.h │ │ │ ├── SWGInlineResponse20010MessageBody.m │ │ │ ├── SWGInlineResponse2001Message.h │ │ │ ├── SWGInlineResponse2001Message.m │ │ │ ├── SWGInlineResponse2001MessageBody.h │ │ │ ├── SWGInlineResponse2001MessageBody.m │ │ │ ├── SWGInlineResponse2001MessageHeader.h │ │ │ ├── SWGInlineResponse2001MessageHeader.m │ │ │ ├── SWGInlineResponse2002.h │ │ │ ├── SWGInlineResponse2002.m │ │ │ ├── SWGInlineResponse2002Message.h │ │ │ ├── SWGInlineResponse2002Message.m │ │ │ ├── SWGInlineResponse2002MessageBody.h │ │ │ ├── SWGInlineResponse2002MessageBody.m │ │ │ ├── SWGInlineResponse2002MessageHeader.h │ │ │ ├── SWGInlineResponse2002MessageHeader.m │ │ │ ├── SWGInlineResponse2003.h │ │ │ ├── SWGInlineResponse2003.m │ │ │ ├── SWGInlineResponse2003Message.h │ │ │ ├── SWGInlineResponse2003Message.m │ │ │ ├── SWGInlineResponse2003MessageBody.h │ │ │ ├── SWGInlineResponse2003MessageBody.m │ │ │ ├── SWGInlineResponse2004.h │ │ │ ├── SWGInlineResponse2004.m │ │ │ ├── SWGInlineResponse2004Message.h │ │ │ ├── SWGInlineResponse2004Message.m │ │ │ ├── SWGInlineResponse2004MessageBody.h │ │ │ ├── SWGInlineResponse2004MessageBody.m │ │ │ ├── SWGInlineResponse2005.h │ │ │ ├── SWGInlineResponse2005.m │ │ │ ├── SWGInlineResponse2005Message.h │ │ │ ├── SWGInlineResponse2005Message.m │ │ │ ├── SWGInlineResponse2005MessageHeader.h │ │ │ ├── SWGInlineResponse2005MessageHeader.m │ │ │ ├── SWGInlineResponse2006.h │ │ │ ├── SWGInlineResponse2006.m │ │ │ ├── SWGInlineResponse2006Message.h │ │ │ ├── SWGInlineResponse2006Message.m │ │ │ ├── SWGInlineResponse2006MessageBody.h │ │ │ ├── SWGInlineResponse2006MessageBody.m │ │ │ ├── SWGInlineResponse2006MessageBodyTrackList.h │ │ │ ├── SWGInlineResponse2006MessageBodyTrackList.m │ │ │ ├── SWGInlineResponse2007.h │ │ │ ├── SWGInlineResponse2007.m │ │ │ ├── SWGInlineResponse2007Message.h │ │ │ ├── SWGInlineResponse2007Message.m │ │ │ ├── SWGInlineResponse2007MessageBody.h │ │ │ ├── SWGInlineResponse2007MessageBody.m │ │ │ ├── SWGInlineResponse2008.h │ │ │ ├── SWGInlineResponse2008.m │ │ │ ├── SWGInlineResponse2008Message.h │ │ │ ├── SWGInlineResponse2008Message.m │ │ │ ├── SWGInlineResponse2008MessageBody.h │ │ │ ├── SWGInlineResponse2008MessageBody.m │ │ │ ├── SWGInlineResponse2009.h │ │ │ ├── SWGInlineResponse2009.m │ │ │ ├── SWGInlineResponse2009Message.h │ │ │ ├── SWGInlineResponse2009Message.m │ │ │ ├── SWGInlineResponse200Message.h │ │ │ ├── SWGInlineResponse200Message.m │ │ │ ├── SWGInlineResponse200MessageBody.h │ │ │ ├── SWGInlineResponse200MessageBody.m │ │ │ ├── SWGInlineResponse200MessageHeader.h │ │ │ ├── SWGInlineResponse200MessageHeader.m │ │ │ ├── SWGLyrics.h │ │ │ ├── SWGLyrics.m │ │ │ ├── SWGSnippet.h │ │ │ ├── SWGSnippet.m │ │ │ ├── SWGSubtitle.h │ │ │ ├── SWGSubtitle.m │ │ │ ├── SWGTrack.h │ │ │ ├── SWGTrack.m │ │ │ ├── SWGTrackPrimaryGenres.h │ │ │ ├── SWGTrackPrimaryGenres.m │ │ │ ├── SWGTrackPrimaryGenresMusicGenre.h │ │ │ ├── SWGTrackPrimaryGenresMusicGenre.m │ │ │ ├── SWGTrackPrimaryGenresMusicGenreList.h │ │ │ ├── SWGTrackPrimaryGenresMusicGenreList.m │ │ │ ├── SWGTrackSecondaryGenres.h │ │ │ ├── SWGTrackSecondaryGenres.m │ │ │ ├── SWGTrackSecondaryGenresMusicGenre.h │ │ │ ├── SWGTrackSecondaryGenresMusicGenre.m │ │ │ ├── SWGTrackSecondaryGenresMusicGenreList.h │ │ │ └── SWGTrackSecondaryGenresMusicGenreList.m │ │ ├── Podfile │ │ ├── Podfile.lock │ │ ├── SwaggerClientApp.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ └── contents.xcworkspacedata │ │ ├── SwaggerClientApp.xcworkspace │ │ └── contents.xcworkspacedata │ │ └── SwaggerClientApp │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ │ ├── Info.plist │ │ ├── SwaggerClient.h │ │ ├── ViewController.h │ │ ├── ViewController.m │ │ └── main.m ├── javascript │ ├── README.md │ ├── bundle.js │ ├── css │ │ ├── main.css │ │ └── pretty-json.css │ ├── index.html │ └── js │ │ └── pretty-json-min.js ├── node │ └── musixmatch.js ├── php │ └── musixmatch.php ├── python │ └── musixmatch.py └── xamarin │ └── SwaggerClient │ ├── .gitignore │ ├── Droid │ ├── Assets │ │ └── AboutAssets.txt │ ├── MainActivity.cs │ ├── Properties │ │ ├── AndroidManifest.xml │ │ └── AssemblyInfo.cs │ ├── Resources │ │ ├── AboutResources.txt │ │ ├── Resource.designer.cs │ │ ├── layout │ │ │ └── Main.axml │ │ ├── mipmap-hdpi │ │ │ └── Icon.png │ │ ├── mipmap-mdpi │ │ │ └── Icon.png │ │ ├── mipmap-xhdpi │ │ │ └── Icon.png │ │ ├── mipmap-xxhdpi │ │ │ └── Icon.png │ │ ├── mipmap-xxxhdpi │ │ │ └── Icon.png │ │ └── values │ │ │ └── Strings.xml │ ├── SwaggerClient.Droid.csproj │ └── packages.config │ ├── SwaggerClient.sln │ ├── SwaggerClient │ ├── MyClass.cs │ ├── SwaggerClient.projitems │ └── SwaggerClient.shproj │ ├── UITests │ ├── AppInitializer.cs │ ├── SwaggerClient.UITests.csproj │ ├── Tests.cs │ └── packages.config │ └── iOS │ ├── AppDelegate.cs │ ├── Assets.xcassets │ ├── AppIcons.appiconset │ │ └── Contents.json │ └── Contents.json │ ├── Entitlements.plist │ ├── Info.plist │ ├── LaunchScreen.storyboard │ ├── Main.cs │ ├── Main.storyboard │ ├── SwaggerClient.iOS.csproj │ ├── ViewController.cs │ ├── ViewController.designer.cs │ └── packages.config ├── dist ├── csharp-client-generated.zip ├── go-client-generated.zip ├── go-client-patch.zip ├── javascript-client-generated.zip ├── javascript-client-patch.zip ├── objc-client-generated.zip ├── objc-client-patch.zip ├── php-client-generated.zip └── python-client-generated.zip └── swagger ├── swagger.json └── swagger.yaml /.gitignore: -------------------------------------------------------------------------------- 1 | **/*/.DS_Store 2 | build/ 3 | */xcuserdata/**/* 4 | */Pods/**/* 5 | */packages/**/* 6 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 Musixmatch 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /client/go/musixmatch.go: -------------------------------------------------------------------------------- 1 | /* 2 | * Musixmatch Go Client 3 | * @uses Swagger generated JavaScript client 4 | * @author Loreto Parisi (loreto at musixmatch dot com) 5 | * @see https://developer.musixmatch.com/documentation 6 | * @copy 2016 Musixmatch Spa 7 | */ 8 | package main 9 | 10 | import ( 11 | "fmt" 12 | "bytes" 13 | "encoding/json" 14 | "./swagger" 15 | "io" 16 | "io/ioutil" 17 | "os" 18 | ) 19 | 20 | func jsonPrettyPrint(in string) string { 21 | var out bytes.Buffer 22 | err := json.Indent(&out, []byte(in), "", "\t") 23 | if err != nil { 24 | return in 25 | } 26 | return out.String() 27 | } 28 | func main() { 29 | 30 | fmt.Println("Musixmatch Go Client") 31 | 32 | albumApi := swagger.NewAlbumApi() 33 | 34 | configuration := albumApi.Configuration 35 | configuration.SetDebug(true) 36 | configuration.APIKey["apikey"] = "YOUR_API_KEY" 37 | 38 | var albumId = "14250417" 39 | jsonResponse, response, _ := albumApi.AlbumGetGet(albumId,"json","") 40 | 41 | // read http.response 42 | defer response.Body.Close() 43 | 44 | // LP: to avoid memory leak limit memory read is a good practise in Golang 45 | // @see http://stackoverflow.com/questions/23967638/ioutil-readallresponse-body-blocks-forever-golang 46 | // @see https://socketloop.com/references/golang-io-limitreader-function-example 47 | htmlData, err := ioutil.ReadAll(io.LimitReader(response.Body, 2048)) 48 | //err = json.NewDecoder(io.LimitReader(response.Body, 2048)).Decode(&response) 49 | 50 | /* 51 | * @see https://www.socketloop.com/tutorials/golang-convert-http-response-body-to-string 52 | LP: err = http: read on closed response body 53 | if err != nil { 54 | fmt.Println(err) 55 | os.Exit(1) 56 | } 57 | */ 58 | 59 | fmt.Println(os.Stdout, string(htmlData)) 60 | 61 | // prints out struct fields 62 | fmt.Printf("\n%+v\n", jsonResponse.Message) 63 | 64 | // unmarshall this struct to json 65 | b, err := json.Marshal(jsonResponse.Message) 66 | if err != nil { 67 | fmt.Println(err) 68 | return 69 | } 70 | var c = jsonPrettyPrint( string(b) ) 71 | fmt.Println(c) 72 | 73 | } -------------------------------------------------------------------------------- /client/go/swagger: -------------------------------------------------------------------------------- 1 | ../../build/go-client/ -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Api/SWGSnippetApi.m: -------------------------------------------------------------------------------- 1 | #import "SWGSnippetApi.h" 2 | #import "SWGQueryParamCollection.h" 3 | #import "SWGInlineResponse20010.h" 4 | 5 | 6 | @interface SWGSnippetApi () 7 | 8 | @property (nonatomic, strong) NSMutableDictionary *defaultHeaders; 9 | 10 | @end 11 | 12 | @implementation SWGSnippetApi 13 | 14 | NSString* kSWGSnippetApiErrorDomain = @"SWGSnippetApiErrorDomain"; 15 | NSInteger kSWGSnippetApiMissingParamErrorCode = 234513; 16 | 17 | @synthesize apiClient = _apiClient; 18 | 19 | #pragma mark - Initialize methods 20 | 21 | - (instancetype) init { 22 | self = [super init]; 23 | if (self) { 24 | SWGConfiguration *config = [SWGConfiguration sharedConfig]; 25 | if (config.apiClient == nil) { 26 | config.apiClient = [[SWGApiClient alloc] init]; 27 | } 28 | _apiClient = config.apiClient; 29 | _defaultHeaders = [NSMutableDictionary dictionary]; 30 | } 31 | return self; 32 | } 33 | 34 | - (id) initWithApiClient:(SWGApiClient *)apiClient { 35 | self = [super init]; 36 | if (self) { 37 | _apiClient = apiClient; 38 | _defaultHeaders = [NSMutableDictionary dictionary]; 39 | } 40 | return self; 41 | } 42 | 43 | #pragma mark - 44 | 45 | + (instancetype)sharedAPI { 46 | static SWGSnippetApi *sharedAPI; 47 | static dispatch_once_t once; 48 | dispatch_once(&once, ^{ 49 | sharedAPI = [[self alloc] init]; 50 | }); 51 | return sharedAPI; 52 | } 53 | 54 | -(NSString*) defaultHeaderForKey:(NSString*)key { 55 | return self.defaultHeaders[key]; 56 | } 57 | 58 | -(void) addHeader:(NSString*)value forKey:(NSString*)key { 59 | [self setDefaultHeaderValue:value forKey:key]; 60 | } 61 | 62 | -(void) setDefaultHeaderValue:(NSString*) value forKey:(NSString*)key { 63 | [self.defaultHeaders setValue:value forKey:key]; 64 | } 65 | 66 | -(NSUInteger) requestQueueSize { 67 | return [SWGApiClient requestQueueSize]; 68 | } 69 | 70 | #pragma mark - Api Methods 71 | 72 | /// 73 | /// 74 | /// 75 | /// @param trackId The musiXmatch track id 76 | /// 77 | /// @param format output format: json, jsonp, xml. (optional, default to json) 78 | /// 79 | /// @param callback jsonp callback (optional) 80 | /// 81 | /// @returns SWGInlineResponse20010* 82 | /// 83 | -(NSNumber*) trackSnippetGetGetWithTrackId: (NSString*) trackId 84 | format: (NSString*) format 85 | callback: (NSString*) callback 86 | completionHandler: (void (^)(SWGInlineResponse20010* output, NSError* error)) handler { 87 | // verify the required parameter 'trackId' is set 88 | if (trackId == nil) { 89 | NSParameterAssert(trackId); 90 | if(handler) { 91 | NSDictionary * userInfo = @{NSLocalizedDescriptionKey : [NSString stringWithFormat:NSLocalizedString(@"Missing required parameter '%@'", nil),@"trackId"] }; 92 | NSError* error = [NSError errorWithDomain:kSWGSnippetApiErrorDomain code:kSWGSnippetApiMissingParamErrorCode userInfo:userInfo]; 93 | handler(nil, error); 94 | } 95 | return nil; 96 | } 97 | 98 | NSMutableString* resourcePath = [NSMutableString stringWithFormat:@"/track.snippet.get"]; 99 | 100 | // remove format in URL if needed 101 | [resourcePath replaceOccurrencesOfString:@".{format}" withString:@".json" options:0 range:NSMakeRange(0,resourcePath.length)]; 102 | 103 | NSMutableDictionary *pathParams = [[NSMutableDictionary alloc] init]; 104 | 105 | NSMutableDictionary* queryParams = [[NSMutableDictionary alloc] init]; 106 | if (format != nil) { 107 | queryParams[@"format"] = format; 108 | } 109 | if (callback != nil) { 110 | queryParams[@"callback"] = callback; 111 | } 112 | if (trackId != nil) { 113 | queryParams[@"track_id"] = trackId; 114 | } 115 | NSMutableDictionary* headerParams = [NSMutableDictionary dictionaryWithDictionary:self.apiClient.configuration.defaultHeaders]; 116 | [headerParams addEntriesFromDictionary:self.defaultHeaders]; 117 | // HTTP header `Accept` 118 | NSString *acceptHeader = [self.apiClient.sanitizer selectHeaderAccept:@[@"application/json"]]; 119 | if(acceptHeader.length > 0) { 120 | headerParams[@"Accept"] = acceptHeader; 121 | } 122 | 123 | // response content type 124 | NSString *responseContentType = [[acceptHeader componentsSeparatedByString:@", "] firstObject] ?: @""; 125 | 126 | // request content type 127 | NSString *requestContentType = [self.apiClient.sanitizer selectHeaderContentType:@[@"application/json"]]; 128 | 129 | // Authentication setting 130 | NSArray *authSettings = @[@"key"]; 131 | 132 | id bodyParam = nil; 133 | NSMutableDictionary *formParams = [[NSMutableDictionary alloc] init]; 134 | NSMutableDictionary *localVarFiles = [[NSMutableDictionary alloc] init]; 135 | 136 | return [self.apiClient requestWithPath: resourcePath 137 | method: @"GET" 138 | pathParams: pathParams 139 | queryParams: queryParams 140 | formParams: formParams 141 | files: localVarFiles 142 | body: bodyParam 143 | headerParams: headerParams 144 | authSettings: authSettings 145 | requestContentType: requestContentType 146 | responseContentType: responseContentType 147 | responseType: @"SWGInlineResponse20010*" 148 | completionBlock: ^(id data, NSError *error) { 149 | if(handler) { 150 | handler((SWGInlineResponse20010*)data, error); 151 | } 152 | } 153 | ]; 154 | } 155 | 156 | 157 | 158 | @end 159 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Core/JSONValueTransformer+ISO8601.m: -------------------------------------------------------------------------------- 1 | #import "JSONValueTransformer+ISO8601.h" 2 | 3 | @implementation JSONValueTransformer (ISO8601) 4 | 5 | - (NSDate *) NSDateFromNSString:(NSString *)string 6 | { 7 | return [NSDate dateWithISO8601String:string]; 8 | } 9 | 10 | @end 11 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Core/SWGConfiguration.m: -------------------------------------------------------------------------------- 1 | #import "SWGConfiguration.h" 2 | 3 | @interface SWGConfiguration () 4 | 5 | @property (nonatomic, strong) NSMutableDictionary *mutableDefaultHeaders; 6 | @property (nonatomic, strong) NSMutableDictionary *mutableApiKey; 7 | @property (nonatomic, strong) NSMutableDictionary *mutableApiKeyPrefix; 8 | 9 | @end 10 | 11 | @implementation SWGConfiguration 12 | 13 | #pragma mark - Singleton Methods 14 | 15 | + (instancetype) sharedConfig { 16 | static SWGConfiguration *shardConfig = nil; 17 | static dispatch_once_t onceToken; 18 | dispatch_once(&onceToken, ^{ 19 | shardConfig = [[self alloc] init]; 20 | }); 21 | return shardConfig; 22 | } 23 | 24 | #pragma mark - Initialize Methods 25 | 26 | - (instancetype) init { 27 | self = [super init]; 28 | if (self) { 29 | self.apiClient = nil; 30 | self.host = @"https://api.musixmatch.com/ws/1.1"; 31 | self.username = @""; 32 | self.password = @""; 33 | self.accessToken= @""; 34 | self.verifySSL = YES; 35 | self.mutableApiKey = [NSMutableDictionary dictionary]; 36 | self.mutableApiKeyPrefix = [NSMutableDictionary dictionary]; 37 | self.mutableDefaultHeaders = [NSMutableDictionary dictionary]; 38 | self.mutableDefaultHeaders[@"User-Agent"] = [NSString stringWithFormat:@"Swagger-Codegen/1.1.0/objc (%@; iOS %@; Scale/%0.2f)",[[UIDevice currentDevice] model], [[UIDevice currentDevice] systemVersion], [[UIScreen mainScreen] scale]]; 39 | self.logger = [SWGLogger sharedLogger]; 40 | } 41 | return self; 42 | } 43 | 44 | #pragma mark - Instance Methods 45 | 46 | - (NSString *) getApiKeyWithPrefix:(NSString *)key { 47 | NSString *prefix = self.apiKeyPrefix[key]; 48 | NSString *apiKey = self.apiKey[key]; 49 | if (prefix && apiKey != (id)[NSNull null] && apiKey.length > 0) { // both api key prefix and api key are set 50 | return [NSString stringWithFormat:@"%@ %@", prefix, apiKey]; 51 | } 52 | else if (apiKey != (id)[NSNull null] && apiKey.length > 0) { // only api key, no api key prefix 53 | return [NSString stringWithFormat:@"%@", self.apiKey[key]]; 54 | } 55 | else { // return empty string if nothing is set 56 | return @""; 57 | } 58 | } 59 | 60 | - (NSString *) getBasicAuthToken { 61 | // return empty string if username and password are empty 62 | if (self.username.length == 0 && self.password.length == 0){ 63 | return @""; 64 | } 65 | 66 | NSString *basicAuthCredentials = [NSString stringWithFormat:@"%@:%@", self.username, self.password]; 67 | NSData *data = [basicAuthCredentials dataUsingEncoding:NSUTF8StringEncoding]; 68 | basicAuthCredentials = [NSString stringWithFormat:@"Basic %@", [data base64EncodedStringWithOptions:0]]; 69 | 70 | return basicAuthCredentials; 71 | } 72 | 73 | - (NSString *) getAccessToken { 74 | if (self.accessToken.length == 0) { // token not set, return empty string 75 | return @""; 76 | } else { 77 | return [NSString stringWithFormat:@"Bearer %@", self.accessToken]; 78 | } 79 | } 80 | 81 | #pragma mark - Setter Methods 82 | 83 | - (void) setApiKey:(NSString *)apiKey forApiKeyIdentifier:(NSString *)identifier { 84 | [self.mutableApiKey setValue:apiKey forKey:identifier]; 85 | } 86 | 87 | - (void) removeApiKey:(NSString *)identifier { 88 | [self.mutableApiKey removeObjectForKey:identifier]; 89 | } 90 | 91 | - (void) setApiKeyPrefix:(NSString *)prefix forApiKeyPrefixIdentifier:(NSString *)identifier { 92 | [self.mutableApiKeyPrefix setValue:prefix forKey:identifier]; 93 | } 94 | 95 | - (void) removeApiKeyPrefix:(NSString *)identifier { 96 | [self.mutableApiKeyPrefix removeObjectForKey:identifier]; 97 | } 98 | 99 | #pragma mark - Getter Methods 100 | 101 | - (NSDictionary *) apiKey { 102 | return [NSDictionary dictionaryWithDictionary:self.mutableApiKey]; 103 | } 104 | 105 | - (NSDictionary *) apiKeyPrefix { 106 | return [NSDictionary dictionaryWithDictionary:self.mutableApiKeyPrefix]; 107 | } 108 | 109 | #pragma mark - 110 | 111 | - (NSDictionary *) authSettings { 112 | return @{ 113 | @"key": 114 | @{ 115 | @"type": @"api_key", 116 | @"in": @"query", 117 | @"key": @"apikey", 118 | @"value": [self getApiKeyWithPrefix:@"apikey"] 119 | }, 120 | }; 121 | } 122 | 123 | -(BOOL)debug { 124 | return self.logger.isEnabled; 125 | } 126 | 127 | -(void)setDebug:(BOOL)debug { 128 | self.logger.enabled = debug; 129 | } 130 | 131 | 132 | 133 | - (void)setDefaultHeaderValue:(NSString *)value forKey:(NSString *)key { 134 | if(!value) { 135 | [self.mutableDefaultHeaders removeObjectForKey:key]; 136 | return; 137 | } 138 | self.mutableDefaultHeaders[key] = value; 139 | } 140 | 141 | -(void) removeDefaultHeaderForKey:(NSString*)key { 142 | [self.mutableDefaultHeaders removeObjectForKey:key]; 143 | } 144 | 145 | - (NSString *)defaultHeaderForKey:(NSString *)key { 146 | return self.mutableDefaultHeaders[key]; 147 | } 148 | 149 | - (NSDictionary *)defaultHeaders { 150 | return [self.mutableDefaultHeaders copy]; 151 | } 152 | 153 | @end 154 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Core/SWGJSONRequestSerializer.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | /** 5 | * Musixmatch API 6 | * Musixmatch lyrics API is a robust service that permits you to search and retrieve lyrics in the simplest possible way. It just works. Include millions of licensed lyrics on your website or in your application legally. The fastest, most powerful and legal way to display lyrics on your website or in your application. #### Read musixmatch API Terms & Conditions and the Privacy Policy: Before getting started, you must take a look at the [API Terms & Conditions](http://musixmatch.com/apiterms/) and the [Privacy Policy](https://developer.musixmatch.com/privacy). We’ve worked hard to make this service completely legal so that we are all protected from any foreseeable liability. Take the time to read this stuff. #### Register for an API key: All you need to do is [register](https://developer.musixmatch.com/signup) in order to get your API key, a mandatory parameter for most of our API calls. It’s your personal identifier and should be kept secret: ``` https://api.musixmatch.com/ws/v1.1/track.get?apikey=YOUR_API_KEY ``` #### Integrate the musixmatch service with your web site or application In the most common scenario you only need to implement two API calls: The first call is to match your catalog to ours using the [track.search](#!/Track/get_track_search) function and the second is to get the lyrics using the [track.lyrics.get](#!/Lyrics/get_track_lyrics_get) api. That’s it! ## API Methods What does the musiXmatch API do? The musiXmatch API allows you to read objects from our huge 100% licensed lyrics database. To make your life easier we are providing you with one or more examples to show you how it could work in the wild. You’ll find both the API request and API response in all the available output formats for each API call. Follow the links below for the details. The current API version is 1.1, the root URL is located at https://api.musixmatch.com/ws/1.1/ Supported input parameters can be found on the page [Input Parameters](https://developer.musixmatch.com/documentation/input-parameters). Use UTF-8 to encode arguments when calling API methods. Every response includes a status_code. A list of all status codes can be consulted at [Status Codes](https://developer.musixmatch.com/documentation/status-codes). ## Music meta data The musiXmatch api is built around lyrics, but there are many other data we provide through the api that can be used to improve every existent music service. ## Track Inside the track object you can get the following extra information: ### TRACK RATING The track rating is a score 0-100 identifying how popular is a song in musixmatch. You can use this information to sort search results, like the most popular songs of an artist, of a music genre, of a lyrics language. ### INSTRUMENTAL AND EXPLICIT FLAGS The instrumental flag identifies songs with music only, no lyrics. The explicit flag identifies songs with explicit lyrics or explicit title. We're able to identify explicit words and set the flag for the most common languages. ### FAVOURITES How many users have this song in their list of favourites. Can be used to sort tracks by num favourite to identify more popular tracks within a set. ### MUSIC GENRE The music genere of the song. Can be used to group songs by genre, as input for similarity alghorithms, artist genre identification, navigate songs by genere, etc. ### SONG TITLES TRANSLATIONS The track title, as translated in different lanauages, can be used to display the right writing for a given user, example: LIES (Bigbang) becomes 在光化門 in chinese HALLELUJAH (Bigbang) becomes ハレルヤ in japanese ## Artist Inside the artist object you can get the following nice extra information: ### COMMENTS AND COUNTRY An artist comment is a short snippet of text which can be mainly used for disambiguation. The artist country is the born country of the artist/group There are two perfect search result if you search by artist with the keyword \"U2\". Indeed there are two distinct music groups with this same name, one is the most known irish group of Bono Vox, the other is a less popular (world wide speaking) group from Japan. Here's how you can made use of the artist comment in your search result page: U2 (Irish rock band) U2 (あきやまうに) You can also show the artist country for even better disambiguation: U2 (Irish rock band) from Ireland U2 (あきやまうに) from Japan ARTIST TRANSLATIONS When you create a world wide music related service you have to take into consideration to display the artist name in the user's local language. These translation are also used as aliases to improve the search results. Let's use PSY for this example. Western people know him as PSY but korean want to see the original name 싸이. Using the name translations provided by our api you can show to every user the writing they expect to see. Furthermore, when you search for \"psy gangnam style\" or \"싸이 gangnam style\" with our search/match api you will still be able to find the song. ### ARTIST RATING The artist rating is a score 0-100 identifying how popular is an artist in musixmatch. You can use this information to build charts, for suggestions, to sort search results. In the example above about U2, we use the artist rating to show the irish band before the japanese one in our serp. ### ARTIST MUSIC GENRE We provide one or more main artist genre, this information can be used to calculate similar artist, suggestions, or the filter a search by artist genre. ## Album Inside the album object you can get the following nice extra information: ### ALBUM RATING The album rating is a score 0-100 identifying how popular is an album in musixmatch. You can use this information to sort search results, like the most popular albums of an artist. ### ALBUM RATING The album rating is a score 0-100 identifying how popular is an album in musixmatch. You can use this information to sort search results, like the most popular albums of an artist. ### ALBUM COPYRIGHT AND LABEL For most of our albums we can provide extra information like for example: Label: Universal-Island Records Ltd. Copyright: (P) 2013 Rubyworks, under license to Columbia Records, a Division of Sony Music Entertainment. ALBUM TYPE AND RELEASE DATE The album official release date can be used to sort an artist's albums view starting by the most recent one. Album can also be filtered or grouped by type: Single, Album, Compilation, Remix, Live. This can help to build an artist page with a more organized structure. ### ALBUM MUSIC GENRE For most of the albums we provide two groups of music genres. Primary and secondary. This information can be used to help user navigate albums by genre. An example could be: Primary genere: POP Secondary genre: K-POP or Mandopop 7 | * 8 | * OpenAPI spec version: 1.1.0 9 | * Contact: info@musixmatch.com 10 | * 11 | * NOTE: This class is auto generated by the swagger code generator program. 12 | * https://github.com/swagger-api/swagger-codegen.git 13 | * Do not edit the class manually. 14 | * 15 | * Licensed under the Apache License, Version 2.0 (the "License"); 16 | * you may not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, software 22 | * distributed under the License is distributed on an "AS IS" BASIS, 23 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 24 | * See the License for the specific language governing permissions and 25 | * limitations under the License. 26 | */ 27 | 28 | @interface SWGJSONRequestSerializer : AFJSONRequestSerializer 29 | @end 30 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Core/SWGJSONRequestSerializer.m: -------------------------------------------------------------------------------- 1 | #import "SWGJSONRequestSerializer.h" 2 | 3 | @implementation SWGJSONRequestSerializer 4 | 5 | /// 6 | /// When customize a request serializer, 7 | /// the serializer must conform the protocol `AFURLRequestSerialization` 8 | /// and implements the protocol method `requestBySerializingRequest:withParameters:error:` 9 | /// 10 | /// @param request The original request. 11 | /// @param parameters The parameters to be encoded. 12 | /// @param error The error that occurred while attempting to encode the request parameters. 13 | /// 14 | /// @return A serialized request. 15 | /// 16 | - (NSURLRequest *)requestBySerializingRequest:(NSURLRequest *)request 17 | withParameters:(id)parameters 18 | error:(NSError *__autoreleasing *)error 19 | { 20 | if (!parameters) { 21 | return request; 22 | } 23 | // If the body data which will be serialized isn't NSArray or NSDictionary 24 | // then put the data in the http request body directly. 25 | if ([parameters isKindOfClass:[NSArray class]] || [parameters isKindOfClass:[NSDictionary class]]) { 26 | return [super requestBySerializingRequest:request withParameters:parameters error:error]; 27 | } 28 | NSMutableURLRequest *mutableRequest = [request mutableCopy]; 29 | if([parameters isKindOfClass:[NSData class]]) { 30 | [mutableRequest setHTTPBody:parameters]; 31 | } else { 32 | [mutableRequest setHTTPBody:[parameters dataUsingEncoding:self.stringEncoding]]; 33 | } 34 | return mutableRequest; 35 | } 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Core/SWGJSONResponseSerializer.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | /** 5 | * Musixmatch API 6 | * Musixmatch lyrics API is a robust service that permits you to search and retrieve lyrics in the simplest possible way. It just works. Include millions of licensed lyrics on your website or in your application legally. The fastest, most powerful and legal way to display lyrics on your website or in your application. #### Read musixmatch API Terms & Conditions and the Privacy Policy: Before getting started, you must take a look at the [API Terms & Conditions](http://musixmatch.com/apiterms/) and the [Privacy Policy](https://developer.musixmatch.com/privacy). We’ve worked hard to make this service completely legal so that we are all protected from any foreseeable liability. Take the time to read this stuff. #### Register for an API key: All you need to do is [register](https://developer.musixmatch.com/signup) in order to get your API key, a mandatory parameter for most of our API calls. It’s your personal identifier and should be kept secret: ``` https://api.musixmatch.com/ws/v1.1/track.get?apikey=YOUR_API_KEY ``` #### Integrate the musixmatch service with your web site or application In the most common scenario you only need to implement two API calls: The first call is to match your catalog to ours using the [track.search](#!/Track/get_track_search) function and the second is to get the lyrics using the [track.lyrics.get](#!/Lyrics/get_track_lyrics_get) api. That’s it! ## API Methods What does the musiXmatch API do? The musiXmatch API allows you to read objects from our huge 100% licensed lyrics database. To make your life easier we are providing you with one or more examples to show you how it could work in the wild. You’ll find both the API request and API response in all the available output formats for each API call. Follow the links below for the details. The current API version is 1.1, the root URL is located at https://api.musixmatch.com/ws/1.1/ Supported input parameters can be found on the page [Input Parameters](https://developer.musixmatch.com/documentation/input-parameters). Use UTF-8 to encode arguments when calling API methods. Every response includes a status_code. A list of all status codes can be consulted at [Status Codes](https://developer.musixmatch.com/documentation/status-codes). ## Music meta data The musiXmatch api is built around lyrics, but there are many other data we provide through the api that can be used to improve every existent music service. ## Track Inside the track object you can get the following extra information: ### TRACK RATING The track rating is a score 0-100 identifying how popular is a song in musixmatch. You can use this information to sort search results, like the most popular songs of an artist, of a music genre, of a lyrics language. ### INSTRUMENTAL AND EXPLICIT FLAGS The instrumental flag identifies songs with music only, no lyrics. The explicit flag identifies songs with explicit lyrics or explicit title. We're able to identify explicit words and set the flag for the most common languages. ### FAVOURITES How many users have this song in their list of favourites. Can be used to sort tracks by num favourite to identify more popular tracks within a set. ### MUSIC GENRE The music genere of the song. Can be used to group songs by genre, as input for similarity alghorithms, artist genre identification, navigate songs by genere, etc. ### SONG TITLES TRANSLATIONS The track title, as translated in different lanauages, can be used to display the right writing for a given user, example: LIES (Bigbang) becomes 在光化門 in chinese HALLELUJAH (Bigbang) becomes ハレルヤ in japanese ## Artist Inside the artist object you can get the following nice extra information: ### COMMENTS AND COUNTRY An artist comment is a short snippet of text which can be mainly used for disambiguation. The artist country is the born country of the artist/group There are two perfect search result if you search by artist with the keyword \"U2\". Indeed there are two distinct music groups with this same name, one is the most known irish group of Bono Vox, the other is a less popular (world wide speaking) group from Japan. Here's how you can made use of the artist comment in your search result page: U2 (Irish rock band) U2 (あきやまうに) You can also show the artist country for even better disambiguation: U2 (Irish rock band) from Ireland U2 (あきやまうに) from Japan ARTIST TRANSLATIONS When you create a world wide music related service you have to take into consideration to display the artist name in the user's local language. These translation are also used as aliases to improve the search results. Let's use PSY for this example. Western people know him as PSY but korean want to see the original name 싸이. Using the name translations provided by our api you can show to every user the writing they expect to see. Furthermore, when you search for \"psy gangnam style\" or \"싸이 gangnam style\" with our search/match api you will still be able to find the song. ### ARTIST RATING The artist rating is a score 0-100 identifying how popular is an artist in musixmatch. You can use this information to build charts, for suggestions, to sort search results. In the example above about U2, we use the artist rating to show the irish band before the japanese one in our serp. ### ARTIST MUSIC GENRE We provide one or more main artist genre, this information can be used to calculate similar artist, suggestions, or the filter a search by artist genre. ## Album Inside the album object you can get the following nice extra information: ### ALBUM RATING The album rating is a score 0-100 identifying how popular is an album in musixmatch. You can use this information to sort search results, like the most popular albums of an artist. ### ALBUM RATING The album rating is a score 0-100 identifying how popular is an album in musixmatch. You can use this information to sort search results, like the most popular albums of an artist. ### ALBUM COPYRIGHT AND LABEL For most of our albums we can provide extra information like for example: Label: Universal-Island Records Ltd. Copyright: (P) 2013 Rubyworks, under license to Columbia Records, a Division of Sony Music Entertainment. ALBUM TYPE AND RELEASE DATE The album official release date can be used to sort an artist's albums view starting by the most recent one. Album can also be filtered or grouped by type: Single, Album, Compilation, Remix, Live. This can help to build an artist page with a more organized structure. ### ALBUM MUSIC GENRE For most of the albums we provide two groups of music genres. Primary and secondary. This information can be used to help user navigate albums by genre. An example could be: Primary genere: POP Secondary genre: K-POP or Mandopop 7 | * 8 | * OpenAPI spec version: 1.1.0 9 | * Contact: info@musixmatch.com 10 | * 11 | * NOTE: This class is auto generated by the swagger code generator program. 12 | * https://github.com/swagger-api/swagger-codegen.git 13 | * Do not edit the class manually. 14 | * 15 | * Licensed under the Apache License, Version 2.0 (the "License"); 16 | * you may not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, software 22 | * distributed under the License is distributed on an "AS IS" BASIS, 23 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 24 | * See the License for the specific language governing permissions and 25 | * limitations under the License. 26 | */ 27 | 28 | @interface SWGJSONResponseSerializer : AFJSONResponseSerializer 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Core/SWGJSONResponseSerializer.m: -------------------------------------------------------------------------------- 1 | #import "SWGJSONResponseSerializer.h" 2 | 3 | @implementation SWGJSONResponseSerializer 4 | 5 | /// 6 | /// When customize a response serializer, 7 | /// the serializer must conform the protocol `AFURLResponseSerialization` 8 | /// and implements the protocol method `responseObjectForResponse:error:` 9 | /// 10 | /// @param response The response to be processed. 11 | /// @param data The response data to be decoded. 12 | /// @param error The error that occurred while attempting to decode the response data. 13 | /// 14 | /// @return The object decoded from the specified response data. 15 | /// 16 | - (id) responseObjectForResponse:(NSURLResponse *)response 17 | data:(NSData *)data 18 | error:(NSError *__autoreleasing *)error { 19 | NSDictionary *responseJson = [super responseObjectForResponse:response data:data error:error]; 20 | 21 | // if response data is not a valid json, return string of data. 22 | if ([self isParseError:*error]) { 23 | *error = nil; 24 | NSString *responseString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 25 | return responseString; 26 | } 27 | 28 | return responseJson; 29 | } 30 | 31 | -(BOOL)isParseError:(NSError *)error { 32 | return [error.domain isEqualToString:NSCocoaErrorDomain] && error.code == 3840; 33 | } 34 | 35 | + (instancetype)serializer { 36 | return [self serializerWithReadingOptions:NSJSONReadingAllowFragments]; 37 | } 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Core/SWGLogger.m: -------------------------------------------------------------------------------- 1 | #import "SWGLogger.h" 2 | 3 | @interface SWGLogger () 4 | 5 | @end 6 | 7 | @implementation SWGLogger 8 | 9 | + (instancetype) sharedLogger { 10 | static SWGLogger *shardLogger = nil; 11 | static dispatch_once_t onceToken; 12 | dispatch_once(&onceToken, ^{ 13 | shardLogger = [[self alloc] init]; 14 | }); 15 | return shardLogger; 16 | } 17 | 18 | #pragma mark - Log Methods 19 | 20 | - (void)debugLog:(NSString *)method 21 | message:(NSString *)format, ... { 22 | if (!self.isEnabled) { 23 | return; 24 | } 25 | 26 | NSMutableString *message = [NSMutableString stringWithCapacity:1]; 27 | 28 | if (method) { 29 | [message appendFormat:@"%@: ", method]; 30 | } 31 | 32 | va_list args; 33 | va_start(args, format); 34 | 35 | [message appendString:[[NSString alloc] initWithFormat:format arguments:args]]; 36 | 37 | // If set logging file handler, log into file, 38 | // otherwise log into console. 39 | if (self.loggingFileHandler) { 40 | [self.loggingFileHandler seekToEndOfFile]; 41 | [self.loggingFileHandler writeData:[message dataUsingEncoding:NSUTF8StringEncoding]]; 42 | } else { 43 | NSLog(@"%@", message); 44 | } 45 | 46 | va_end(args); 47 | } 48 | 49 | - (void)logResponse:(NSURLResponse *)response responseObject:(id)responseObject request:(NSURLRequest *)request error:(NSError *)error { 50 | NSString *message = [NSString stringWithFormat:@"\n[DEBUG] HTTP request body \n~BEGIN~\n %@\n~END~\n"\ 51 | "[DEBUG] HTTP response body \n~BEGIN~\n %@\n~END~\n", 52 | [[NSString alloc] initWithData:request.HTTPBody encoding:NSUTF8StringEncoding], 53 | responseObject]; 54 | 55 | SWGDebugLog(message); 56 | } 57 | 58 | - (void) setLoggingFile:(NSString *)loggingFile { 59 | if(_loggingFile == loggingFile) { 60 | return; 61 | } 62 | // close old file handler 63 | if ([self.loggingFileHandler isKindOfClass:[NSFileHandle class]]) { 64 | [self.loggingFileHandler closeFile]; 65 | } 66 | _loggingFile = loggingFile; 67 | _loggingFileHandler = [NSFileHandle fileHandleForWritingAtPath:_loggingFile]; 68 | if (_loggingFileHandler == nil) { 69 | [[NSFileManager defaultManager] createFileAtPath:_loggingFile contents:nil attributes:nil]; 70 | _loggingFileHandler = [NSFileHandle fileHandleForWritingAtPath:_loggingFile]; 71 | } 72 | } 73 | 74 | @end 75 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Core/SWGObject.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | /** 5 | * Musixmatch API 6 | * Musixmatch lyrics API is a robust service that permits you to search and retrieve lyrics in the simplest possible way. It just works. Include millions of licensed lyrics on your website or in your application legally. The fastest, most powerful and legal way to display lyrics on your website or in your application. #### Read musixmatch API Terms & Conditions and the Privacy Policy: Before getting started, you must take a look at the [API Terms & Conditions](http://musixmatch.com/apiterms/) and the [Privacy Policy](https://developer.musixmatch.com/privacy). We’ve worked hard to make this service completely legal so that we are all protected from any foreseeable liability. Take the time to read this stuff. #### Register for an API key: All you need to do is [register](https://developer.musixmatch.com/signup) in order to get your API key, a mandatory parameter for most of our API calls. It’s your personal identifier and should be kept secret: ``` https://api.musixmatch.com/ws/v1.1/track.get?apikey=YOUR_API_KEY ``` #### Integrate the musixmatch service with your web site or application In the most common scenario you only need to implement two API calls: The first call is to match your catalog to ours using the [track.search](#!/Track/get_track_search) function and the second is to get the lyrics using the [track.lyrics.get](#!/Lyrics/get_track_lyrics_get) api. That’s it! ## API Methods What does the musiXmatch API do? The musiXmatch API allows you to read objects from our huge 100% licensed lyrics database. To make your life easier we are providing you with one or more examples to show you how it could work in the wild. You’ll find both the API request and API response in all the available output formats for each API call. Follow the links below for the details. The current API version is 1.1, the root URL is located at https://api.musixmatch.com/ws/1.1/ Supported input parameters can be found on the page [Input Parameters](https://developer.musixmatch.com/documentation/input-parameters). Use UTF-8 to encode arguments when calling API methods. Every response includes a status_code. A list of all status codes can be consulted at [Status Codes](https://developer.musixmatch.com/documentation/status-codes). ## Music meta data The musiXmatch api is built around lyrics, but there are many other data we provide through the api that can be used to improve every existent music service. ## Track Inside the track object you can get the following extra information: ### TRACK RATING The track rating is a score 0-100 identifying how popular is a song in musixmatch. You can use this information to sort search results, like the most popular songs of an artist, of a music genre, of a lyrics language. ### INSTRUMENTAL AND EXPLICIT FLAGS The instrumental flag identifies songs with music only, no lyrics. The explicit flag identifies songs with explicit lyrics or explicit title. We're able to identify explicit words and set the flag for the most common languages. ### FAVOURITES How many users have this song in their list of favourites. Can be used to sort tracks by num favourite to identify more popular tracks within a set. ### MUSIC GENRE The music genere of the song. Can be used to group songs by genre, as input for similarity alghorithms, artist genre identification, navigate songs by genere, etc. ### SONG TITLES TRANSLATIONS The track title, as translated in different lanauages, can be used to display the right writing for a given user, example: LIES (Bigbang) becomes 在光化門 in chinese HALLELUJAH (Bigbang) becomes ハレルヤ in japanese ## Artist Inside the artist object you can get the following nice extra information: ### COMMENTS AND COUNTRY An artist comment is a short snippet of text which can be mainly used for disambiguation. The artist country is the born country of the artist/group There are two perfect search result if you search by artist with the keyword \"U2\". Indeed there are two distinct music groups with this same name, one is the most known irish group of Bono Vox, the other is a less popular (world wide speaking) group from Japan. Here's how you can made use of the artist comment in your search result page: U2 (Irish rock band) U2 (あきやまうに) You can also show the artist country for even better disambiguation: U2 (Irish rock band) from Ireland U2 (あきやまうに) from Japan ARTIST TRANSLATIONS When you create a world wide music related service you have to take into consideration to display the artist name in the user's local language. These translation are also used as aliases to improve the search results. Let's use PSY for this example. Western people know him as PSY but korean want to see the original name 싸이. Using the name translations provided by our api you can show to every user the writing they expect to see. Furthermore, when you search for \"psy gangnam style\" or \"싸이 gangnam style\" with our search/match api you will still be able to find the song. ### ARTIST RATING The artist rating is a score 0-100 identifying how popular is an artist in musixmatch. You can use this information to build charts, for suggestions, to sort search results. In the example above about U2, we use the artist rating to show the irish band before the japanese one in our serp. ### ARTIST MUSIC GENRE We provide one or more main artist genre, this information can be used to calculate similar artist, suggestions, or the filter a search by artist genre. ## Album Inside the album object you can get the following nice extra information: ### ALBUM RATING The album rating is a score 0-100 identifying how popular is an album in musixmatch. You can use this information to sort search results, like the most popular albums of an artist. ### ALBUM RATING The album rating is a score 0-100 identifying how popular is an album in musixmatch. You can use this information to sort search results, like the most popular albums of an artist. ### ALBUM COPYRIGHT AND LABEL For most of our albums we can provide extra information like for example: Label: Universal-Island Records Ltd. Copyright: (P) 2013 Rubyworks, under license to Columbia Records, a Division of Sony Music Entertainment. ALBUM TYPE AND RELEASE DATE The album official release date can be used to sort an artist's albums view starting by the most recent one. Album can also be filtered or grouped by type: Single, Album, Compilation, Remix, Live. This can help to build an artist page with a more organized structure. ### ALBUM MUSIC GENRE For most of the albums we provide two groups of music genres. Primary and secondary. This information can be used to help user navigate albums by genre. An example could be: Primary genere: POP Secondary genre: K-POP or Mandopop 7 | * 8 | * OpenAPI spec version: 1.1.0 9 | * Contact: info@musixmatch.com 10 | * 11 | * NOTE: This class is auto generated by the swagger code generator program. 12 | * https://github.com/swagger-api/swagger-codegen.git 13 | * Do not edit the class manually. 14 | * 15 | * Licensed under the Apache License, Version 2.0 (the "License"); 16 | * you may not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, software 22 | * distributed under the License is distributed on an "AS IS" BASIS, 23 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 24 | * See the License for the specific language governing permissions and 25 | * limitations under the License. 26 | */ 27 | 28 | @interface SWGObject : JSONModel 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Core/SWGObject.m: -------------------------------------------------------------------------------- 1 | #import "SWGObject.h" 2 | 3 | @implementation SWGObject 4 | 5 | /** 6 | * Gets the string presentation of the object. 7 | * This method will be called when logging model object using `NSLog`. 8 | */ 9 | - (NSString *)description { 10 | return [[self toDictionary] description]; 11 | } 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Core/SWGQueryParamCollection.m: -------------------------------------------------------------------------------- 1 | #import "SWGQueryParamCollection.h" 2 | 3 | @implementation SWGQueryParamCollection 4 | 5 | @synthesize values = _values; 6 | @synthesize format = _format; 7 | 8 | - (id) initWithValuesAndFormat: (NSArray*) values 9 | format: (NSString*) format { 10 | _values = values; 11 | _format = format; 12 | 13 | return self; 14 | } 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Core/SWGSanitizer.m: -------------------------------------------------------------------------------- 1 | #import "SWGSanitizer.h" 2 | #import "SWGObject.h" 3 | #import "SWGQueryParamCollection.h" 4 | #import 5 | 6 | NSString * SWGPercentEscapedStringFromString(NSString *string) { 7 | static NSString * const kSWGCharactersGeneralDelimitersToEncode = @":#[]@"; 8 | static NSString * const kSWGCharactersSubDelimitersToEncode = @"!$&'()*+,;="; 9 | 10 | NSMutableCharacterSet * allowedCharacterSet = [[NSCharacterSet URLQueryAllowedCharacterSet] mutableCopy]; 11 | [allowedCharacterSet removeCharactersInString:[kSWGCharactersGeneralDelimitersToEncode stringByAppendingString:kSWGCharactersSubDelimitersToEncode]]; 12 | 13 | static NSUInteger const batchSize = 50; 14 | 15 | NSUInteger index = 0; 16 | NSMutableString *escaped = @"".mutableCopy; 17 | 18 | while (index < string.length) { 19 | #pragma GCC diagnostic push 20 | #pragma GCC diagnostic ignored "-Wgnu" 21 | NSUInteger length = MIN(string.length - index, batchSize); 22 | #pragma GCC diagnostic pop 23 | NSRange range = NSMakeRange(index, length); 24 | 25 | // To avoid breaking up character sequences such as 👴🏻👮🏽 26 | range = [string rangeOfComposedCharacterSequencesForRange:range]; 27 | 28 | NSString *substring = [string substringWithRange:range]; 29 | NSString *encoded = [substring stringByAddingPercentEncodingWithAllowedCharacters:allowedCharacterSet]; 30 | [escaped appendString:encoded]; 31 | 32 | index += range.length; 33 | } 34 | 35 | return escaped; 36 | } 37 | 38 | @interface SWGSanitizer () 39 | 40 | @property (nonatomic, strong) NSRegularExpression* jsonHeaderTypeExpression; 41 | 42 | @end 43 | 44 | @implementation SWGSanitizer 45 | 46 | static NSString * kApplicationJSONType = @"application/json"; 47 | 48 | -(instancetype)init { 49 | self = [super init]; 50 | if ( !self ) { 51 | return nil; 52 | } 53 | _jsonHeaderTypeExpression = [NSRegularExpression regularExpressionWithPattern:@"(.*)application(.*)json(.*)" options:NSRegularExpressionCaseInsensitive error:nil]; 54 | return self; 55 | } 56 | 57 | 58 | - (id) sanitizeForSerialization:(id) object { 59 | if (object == nil) { 60 | return nil; 61 | } 62 | else if ([object isKindOfClass:[NSString class]] || [object isKindOfClass:[NSNumber class]] || [object isKindOfClass:[SWGQueryParamCollection class]]) { 63 | return object; 64 | } 65 | else if ([object isKindOfClass:[NSDate class]]) { 66 | return [self dateParameterToString:object]; 67 | } 68 | else if ([object isKindOfClass:[NSArray class]]) { 69 | NSArray *objectArray = object; 70 | NSMutableArray *sanitizedObjs = [NSMutableArray arrayWithCapacity:[objectArray count]]; 71 | [object enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { 72 | id sanitizedObj = [self sanitizeForSerialization:obj]; 73 | if (sanitizedObj) { 74 | [sanitizedObjs addObject:sanitizedObj]; 75 | } 76 | }]; 77 | return sanitizedObjs; 78 | } 79 | else if ([object isKindOfClass:[NSDictionary class]]) { 80 | NSDictionary *objectDict = object; 81 | NSMutableDictionary *sanitizedObjs = [NSMutableDictionary dictionaryWithCapacity:[objectDict count]]; 82 | [object enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) { 83 | id sanitizedObj = [self sanitizeForSerialization:obj]; 84 | if (sanitizedObj) { 85 | sanitizedObjs[key] = sanitizedObj; 86 | } 87 | }]; 88 | return sanitizedObjs; 89 | } 90 | else if ([object isKindOfClass:[SWGObject class]]) { 91 | return [object toDictionary]; 92 | } 93 | else { 94 | NSException *e = [NSException 95 | exceptionWithName:@"InvalidObjectArgumentException" 96 | reason:[NSString stringWithFormat:@"*** The argument object: %@ is invalid", object] 97 | userInfo:nil]; 98 | @throw e; 99 | } 100 | } 101 | 102 | - (NSString *) parameterToString:(id)param { 103 | if ([param isKindOfClass:[NSString class]]) { 104 | return param; 105 | } 106 | else if ([param isKindOfClass:[NSNumber class]]) { 107 | return [param stringValue]; 108 | } 109 | else if ([param isKindOfClass:[NSDate class]]) { 110 | return [self dateParameterToString:param]; 111 | } 112 | else if ([param isKindOfClass:[NSArray class]]) { 113 | NSMutableArray *mutableParam = [NSMutableArray array]; 114 | [param enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { 115 | [mutableParam addObject:[self parameterToString:obj]]; 116 | }]; 117 | return [mutableParam componentsJoinedByString:@","]; 118 | } 119 | else { 120 | NSException *e = [NSException 121 | exceptionWithName:@"InvalidObjectArgumentException" 122 | reason:[NSString stringWithFormat:@"*** The argument object: %@ is invalid", param] 123 | userInfo:nil]; 124 | @throw e; 125 | } 126 | } 127 | 128 | - (NSString *)dateParameterToString:(id)param { 129 | return [param ISO8601String]; 130 | } 131 | 132 | #pragma mark - Utility Methods 133 | 134 | /* 135 | * Detect `Accept` from accepts 136 | */ 137 | - (NSString *) selectHeaderAccept:(NSArray *)accepts { 138 | if (accepts.count == 0) { 139 | return @""; 140 | } 141 | NSMutableArray *lowerAccepts = [[NSMutableArray alloc] initWithCapacity:[accepts count]]; 142 | for (NSString *string in accepts) { 143 | if ([self.jsonHeaderTypeExpression matchesInString:string options:0 range:NSMakeRange(0, [string length])].count > 0) { 144 | return kApplicationJSONType; 145 | } 146 | [lowerAccepts addObject:[string lowercaseString]]; 147 | } 148 | return [lowerAccepts componentsJoinedByString:@", "]; 149 | } 150 | 151 | /* 152 | * Detect `Content-Type` from contentTypes 153 | */ 154 | - (NSString *) selectHeaderContentType:(NSArray *)contentTypes { 155 | if (contentTypes.count == 0) { 156 | return kApplicationJSONType; 157 | } 158 | NSMutableArray *lowerContentTypes = [[NSMutableArray alloc] initWithCapacity:[contentTypes count]]; 159 | for (NSString *string in contentTypes) { 160 | if([self.jsonHeaderTypeExpression matchesInString:string options:0 range:NSMakeRange(0, [string length])].count > 0){ 161 | return kApplicationJSONType; 162 | } 163 | [lowerContentTypes addObject:[string lowercaseString]]; 164 | } 165 | return [lowerContentTypes firstObject]; 166 | } 167 | 168 | @end 169 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGAlbum.m: -------------------------------------------------------------------------------- 1 | #import "SWGAlbum.h" 2 | 3 | @implementation SWGAlbum 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"album_coverart_500x500": @"albumCoverart500x500", @"restricted": @"restricted", @"artist_id": @"artistId", @"album_name": @"albumName", @"album_coverart_800x800": @"albumCoverart800x800", @"album_copyright": @"albumCopyright", @"album_coverart_350x350": @"albumCoverart350x350", @"artist_name": @"artistName", @"primary_genres": @"primaryGenres", @"album_id": @"albumId", @"album_rating": @"albumRating", @"album_pline": @"albumPline", @"album_track_count": @"albumTrackCount", @"album_release_type": @"albumReleaseType", @"album_release_date": @"albumReleaseDate", @"album_edit_url": @"albumEditUrl", @"updated_time": @"updatedTime", @"secondary_genres": @"secondaryGenres", @"album_mbid": @"albumMbid", @"album_vanity_id": @"albumVanityId", @"album_coverart_100x100": @"albumCoverart100x100", @"album_label": @"albumLabel" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"albumCoverart500x500", @"restricted", @"artistId", @"albumName", @"albumCoverart800x800", @"albumCopyright", @"albumCoverart350x350", @"artistName", @"primaryGenres", @"albumId", @"albumRating", @"albumPline", @"albumTrackCount", @"albumReleaseType", @"albumReleaseDate", @"albumEditUrl", @"updatedTime", @"secondaryGenres", @"albumMbid", @"albumVanityId", @"albumCoverart100x100", @"albumLabel"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGAlbumPrimaryGenres.m: -------------------------------------------------------------------------------- 1 | #import "SWGAlbumPrimaryGenres.h" 2 | 3 | @implementation SWGAlbumPrimaryGenres 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"music_genre_list": @"musicGenreList" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"musicGenreList"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGAlbumPrimaryGenresMusicGenre.m: -------------------------------------------------------------------------------- 1 | #import "SWGAlbumPrimaryGenresMusicGenre.h" 2 | 3 | @implementation SWGAlbumPrimaryGenresMusicGenre 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"music_genre_name_extended": @"musicGenreNameExtended", @"music_genre_vanity": @"musicGenreVanity", @"music_genre_parent_id": @"musicGenreParentId", @"music_genre_id": @"musicGenreId", @"music_genre_name": @"musicGenreName" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"musicGenreNameExtended", @"musicGenreVanity", @"musicGenreParentId", @"musicGenreId", @"musicGenreName"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGAlbumPrimaryGenresMusicGenreList.m: -------------------------------------------------------------------------------- 1 | #import "SWGAlbumPrimaryGenresMusicGenreList.h" 2 | 3 | @implementation SWGAlbumPrimaryGenresMusicGenreList 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"music_genre": @"musicGenre" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"musicGenre"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGArtist.m: -------------------------------------------------------------------------------- 1 | #import "SWGArtist.h" 2 | 3 | @implementation SWGArtist 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"artist_credits": @"artistCredits", @"artist_mbid": @"artistMbid", @"artist_name": @"artistName", @"secondary_genres": @"secondaryGenres", @"artist_alias_list": @"artistAliasList", @"artist_vanity_id": @"artistVanityId", @"restricted": @"restricted", @"artist_country": @"artistCountry", @"artist_comment": @"artistComment", @"artist_name_translation_list": @"artistNameTranslationList", @"artist_edit_url": @"artistEditUrl", @"artist_share_url": @"artistShareUrl", @"artist_id": @"artistId", @"updated_time": @"updatedTime", @"managed": @"managed", @"primary_genres": @"primaryGenres", @"artist_twitter_url": @"artistTwitterUrl", @"artist_rating": @"artistRating" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"artistCredits", @"artistMbid", @"artistName", @"secondaryGenres", @"artistAliasList", @"artistVanityId", @"restricted", @"artistCountry", @"artistComment", @"artistNameTranslationList", @"artistEditUrl", @"artistShareUrl", @"artistId", @"updatedTime", @"managed", @"primaryGenres", @"artistTwitterUrl", @"artistRating"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGArtistArtistAliasList.m: -------------------------------------------------------------------------------- 1 | #import "SWGArtistArtistAliasList.h" 2 | 3 | @implementation SWGArtistArtistAliasList 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"artist_alias": @"artistAlias" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"artistAlias"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGArtistArtistCredits.m: -------------------------------------------------------------------------------- 1 | #import "SWGArtistArtistCredits.h" 2 | 3 | @implementation SWGArtistArtistCredits 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"artist_list": @"artistList" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"artistList"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGArtistArtistNameTranslation.m: -------------------------------------------------------------------------------- 1 | #import "SWGArtistArtistNameTranslation.h" 2 | 3 | @implementation SWGArtistArtistNameTranslation 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"language": @"language", @"translation": @"translation" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"language", @"translation"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGArtistArtistNameTranslationList.m: -------------------------------------------------------------------------------- 1 | #import "SWGArtistArtistNameTranslationList.h" 2 | 3 | @implementation SWGArtistArtistNameTranslationList 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"artist_name_translation": @"artistNameTranslation" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"artistNameTranslation"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGArtistPrimaryGenres.m: -------------------------------------------------------------------------------- 1 | #import "SWGArtistPrimaryGenres.h" 2 | 3 | @implementation SWGArtistPrimaryGenres 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"music_genre_list": @"musicGenreList" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"musicGenreList"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGArtistPrimaryGenresMusicGenre.m: -------------------------------------------------------------------------------- 1 | #import "SWGArtistPrimaryGenresMusicGenre.h" 2 | 3 | @implementation SWGArtistPrimaryGenresMusicGenre 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"music_genre_parent_id": @"musicGenreParentId", @"music_genre_name": @"musicGenreName", @"music_genre_vanity": @"musicGenreVanity", @"music_genre_id": @"musicGenreId", @"music_genre_name_extended": @"musicGenreNameExtended" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"musicGenreParentId", @"musicGenreName", @"musicGenreVanity", @"musicGenreId", @"musicGenreNameExtended"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGArtistPrimaryGenresMusicGenreList.m: -------------------------------------------------------------------------------- 1 | #import "SWGArtistPrimaryGenresMusicGenreList.h" 2 | 3 | @implementation SWGArtistPrimaryGenresMusicGenreList 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"music_genre": @"musicGenre" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"musicGenre"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGArtistSecondaryGenres.m: -------------------------------------------------------------------------------- 1 | #import "SWGArtistSecondaryGenres.h" 2 | 3 | @implementation SWGArtistSecondaryGenres 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"music_genre_list": @"musicGenreList" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"musicGenreList"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGInlineResponse200.m: -------------------------------------------------------------------------------- 1 | #import "SWGInlineResponse200.h" 2 | 3 | @implementation SWGInlineResponse200 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"message": @"message" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"message"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGInlineResponse2001.m: -------------------------------------------------------------------------------- 1 | #import "SWGInlineResponse2001.h" 2 | 3 | @implementation SWGInlineResponse2001 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"message": @"message" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"message"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGInlineResponse20010.m: -------------------------------------------------------------------------------- 1 | #import "SWGInlineResponse20010.h" 2 | 3 | @implementation SWGInlineResponse20010 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"message": @"message" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"message"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGInlineResponse20010Message.m: -------------------------------------------------------------------------------- 1 | #import "SWGInlineResponse20010Message.h" 2 | 3 | @implementation SWGInlineResponse20010Message 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"header": @"header", @"body": @"body" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"header", @"body"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGInlineResponse20010MessageBody.m: -------------------------------------------------------------------------------- 1 | #import "SWGInlineResponse20010MessageBody.h" 2 | 3 | @implementation SWGInlineResponse20010MessageBody 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"snippet": @"snippet" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"snippet"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGInlineResponse2001Message.m: -------------------------------------------------------------------------------- 1 | #import "SWGInlineResponse2001Message.h" 2 | 3 | @implementation SWGInlineResponse2001Message 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"header": @"header", @"body": @"body" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"header", @"body"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGInlineResponse2001MessageBody.m: -------------------------------------------------------------------------------- 1 | #import "SWGInlineResponse2001MessageBody.h" 2 | 3 | @implementation SWGInlineResponse2001MessageBody 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"track_list": @"trackList" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"trackList"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGInlineResponse2001MessageHeader.m: -------------------------------------------------------------------------------- 1 | #import "SWGInlineResponse2001MessageHeader.h" 2 | 3 | @implementation SWGInlineResponse2001MessageHeader 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"status_code": @"statusCode", @"available": @"available", @"execute_time": @"executeTime" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"statusCode", @"available", @"executeTime"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGInlineResponse2002.m: -------------------------------------------------------------------------------- 1 | #import "SWGInlineResponse2002.h" 2 | 3 | @implementation SWGInlineResponse2002 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"message": @"message" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"message"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGInlineResponse2002Message.m: -------------------------------------------------------------------------------- 1 | #import "SWGInlineResponse2002Message.h" 2 | 3 | @implementation SWGInlineResponse2002Message 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"header": @"header", @"body": @"body" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"header", @"body"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGInlineResponse2002MessageBody.m: -------------------------------------------------------------------------------- 1 | #import "SWGInlineResponse2002MessageBody.h" 2 | 3 | @implementation SWGInlineResponse2002MessageBody 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"album_list": @"albumList" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"albumList"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGInlineResponse2002MessageHeader.m: -------------------------------------------------------------------------------- 1 | #import "SWGInlineResponse2002MessageHeader.h" 2 | 3 | @implementation SWGInlineResponse2002MessageHeader 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"available": @"available", @"status_code": @"statusCode", @"execute_time": @"executeTime" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"available", @"statusCode", @"executeTime"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGInlineResponse2003.m: -------------------------------------------------------------------------------- 1 | #import "SWGInlineResponse2003.h" 2 | 3 | @implementation SWGInlineResponse2003 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"message": @"message" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"message"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGInlineResponse2003Message.m: -------------------------------------------------------------------------------- 1 | #import "SWGInlineResponse2003Message.h" 2 | 3 | @implementation SWGInlineResponse2003Message 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"header": @"header", @"body": @"body" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"header", @"body"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGInlineResponse2003MessageBody.m: -------------------------------------------------------------------------------- 1 | #import "SWGInlineResponse2003MessageBody.h" 2 | 3 | @implementation SWGInlineResponse2003MessageBody 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"artist": @"artist" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"artist"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGInlineResponse2004.m: -------------------------------------------------------------------------------- 1 | #import "SWGInlineResponse2004.h" 2 | 3 | @implementation SWGInlineResponse2004 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"message": @"message" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"message"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGInlineResponse2004Message.m: -------------------------------------------------------------------------------- 1 | #import "SWGInlineResponse2004Message.h" 2 | 3 | @implementation SWGInlineResponse2004Message 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"header": @"header", @"body": @"body" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"header", @"body"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGInlineResponse2004MessageBody.m: -------------------------------------------------------------------------------- 1 | #import "SWGInlineResponse2004MessageBody.h" 2 | 3 | @implementation SWGInlineResponse2004MessageBody 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"artist_list": @"artistList" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"artistList"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGInlineResponse2005.m: -------------------------------------------------------------------------------- 1 | #import "SWGInlineResponse2005.h" 2 | 3 | @implementation SWGInlineResponse2005 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"message": @"message" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"message"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGInlineResponse2005Message.m: -------------------------------------------------------------------------------- 1 | #import "SWGInlineResponse2005Message.h" 2 | 3 | @implementation SWGInlineResponse2005Message 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"header": @"header", @"body": @"body" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"header", @"body"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGInlineResponse2005MessageHeader.m: -------------------------------------------------------------------------------- 1 | #import "SWGInlineResponse2005MessageHeader.h" 2 | 3 | @implementation SWGInlineResponse2005MessageHeader 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"available": @"available", @"status_code": @"statusCode", @"execute_time": @"executeTime" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"available", @"statusCode", @"executeTime"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGInlineResponse2006.m: -------------------------------------------------------------------------------- 1 | #import "SWGInlineResponse2006.h" 2 | 3 | @implementation SWGInlineResponse2006 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"message": @"message" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"message"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGInlineResponse2006Message.m: -------------------------------------------------------------------------------- 1 | #import "SWGInlineResponse2006Message.h" 2 | 3 | @implementation SWGInlineResponse2006Message 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"header": @"header", @"body": @"body" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"header", @"body"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGInlineResponse2006MessageBody.m: -------------------------------------------------------------------------------- 1 | #import "SWGInlineResponse2006MessageBody.h" 2 | 3 | @implementation SWGInlineResponse2006MessageBody 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"track_list": @"trackList" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"trackList"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGInlineResponse2006MessageBodyTrackList.m: -------------------------------------------------------------------------------- 1 | #import "SWGInlineResponse2006MessageBodyTrackList.h" 2 | 3 | @implementation SWGInlineResponse2006MessageBodyTrackList 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"track": @"track" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"track"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGInlineResponse2007.m: -------------------------------------------------------------------------------- 1 | #import "SWGInlineResponse2007.h" 2 | 3 | @implementation SWGInlineResponse2007 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"message": @"message" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"message"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGInlineResponse2007Message.m: -------------------------------------------------------------------------------- 1 | #import "SWGInlineResponse2007Message.h" 2 | 3 | @implementation SWGInlineResponse2007Message 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"header": @"header", @"body": @"body" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"header", @"body"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGInlineResponse2007MessageBody.m: -------------------------------------------------------------------------------- 1 | #import "SWGInlineResponse2007MessageBody.h" 2 | 3 | @implementation SWGInlineResponse2007MessageBody 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"lyrics": @"lyrics" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"lyrics"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGInlineResponse2008.m: -------------------------------------------------------------------------------- 1 | #import "SWGInlineResponse2008.h" 2 | 3 | @implementation SWGInlineResponse2008 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"message": @"message" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"message"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGInlineResponse2008Message.m: -------------------------------------------------------------------------------- 1 | #import "SWGInlineResponse2008Message.h" 2 | 3 | @implementation SWGInlineResponse2008Message 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"header": @"header", @"body": @"body" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"header", @"body"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGInlineResponse2008MessageBody.m: -------------------------------------------------------------------------------- 1 | #import "SWGInlineResponse2008MessageBody.h" 2 | 3 | @implementation SWGInlineResponse2008MessageBody 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"subtitle": @"subtitle" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"subtitle"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGInlineResponse2009.m: -------------------------------------------------------------------------------- 1 | #import "SWGInlineResponse2009.h" 2 | 3 | @implementation SWGInlineResponse2009 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"message": @"message" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"message"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGInlineResponse2009Message.m: -------------------------------------------------------------------------------- 1 | #import "SWGInlineResponse2009Message.h" 2 | 3 | @implementation SWGInlineResponse2009Message 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"header": @"header", @"body": @"body" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"header", @"body"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGInlineResponse200Message.m: -------------------------------------------------------------------------------- 1 | #import "SWGInlineResponse200Message.h" 2 | 3 | @implementation SWGInlineResponse200Message 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"header": @"header", @"body": @"body" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"header", @"body"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGInlineResponse200MessageBody.m: -------------------------------------------------------------------------------- 1 | #import "SWGInlineResponse200MessageBody.h" 2 | 3 | @implementation SWGInlineResponse200MessageBody 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"album": @"album" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"album"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGInlineResponse200MessageHeader.m: -------------------------------------------------------------------------------- 1 | #import "SWGInlineResponse200MessageHeader.h" 2 | 3 | @implementation SWGInlineResponse200MessageHeader 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"status_code": @"statusCode", @"execute_time": @"executeTime" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"statusCode", @"executeTime"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGLyrics.m: -------------------------------------------------------------------------------- 1 | #import "SWGLyrics.h" 2 | 3 | @implementation SWGLyrics 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"instrumental": @"instrumental", @"pixel_tracking_url": @"pixelTrackingUrl", @"publisher_list": @"publisherList", @"lyrics_language_description": @"lyricsLanguageDescription", @"restricted": @"restricted", @"updated_time": @"updatedTime", @"explicit": @"explicit", @"lyrics_copyright": @"lyricsCopyright", @"html_tracking_url": @"htmlTrackingUrl", @"lyrics_language": @"lyricsLanguage", @"script_tracking_url": @"scriptTrackingUrl", @"verified": @"verified", @"lyrics_body": @"lyricsBody", @"lyrics_id": @"lyricsId", @"writer_list": @"writerList", @"can_edit": @"canEdit", @"action_requested": @"actionRequested", @"locked": @"locked" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"instrumental", @"pixelTrackingUrl", @"publisherList", @"lyricsLanguageDescription", @"restricted", @"updatedTime", @"explicit", @"lyricsCopyright", @"htmlTrackingUrl", @"lyricsLanguage", @"scriptTrackingUrl", @"verified", @"lyricsBody", @"lyricsId", @"writerList", @"canEdit", @"actionRequested", @"locked"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGSnippet.m: -------------------------------------------------------------------------------- 1 | #import "SWGSnippet.h" 2 | 3 | @implementation SWGSnippet 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"html_tracking_url": @"htmlTrackingUrl", @"instrumental": @"instrumental", @"restricted": @"restricted", @"updated_time": @"updatedTime", @"snippet_body": @"snippetBody", @"pixel_tracking_url": @"pixelTrackingUrl", @"snippet_id": @"snippetId", @"script_tracking_url": @"scriptTrackingUrl", @"snippet_language": @"snippetLanguage" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"htmlTrackingUrl", @"instrumental", @"restricted", @"updatedTime", @"snippetBody", @"pixelTrackingUrl", @"snippetId", @"scriptTrackingUrl", @"snippetLanguage"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGSubtitle.m: -------------------------------------------------------------------------------- 1 | #import "SWGSubtitle.h" 2 | 3 | @implementation SWGSubtitle 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"subtitle_body": @"subtitleBody", @"publisher_list": @"publisherList", @"subtitle_language": @"subtitleLanguage", @"subtitle_language_description": @"subtitleLanguageDescription", @"subtitle_id": @"subtitleId", @"pixel_tracking_url": @"pixelTrackingUrl", @"html_tracking_url": @"htmlTrackingUrl", @"restricted": @"restricted", @"lyrics_copyright": @"lyricsCopyright", @"script_tracking_url": @"scriptTrackingUrl", @"subtitle_length": @"subtitleLength", @"updated_time": @"updatedTime", @"writer_list": @"writerList" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"subtitleBody", @"publisherList", @"subtitleLanguage", @"subtitleLanguageDescription", @"subtitleId", @"pixelTrackingUrl", @"htmlTrackingUrl", @"restricted", @"lyricsCopyright", @"scriptTrackingUrl", @"subtitleLength", @"updatedTime", @"writerList"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGTrack.m: -------------------------------------------------------------------------------- 1 | #import "SWGTrack.h" 2 | 3 | @implementation SWGTrack 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"instrumental": @"instrumental", @"album_coverart_350x350": @"albumCoverart350x350", @"first_release_date": @"firstReleaseDate", @"track_isrc": @"trackIsrc", @"explicit": @"explicit", @"track_edit_url": @"trackEditUrl", @"num_favourite": @"numFavourite", @"album_coverart_500x500": @"albumCoverart500x500", @"album_name": @"albumName", @"track_rating": @"trackRating", @"track_share_url": @"trackShareUrl", @"track_soundcloud_id": @"trackSoundcloudId", @"artist_name": @"artistName", @"album_coverart_800x800": @"albumCoverart800x800", @"album_coverart_100x100": @"albumCoverart100x100", @"track_name_translation_list": @"trackNameTranslationList", @"track_name": @"trackName", @"restricted": @"restricted", @"has_subtitles": @"hasSubtitles", @"updated_time": @"updatedTime", @"subtitle_id": @"subtitleId", @"lyrics_id": @"lyricsId", @"track_spotify_id": @"trackSpotifyId", @"has_lyrics": @"hasLyrics", @"artist_id": @"artistId", @"album_id": @"albumId", @"artist_mbid": @"artistMbid", @"secondary_genres": @"secondaryGenres", @"commontrack_vanity_id": @"commontrackVanityId", @"track_id": @"trackId", @"track_xboxmusic_id": @"trackXboxmusicId", @"primary_genres": @"primaryGenres", @"track_length": @"trackLength", @"track_mbid": @"trackMbid", @"commontrack_id": @"commontrackId" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"instrumental", @"albumCoverart350x350", @"firstReleaseDate", @"trackIsrc", @"explicit", @"trackEditUrl", @"numFavourite", @"albumCoverart500x500", @"albumName", @"trackRating", @"trackShareUrl", @"trackSoundcloudId", @"artistName", @"albumCoverart800x800", @"albumCoverart100x100", @"trackNameTranslationList", @"trackName", @"restricted", @"hasSubtitles", @"updatedTime", @"subtitleId", @"lyricsId", @"trackSpotifyId", @"hasLyrics", @"artistId", @"albumId", @"artistMbid", @"secondaryGenres", @"commontrackVanityId", @"trackId", @"trackXboxmusicId", @"primaryGenres", @"trackLength", @"trackMbid", @"commontrackId"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGTrackPrimaryGenres.m: -------------------------------------------------------------------------------- 1 | #import "SWGTrackPrimaryGenres.h" 2 | 3 | @implementation SWGTrackPrimaryGenres 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"music_genre_list": @"musicGenreList" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"musicGenreList"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGTrackPrimaryGenresMusicGenre.m: -------------------------------------------------------------------------------- 1 | #import "SWGTrackPrimaryGenresMusicGenre.h" 2 | 3 | @implementation SWGTrackPrimaryGenresMusicGenre 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"music_genre_vanity": @"musicGenreVanity", @"music_genre_name_extended": @"musicGenreNameExtended", @"music_genre_name": @"musicGenreName", @"music_genre_parent_id": @"musicGenreParentId", @"music_genre_id": @"musicGenreId" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"musicGenreVanity", @"musicGenreNameExtended", @"musicGenreName", @"musicGenreParentId", @"musicGenreId"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGTrackPrimaryGenresMusicGenreList.m: -------------------------------------------------------------------------------- 1 | #import "SWGTrackPrimaryGenresMusicGenreList.h" 2 | 3 | @implementation SWGTrackPrimaryGenresMusicGenreList 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"music_genre": @"musicGenre" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"musicGenre"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGTrackSecondaryGenres.m: -------------------------------------------------------------------------------- 1 | #import "SWGTrackSecondaryGenres.h" 2 | 3 | @implementation SWGTrackSecondaryGenres 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"music_genre_list": @"musicGenreList" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"musicGenreList"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGTrackSecondaryGenresMusicGenre.m: -------------------------------------------------------------------------------- 1 | #import "SWGTrackSecondaryGenresMusicGenre.h" 2 | 3 | @implementation SWGTrackSecondaryGenresMusicGenre 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"music_genre_vanity": @"musicGenreVanity", @"music_genre_name_extended": @"musicGenreNameExtended", @"music_genre_parent_id": @"musicGenreParentId", @"music_genre_name": @"musicGenreName", @"music_genre_id": @"musicGenreId" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"musicGenreVanity", @"musicGenreNameExtended", @"musicGenreParentId", @"musicGenreName", @"musicGenreId"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Musixmatch/SwaggerClient/Model/SWGTrackSecondaryGenresMusicGenreList.m: -------------------------------------------------------------------------------- 1 | #import "SWGTrackSecondaryGenresMusicGenreList.h" 2 | 3 | @implementation SWGTrackSecondaryGenresMusicGenreList 4 | 5 | - (instancetype)init { 6 | self = [super init]; 7 | if (self) { 8 | // initialize property's default value, if any 9 | 10 | } 11 | return self; 12 | } 13 | 14 | 15 | /** 16 | * Maps json key to property name. 17 | * This method is used by `JSONModel`. 18 | */ 19 | + (JSONKeyMapper *)keyMapper { 20 | return [[JSONKeyMapper alloc] initWithDictionary:@{ @"music_genre": @"musicGenre" }]; 21 | } 22 | 23 | /** 24 | * Indicates whether the property with the given name is optional. 25 | * If `propertyName` is optional, then return `YES`, otherwise return `NO`. 26 | * This method is used by `JSONModel`. 27 | */ 28 | + (BOOL)propertyIsOptional:(NSString *)propertyName { 29 | 30 | NSArray *optionalProperties = @[@"musicGenre"]; 31 | return [optionalProperties containsObject:propertyName]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Podfile: -------------------------------------------------------------------------------- 1 | # Uncomment this line to define a global platform for your project 2 | # platform :ios, '9.0' 3 | 4 | target 'SwaggerClientApp' do 5 | # Uncomment this line if you're using Swift or would like to use dynamic frameworks 6 | # use_frameworks! 7 | 8 | # Pods for SwaggerClientiOS 9 | pod 'SwaggerClient', :path => 'Musixmatch/' 10 | end 11 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - AFNetworking (3.1.0): 3 | - AFNetworking/NSURLSession (= 3.1.0) 4 | - AFNetworking/Reachability (= 3.1.0) 5 | - AFNetworking/Security (= 3.1.0) 6 | - AFNetworking/Serialization (= 3.1.0) 7 | - AFNetworking/UIKit (= 3.1.0) 8 | - AFNetworking/NSURLSession (3.1.0): 9 | - AFNetworking/Reachability 10 | - AFNetworking/Security 11 | - AFNetworking/Serialization 12 | - AFNetworking/Reachability (3.1.0) 13 | - AFNetworking/Security (3.1.0) 14 | - AFNetworking/Serialization (3.1.0) 15 | - AFNetworking/UIKit (3.1.0): 16 | - AFNetworking/NSURLSession 17 | - ISO8601 (0.6.0) 18 | - JSONModel (1.5.1) 19 | - SwaggerClient (1.0.0): 20 | - AFNetworking (~> 3) 21 | - ISO8601 (~> 0.5) 22 | - JSONModel (~> 1.2) 23 | 24 | DEPENDENCIES: 25 | - SwaggerClient (from `Musixmatch/`) 26 | 27 | EXTERNAL SOURCES: 28 | SwaggerClient: 29 | :path: Musixmatch/ 30 | 31 | SPEC CHECKSUMS: 32 | AFNetworking: 5e0e199f73d8626b11e79750991f5d173d1f8b67 33 | ISO8601: d3ea3ba9b752820cf92c6b47a9ee327e9f0e13fc 34 | JSONModel: fd2553dc9e6608a3f35bfc956a14be35395d3852 35 | SwaggerClient: e30ce866792da2075981056728cdc7794bd8f644 36 | 37 | PODFILE CHECKSUM: 50d44c56af541af5c1a3644e4a61aa26c3b0f8b2 38 | 39 | COCOAPODS: 1.0.1 40 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/SwaggerClientApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/SwaggerClientApp.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/SwaggerClientApp/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // SwaggerClientApp 4 | // 5 | // Created by Loreto Parisi on 19/09/16. 6 | // Copyright © 2016 Musixmatch. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/SwaggerClientApp/AppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.m 3 | // SwaggerClientApp 4 | // 5 | // Created by Loreto Parisi on 19/09/16. 6 | // Copyright © 2016 Musixmatch. All rights reserved. 7 | // 8 | 9 | #import "AppDelegate.h" 10 | 11 | @interface AppDelegate () 12 | 13 | @end 14 | 15 | @implementation AppDelegate 16 | 17 | 18 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 19 | // Override point for customization after application launch. 20 | return YES; 21 | } 22 | 23 | 24 | - (void)applicationWillResignActive:(UIApplication *)application { 25 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 26 | // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. 27 | } 28 | 29 | 30 | - (void)applicationDidEnterBackground:(UIApplication *)application { 31 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 32 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 33 | } 34 | 35 | 36 | - (void)applicationWillEnterForeground:(UIApplication *)application { 37 | // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. 38 | } 39 | 40 | 41 | - (void)applicationDidBecomeActive:(UIApplication *)application { 42 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 43 | } 44 | 45 | 46 | - (void)applicationWillTerminate:(UIApplication *)application { 47 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 48 | } 49 | 50 | 51 | @end 52 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/SwaggerClientApp/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "29x29", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "40x40", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "40x40", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "60x60", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "60x60", 31 | "scale" : "3x" 32 | } 33 | ], 34 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/SwaggerClientApp/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/SwaggerClientApp/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/SwaggerClientApp/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | LSRequiresIPhoneOS 22 | 23 | UILaunchStoryboardName 24 | LaunchScreen 25 | UIMainStoryboardFile 26 | Main 27 | UIRequiredDeviceCapabilities 28 | 29 | armv7 30 | 31 | UISupportedInterfaceOrientations 32 | 33 | UIInterfaceOrientationPortrait 34 | UIInterfaceOrientationLandscapeLeft 35 | UIInterfaceOrientationLandscapeRight 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/SwaggerClientApp/SwaggerClient.h: -------------------------------------------------------------------------------- 1 | // 2 | // SwaggerClient.h 3 | // SwaggerClientApp 4 | // 5 | // Created by Loreto Parisi on 19/09/16. 6 | // Copyright © 2016 Musixmatch. All rights reserved. 7 | // 8 | 9 | #ifndef SwaggerClient_h 10 | #define SwaggerClient_h 11 | 12 | #import 13 | #import 14 | // load models 15 | #import 16 | #import 17 | #import 18 | #import 19 | #import 20 | #import 21 | #import 22 | #import 23 | #import 24 | #import 25 | #import 26 | #import 27 | #import 28 | #import 29 | #import 30 | #import 31 | #import 32 | #import 33 | #import 34 | #import 35 | #import 36 | #import 37 | #import 38 | #import 39 | #import 40 | #import 41 | #import 42 | #import 43 | #import 44 | #import 45 | #import 46 | #import 47 | #import 48 | #import 49 | #import 50 | #import 51 | #import 52 | #import 53 | #import 54 | #import 55 | #import 56 | #import 57 | #import 58 | #import 59 | #import 60 | #import 61 | #import 62 | #import 63 | #import 64 | #import 65 | #import 66 | #import 67 | #import 68 | #import 69 | #import 70 | #import 71 | #import 72 | #import 73 | #import 74 | // load API classes for accessing endpoints 75 | #import 76 | #import 77 | #import 78 | #import 79 | #import 80 | #import 81 | 82 | 83 | #endif /* SwaggerClient_h */ 84 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/SwaggerClientApp/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // SwaggerClientApp 4 | // 5 | // Created by Loreto Parisi on 19/09/16. 6 | // Copyright © 2016 Musixmatch. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/SwaggerClientApp/ViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.m 3 | // SwaggerClientApp 4 | // 5 | // Created by Loreto Parisi on 19/09/16. 6 | // Copyright © 2016 Musixmatch. All rights reserved. 7 | // 8 | 9 | #import "ViewController.h" 10 | #import "SwaggerClient.h" 11 | 12 | @interface ViewController () 13 | 14 | @end 15 | 16 | @implementation ViewController 17 | 18 | - (void)viewDidLoad { 19 | [super viewDidLoad]; 20 | // Do any additional setup after loading the view, typically from a nib. 21 | 22 | 23 | SWGConfiguration *apiConfig = [SWGConfiguration sharedConfig]; 24 | 25 | // Configure API key authorization: (authentication scheme: key) 26 | [apiConfig setApiKey:@"YOUR_API_KEY" forApiKeyIdentifier:@"apikey"]; 27 | // Uncomment below to setup prefix (e.g. Bearer) for API key, if needed 28 | //[apiConfig setApiKeyPrefix:@"Bearer" forApiKeyIdentifier:@"apikey"]; 29 | 30 | 31 | NSString *albumId = @"14250417"; // The musiXmatch album id 32 | NSString *format = @"json"; // output format: json, jsonp, xml. (optional) (default to json) 33 | 34 | SWGAlbumApi *apiInstance = [[SWGAlbumApi alloc] init]; 35 | 36 | // 37 | [apiInstance albumGetGetWithAlbumId:albumId 38 | format:format 39 | callback:nil 40 | completionHandler: ^(SWGInlineResponse200* output, NSError* error) { 41 | if (output) { 42 | NSLog(@"%@", output); 43 | } 44 | if (error) { 45 | NSLog(@"Error: %@", error); 46 | } 47 | }]; 48 | } 49 | 50 | 51 | - (void)didReceiveMemoryWarning { 52 | [super didReceiveMemoryWarning]; 53 | // Dispose of any resources that can be recreated. 54 | } 55 | 56 | 57 | @end 58 | -------------------------------------------------------------------------------- /client/iOS/SwaggerClientApp/SwaggerClientApp/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // SwaggerClientApp 4 | // 5 | // Created by Loreto Parisi on 19/09/16. 6 | // Copyright © 2016 Musixmatch. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /client/javascript/README.md: -------------------------------------------------------------------------------- 1 | ### Musixmatch Swagger JavaScript Client 2 | Example of a auto generated swagger javascript client for Musixmatch API Swagger definition. 3 | 4 | #### How to use the Swagger Client api 5 | You have to browsify the client to be used in the browser: 6 | 7 | ```shell 8 | cd ./build/javascript-client/src 9 | browserify --s MusixmatchApi index.js -o ../../../client/javascript/bundle.js 10 | ``` 11 | 12 | The option `--s` will export the module `MusixmatchApi` in the browser document window. 13 | 14 | Then just import the bundle in the `html` page: 15 | 16 | ```html 17 | 18 | ``` 19 | 20 | and use the client as you would do in javascript 21 | 22 | ```javascript 23 | var defaultClient = MusixmatchApi.ApiClient.instance; 24 | var key = defaultClient.authentications['key']; 25 | key.apiKey = "MY_API_KEY"; // {String} 26 | 27 | var albumId= 14250417; // {String} 28 | var opts = { 29 | 'format': "jsonp", // {String} output format: json, jsonp, xml. 30 | 'callback': "callback" // {String} jsonp callback 31 | }; 32 | 33 | var callback = function(error, data, response) { 34 | if (error) { 35 | console.error(error); 36 | } else { 37 | console.log('API called successfully. Returned data:' ,JSON.stringify(data,null,2)); 38 | } 39 | }; 40 | (new MusixmatchApi.AlbumApi()).albumGetGet(albumId, opts, (error, data, response) => { 41 | callback(error, data, response, "albumGetGet"); 42 | }); 43 | ``` 44 | 45 | #### Notes 46 | This client uses `jsonp` that it is not enabled by defaults in Swagger api, so it has a modified version of the client code that add support for `jsonp`. 47 | 48 | #### The client page 49 | This html client uses a `json` to `html` prettify in order to visualize the api response directly in the html page: 50 | 51 | ```javascript 52 | var t = $('
').inneText=method; 53 | var el=$('
'); 54 | $('#console').append(t).append(el); 55 | var node = new PrettyJSON.view.Node({ 56 | el:el, 57 | data:data 58 | }); 59 | ``` 60 | 61 | #### How to run the JavaScript API Playground 62 | To run the API Playground test, you can use a local server doing 63 | 64 | ```shell 65 | $ cd client/javascript 66 | $ python -m SimpleHTTPServer 8181 67 | ``` 68 | 69 | and then point you browser to [http://localhost:8181](http://localhost:8181). 70 | 71 | The browser will execute the client and SDK code, to test the api calls, as showed in the screenshot. 72 | 73 | 74 | ![JavaScript API Playground](https://cloud.githubusercontent.com/assets/163333/18639555/aa8d183c-7e94-11e6-8a2b-3eb680f57e7b.jpg) 75 | 76 | You have to first set the Api Key. Please request one [here](https://developer.musixmatch.com/mmplans). 77 | 78 | 79 | ![Set Api Key](https://cloud.githubusercontent.com/assets/163333/18639539/9ab139fc-7e94-11e6-9895-51ba1590cb37.jpg) 80 | 81 | You then click `Run` button. The api will be executed and the results will be shown as json in the Console tab. 82 | Here you can press `Expand All` to expand all items of the json response, or `Collapse All` to collapse all expanded nodes. 83 | 84 | 85 | ![Api Console](https://cloud.githubusercontent.com/assets/163333/18639570/b3cea17c-7e94-11e6-8fc2-cf29d0389e2f.jpg) 86 | -------------------------------------------------------------------------------- /client/javascript/css/main.css: -------------------------------------------------------------------------------- 1 | ul { 2 | list-style: none; 3 | } 4 | 5 | /** Bootstrap */ 6 | @media (max-width:767px) { 7 | .custom-navbar .navbar-right { 8 | float: left; 9 | padding-left: 10px; 10 | margin-top: -7.5px; 11 | } 12 | .custom-navbar .nav.navbar-nav.navbar-right li { 13 | float: left; 14 | } 15 | .custom-navbar .nav.navbar-nav.navbar-right li > a { 16 | padding:8px 5px; 17 | } 18 | .custom-navbar .navbar-toggle { 19 | float: left; 20 | margin-right: 0 21 | } 22 | .custom-navbar .navbar-header { 23 | float: left; 24 | width: auto!important; 25 | } 26 | .custom-navbar .navbar-collapse { 27 | clear: both; 28 | float: none; 29 | } 30 | ul > li > a { 31 | float: none; 32 | } 33 | .thumbnail div.caption { 34 | font-size:9px; 35 | } 36 | .thumbnail div.caption h4 { 37 | font-size: 12px; 38 | } 39 | .thumbnail-device { 40 | max-width: 300px; 41 | height: 250px; 42 | } 43 | .thumbnail-device img { 44 | max-height: 100px; 45 | } 46 | .col-xs-4 { 47 | width: 50%; 48 | } 49 | .tag_list { 50 | font-size:11px; 51 | } 52 | } 53 | .navbar { 54 | margin-bottom: 0; 55 | } 56 | .custom-navbar .navbar-right { 57 | float: right; 58 | margin-right: 0; 59 | padding-left: 10px; 60 | } 61 | .pull-right { 62 | float:right; 63 | } 64 | .container-fluid { 65 | margin: 0 auto; 66 | width: 100%; 67 | padding : 0 auto; 68 | } 69 | .nav li { 70 | padding-top:9px; 71 | } 72 | .navbar-brand img { 73 | width: 40px; 74 | height: 40px; 75 | border-radius: 10px; 76 | } 77 | .navbar-brand .invert img { 78 | -webkit-filter: invert(1); 79 | filter:progid:DXImageTransform.Microsoft.BasicImage(invert='1'); 80 | filter: invert(1); 81 | } 82 | .nav-tabs-bordered { 83 | margin-bottom: 0; 84 | } 85 | .input-group { 86 | display: block; 87 | } 88 | .panel-right div.row-fluid { 89 | margin:20px 0 20px 0; 90 | } 91 | .tab-pane-bordered { 92 | border-left: 1px solid #ddd; 93 | border-right: 1px solid #ddd; 94 | border-bottom: 1px solid #ddd; 95 | border-radius: 0px 0px 5px 5px; 96 | padding: 10px; 97 | } -------------------------------------------------------------------------------- /client/javascript/css/pretty-json.css: -------------------------------------------------------------------------------- 1 | /* common */ 2 | .mark-water{ 3 | color:#bbb; 4 | } 5 | /* eof common */ 6 | 7 | /* node */ 8 | .node-content-wrapper{ 9 | font-family: 'Quicksand', sans-serif; 10 | background-color:#fff; 11 | } 12 | .node-content-wrapper ul{ 13 | border-left:1px dotted #ccc; 14 | list-style:none; 15 | padding-left:25px; 16 | margin:0px; 17 | } 18 | .node-content-wrapper ul li{ 19 | list-style:none; 20 | border-bottom:0; 21 | padding-bottom:0 22 | } 23 | .node-hgl-path{ 24 | background-color:#fefbdf; 25 | } 26 | .node-bracket{ 27 | display:inline-block; 28 | cursor:pointer; 29 | } 30 | .node-bracket:hover{ 31 | color:#999; 32 | } 33 | /* eof node */ 34 | 35 | /* leaf */ 36 | .leaft-container{ 37 | width:100%; 38 | max-width:300px; 39 | height:100%; 40 | } 41 | 42 | .title{ color:#ccc;} 43 | .string{ color:#080;} 44 | .number{ color:#ccaa00;} 45 | .boolean{ color:#1979d3;} 46 | .date{ color:#aa6655;} 47 | .null{ color:#ff5050;} 48 | /* eof leaf */ 49 | ======= 50 | /* common */ 51 | .mark-water{ 52 | color:#bbb; 53 | } 54 | /* eof common */ 55 | 56 | /* node */ 57 | .node-content-wrapper{ 58 | font-family: 'Quicksand', sans-serif; 59 | background-color:#fff; 60 | } 61 | .node-content-wrapper ul{ 62 | border-left:1px dotted #ccc; 63 | list-style:none; 64 | padding-left:25px; 65 | margin:0px; 66 | } 67 | .node-content-wrapper ul li{ 68 | list-style:none; 69 | border-bottom:0; 70 | padding-bottom:0 71 | } 72 | .node-hgl-path{ 73 | background-color:#fefbdf; 74 | } 75 | .node-bracket{ 76 | font-weight:bold; 77 | display:inline-block; 78 | cursor:pointer; 79 | } 80 | .node-bracket:hover{ 81 | color:#999; 82 | } 83 | /* eof node */ 84 | 85 | /* leaf */ 86 | .leaft-container{ 87 | width:100%; 88 | max-width:300px; 89 | height:100%; 90 | } 91 | 92 | .title{ color:#ccc;} 93 | .string{ color:#080;} 94 | .number{ color:#ccaa00;} 95 | .boolean{ color:#1979d3;} 96 | .date{ color:#aa6655;} 97 | .null{ color:#ff5050;} 98 | /* eof leaf */ 99 | -------------------------------------------------------------------------------- /client/javascript/js/pretty-json-min.js: -------------------------------------------------------------------------------- 1 | /* 2 | License here, 3 | I dont think too much about licence 4 | just feel free to do anything you want... :-) 5 | */ 6 | var PrettyJSON={view:{},tpl:{}};PrettyJSON.util={isObject:function(v){return Object.prototype.toString.call(v)==='[object Object]';},pad:function(str,length){str=String(str);while(str.length'+''+''+'
    '+''+''+'';PrettyJSON.tpl.Leaf=''+''+' <%-data%><%= coma %>'+'';PrettyJSON.view.Node=Backbone.View.extend({tagName:'span',data:null,level:1,path:'',type:'',size:0,isLast:true,rendered:false,events:{'click .node-bracket':'collapse','mouseover .node-container':'mouseover','mouseout .node-container':'mouseout'},initialize:function(opt){this.options=opt;this.data=this.options.data;this.level=this.options.level||this.level;this.path=this.options.path;this.isLast=_.isUndefined(this.options.isLast)?this.isLast:this.options.isLast;this.dateFormat=this.options.dateFormat;var m=this.getMeta();this.type=m.type;this.size=m.size;this.childs=[];this.render();if(this.level==1) 8 | this.show();},getMeta:function(){var val={size:_.size(this.data),type:_.isArray(this.data)?'array':'object',};return val;},elements:function(){this.els={container:$(this.el).find('.node-container'),contentWrapper:$(this.el).find('.node-content-wrapper'),top:$(this.el).find('.node-top'),ul:$(this.el).find('.node-body'),down:$(this.el).find('.node-down')};},render:function(){this.tpl=_.template(PrettyJSON.tpl.Node);$(this.el).html(this.tpl);this.elements();var b=this.getBrackets();this.els.top.html(b.top);this.els.down.html(b.bottom);this.hide();return this;},renderChilds:function(){var count=1;_.each(this.data,function(val,key){var isLast=(count==this.size);count=count+1;var path=(this.type=='array')?this.path+'['+key+']':this.path+'.'+key;var opt={key:key,data:val,parent:this,path:path,level:this.level+1,dateFormat:this.dateFormat,isLast:isLast};var child=(PrettyJSON.util.isObject(val)||_.isArray(val))?new PrettyJSON.view.Node(opt):new PrettyJSON.view.Leaf(opt);child.on('mouseover',function(e,path){this.trigger("mouseover",e,path);},this);child.on('mouseout',function(e){this.trigger("mouseout",e);},this);var li=$('
  • ');var colom=' : ';var left=$('');var right=$('').append(child.el);(this.type=='array')?left.html(''):left.html(key+colom);left.append(right);li.append(left);this.els.ul.append(li);child.parent=this;this.childs.push(child);},this);},isVisible:function(){return this.els.contentWrapper.is(":visible");},collapse:function(e){e.stopPropagation();this.isVisible()?this.hide():this.show();this.trigger("collapse",e);},show:function(){if(!this.rendered){this.renderChilds();this.rendered=true;} 9 | this.els.top.html(this.getBrackets().top);this.els.contentWrapper.show();this.els.down.show();},hide:function(){var b=this.getBrackets();this.els.top.html(b.close);this.els.contentWrapper.hide();this.els.down.hide();},getBrackets:function(){var v={top:'{',bottom:'}',close:'{ ... }'};if(this.type=='array'){v={top:'[',bottom:']',close:'[ ... ]'};};v.bottom=(this.isLast)?v.bottom:v.bottom+',';v.close=(this.isLast)?v.close:v.close+',';return v;},mouseover:function(e){e.stopPropagation();this.trigger("mouseover",e,this.path);},mouseout:function(e){e.stopPropagation();this.trigger("mouseout",e);},expandAll:function(){_.each(this.childs,function(child){if(child instanceof PrettyJSON.view.Node){child.show();child.expandAll();}},this);this.show();},collapseAll:function(){_.each(this.childs,function(child){if(child instanceof PrettyJSON.view.Node){child.hide();child.collapseAll();}},this);if(this.level!=1) 10 | this.hide();}});PrettyJSON.view.Leaf=Backbone.View.extend({tagName:'span',data:null,level:0,path:'',type:'string',isLast:true,events:{"mouseover .leaf-container":"mouseover","mouseout .leaf-container":"mouseout"},initialize:function(opt){this.options=opt;this.data=this.options.data;this.level=this.options.level;this.path=this.options.path;this.type=this.getType();this.dateFormat=this.options.dateFormat;this.isLast=_.isUndefined(this.options.isLast)?this.isLast:this.options.isLast;this.render();},getType:function(){var m='string';var d=this.data;if(_.isNumber(d))m='number';else if(_.isBoolean(d))m='boolean';else if(_.isDate(d))m='date';else if(_.isNull(d))m='null' 11 | return m;},getState:function(){var coma=this.isLast?'':',';var state={data:this.data,level:this.level,path:this.path,type:this.type,coma:coma};return state;},render:function(){var state=this.getState();if(state.type=='date'&&this.dateFormat){state.data=PrettyJSON.util.dateFormat(this.data,this.dateFormat);} 12 | if(state.type=='null'){state.data='null';} 13 | if(state.type=='string'){state.data=(state.data=='')?'""':'"'+state.data+'"';} 14 | this.tpl=_.template(PrettyJSON.tpl.Leaf);$(this.el).html(this.tpl(state));return this;},mouseover:function(e){e.stopPropagation();var path=this.path+' : '+this.data+'';this.trigger("mouseover",e,path);},mouseout:function(e){e.stopPropagation();this.trigger("mouseout",e);}}); -------------------------------------------------------------------------------- /client/node/musixmatch.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Musixmatch Node Client 3 | * @uses Swagger generated JavaScript client 4 | * @author Loreto Parisi (loreto at musixmatch dot com) 5 | * @see https://developer.musixmatch.com/documentation 6 | * @copy 2016 Musixmatch Spa 7 | */ 8 | (function() { 9 | 10 | // Command Line Arguments 11 | var arguments = process.argv.slice(2); 12 | 13 | var MusixmatchApi = require('../../build/javascript-client/src/index'); 14 | 15 | // uncomment this to publish from nom 16 | //var MusixmatchApi = require('musixmatch_api'); 17 | var defaultClient = MusixmatchApi.ApiClient.instance; 18 | var key = defaultClient.authentications['key']; 19 | 20 | if ( typeof(arguments[0]) == 'undefined' ) { 21 | 22 | console.warn("Usage:\nnode musixmatch.js YOUR_API_KEY"); 23 | process.exit(1); 24 | 25 | } 26 | 27 | key.apiKey = arguments[0]; // {String} 28 | 29 | var callback = (error, data, response, method) => { 30 | if (error) { 31 | console.error(error); 32 | } else if(response.text) { 33 | data = JSON.parse(response.text); 34 | console.log('API %s successfully. Returned data:\n%s' ,method,JSON.stringify(data,null,2)); 35 | } 36 | else { 37 | throw new Error('bad response') 38 | } 39 | } 40 | var opt; 41 | var trackId, albumId, artistId; 42 | 43 | //// tracks API //// 44 | opts = { 45 | format: "json", // {String} output format: json, jsonp, xml. 46 | page: 1, // {number} 47 | pageSize: 5, // {number} 48 | country: 'us', // {String} 49 | fHasLyrics: 1 // {number} 50 | }; 51 | (new MusixmatchApi.TrackApi()).chartTracksGetGet(opts, (error, data, response) => { 52 | callback(error, data, response, "chartTracksGetGet") 53 | }) 54 | 55 | opts = { 56 | format: "json", // {String} output format: json, jsonp, xml. 57 | qArtist: "coldplay", // {String} 58 | qTrack: "viva la vida", // {String} 59 | fHasLyrics: 1, // {number} 60 | fHasSubtitle: 1 // {number} 61 | }; 62 | (new MusixmatchApi.TrackApi()).matcherTrackGetGet(opts, (error, data, response) => { 63 | callback(error, data, response, "matcherTrackGetGet"); 64 | }); 65 | 66 | trackId= 15445219; // {number} 67 | (new MusixmatchApi.TrackApi()).trackGetGet(trackId, opts, (error, data, response) => { 68 | callback(error, data, response, "trackGetGet"); 69 | } ); 70 | 71 | opts = { 72 | format: "json", // {String} output format: json, jsonp, xml. 73 | qArtist: "coldplay", // {String} 74 | qTrack: "viva la vida", // {String} 75 | //qLyrics : "", // {String} 76 | //fArtistId: 1039, // {number} 77 | //fMusicGenreId: 33, // {number} 78 | sArtistRating: 'desc', // {desc|asc} 79 | sTrackRating: 'desc', // {desc|asc} 80 | fHasLyrics: 1, // {number} 81 | fLyricsLanguage : 'en', // {String} 82 | }; 83 | (new MusixmatchApi.TrackApi()).trackSearchGet(opts, (error, data, response) => { 84 | callback(error, data, response, "trackSearchGet"); 85 | } ); 86 | 87 | //// lyrics API //// 88 | opts = { 89 | format: "json", // {String} output format: json, jsonp, xml. 90 | qArtist: "coldplay", // {String} 91 | qTrack: "viva la vida" // {String} 92 | }; 93 | (new MusixmatchApi.LyricsApi()).matcherLyricsGetGet(opts, (error, data, response) => { 94 | callback(error, data, response, "matcherLyricsGetGet"); 95 | }); 96 | 97 | trackId= 15445219; // {number} 98 | (new MusixmatchApi.LyricsApi()).trackLyricsGetGet(trackId, opts, (error, data, response) => { 99 | callback(error, data, response, "trackLyricsGetGet"); 100 | }); 101 | 102 | //// snippet API //// 103 | trackId= 16860631; // {number} 104 | (new MusixmatchApi.SnippetApi()).trackSnippetGetGet(trackId, opts, (error, data, response) => { 105 | callback(error, data, response, "trackSnippetGetGet"); 106 | }); 107 | 108 | //// subtitles API //// 109 | trackId= 16860631; // {number} 110 | (new MusixmatchApi.SubtitleApi()).trackSubtitleGetGet(trackId, opts, (error, data, response) => { 111 | callback(error, data, response, "trackSubtitleGetGet"); 112 | }); 113 | 114 | opts = { 115 | format: "json", // {String} output format: json, jsonp, xml. 116 | qArtist: "coldplay", // {String} 117 | qTrack: "viva la vida", // {String} 118 | fSubtitleLength: 199, // {number} 119 | fSubtitleLengthMaxDeviation: 1 // {number} 120 | }; 121 | (new MusixmatchApi.SubtitleApi()).matcherSubtitleGetGet(opts, (error, data, response) => { 122 | callback(error, data, response, "matcherSubtitleGetGet"); 123 | }); 124 | 125 | //// album api //// 126 | albumId= 14250417; // {String} 127 | (new MusixmatchApi.AlbumApi()).albumGetGet(albumId, opts, (error, data, response) => { 128 | callback(error, data, response, "albumGetGet"); 129 | }); 130 | 131 | opts = { 132 | format: "json", // {String} output format: json, jsonp, xml. 133 | page: 1, // {number} 134 | pageSize: 5, // {number} 135 | fHasLyrics: 1 // {number} 136 | }; 137 | (new MusixmatchApi.TrackApi()).albumTracksGetGet(albumId, opts, (error, data, response) => { 138 | callback(error, data, response, "albumTracksGetGet"); 139 | }); 140 | 141 | ///// artist API //// 142 | artistId= 1039; // {String} 143 | opts = { 144 | format: "json", // {String} output format: json, jsonp, xml. 145 | page: 1, // {number} 146 | pageSize: 5, // {number} 147 | sReleaseDate: "desc", // {asc|desc} 148 | gAlbumName: 1 // {number} 149 | }; 150 | (new MusixmatchApi.AlbumApi()).artistAlbumsGetGet(artistId, opts, (error, data, response) => { 151 | callback(error, data, response, "artistAlbumsGetGet"); 152 | }); 153 | 154 | artistId= 1039; // {String} 155 | (new MusixmatchApi.ArtistApi()).artistGetGet(artistId, opts, (error, data, response) => { 156 | callback(error, data, response, "artistGetGet"); 157 | }); 158 | 159 | artistId= 1039; // {String} 160 | opts = { 161 | format: "json", // {String} output format: json, jsonp, xml. 162 | age: 1, // {number} 163 | pageSize: 5 // {number} 164 | }; 165 | (new MusixmatchApi.ArtistApi()).artistRelatedGetGet(artistId, opts, (error, data, response) => { 166 | callback(error, data, response, "artistRelatedGetGet"); 167 | }); 168 | 169 | opts = { 170 | format: "json", // {String} output format: json, jsonp, xml. 171 | qArtist: "coldplay", // {String} 172 | page: 1, // {number} 173 | pageSize: 5 // {number} 174 | }; 175 | (new MusixmatchApi.ArtistApi()).artistSearchGet(opts, (error, data, response) => { 176 | callback(error, data, response, "artistSearchGet"); 177 | }); 178 | 179 | opts = { 180 | format: "json", // {String} output format: json, jsonp, xml. 181 | country: "jp", // {String} 182 | page: 1, // {number} 183 | pageSize: 5 // {number} 184 | }; 185 | (new MusixmatchApi.ArtistApi()).chartArtistsGetGet(opts, (error, data, response) => { 186 | callback(error, data, response, "chartArtistsGetGet"); 187 | }); 188 | 189 | }).call(this); 190 | -------------------------------------------------------------------------------- /client/php/musixmatch.php: -------------------------------------------------------------------------------- 1 | setApiKey('apikey', $argv[1]); 18 | $api_instance = new Swagger\Client\Api\AlbumApi(); 19 | $album_id = "14250417"; // string | The musiXmatch album id 20 | $format = "json"; // string | output format: json, jsonp, xml 21 | 22 | try { 23 | $result = $api_instance->albumGetGet($album_id, $format); 24 | print_r($result); 25 | } catch (Exception $e) { 26 | echo 'Exception when calling AlbumApi->albumGetGet: ', $e->getMessage(), PHP_EOL; 27 | } 28 | 29 | ?> 30 | -------------------------------------------------------------------------------- /client/python/musixmatch.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | # 4 | # Musixmatch Python API client 5 | # @author Loreto Parisi (loreto at musixmatch dot com) 6 | # @see https://developer.musixmatch.com/documentation 7 | # @copy 2016 Musixmatch Spa 8 | 9 | import time 10 | import sys 11 | 12 | import swagger_client 13 | from swagger_client.rest import ApiException 14 | from pprint import pprint 15 | 16 | if len(sys.argv) <= 1: 17 | print "\nUsage: python musixmatch.py YOUR_API_KEY"; 18 | exit(); 19 | 20 | # str | Account api key, to be used in every api call 21 | swagger_client.configuration.api_key['apikey'] = sys.argv[1] 22 | 23 | # create an instance of the API class 24 | api_instance = swagger_client.AlbumApi() 25 | album_id = '14250417' # str | The musiXmatch album id 26 | format = 'json' # str | output format: json, jsonp, xml. (optional) (default to json) 27 | 28 | try: 29 | # 30 | api_response = api_instance.album_get_get(album_id, format=format) 31 | pprint(api_response) 32 | except ApiException as e: 33 | print "Exception when calling DefaultApi->album_get_get: %s\n" % e -------------------------------------------------------------------------------- /client/xamarin/SwaggerClient/.gitignore: -------------------------------------------------------------------------------- 1 | #Autosave files 2 | *~ 3 | 4 | #build 5 | [Oo]bj/ 6 | [Bb]in/ 7 | packages/ 8 | TestResults/ 9 | 10 | # globs 11 | Makefile.in 12 | *.DS_Store 13 | *.sln.cache 14 | *.suo 15 | *.cache 16 | *.pidb 17 | *.userprefs 18 | *.usertasks 19 | config.log 20 | config.make 21 | config.status 22 | aclocal.m4 23 | install-sh 24 | autom4te.cache/ 25 | *.user 26 | *.tar.gz 27 | tarballs/ 28 | test-results/ 29 | Thumbs.db 30 | 31 | #Mac bundle stuff 32 | *.dmg 33 | *.app 34 | 35 | #resharper 36 | *_Resharper.* 37 | *.Resharper 38 | 39 | #dotCover 40 | *.dotCover 41 | -------------------------------------------------------------------------------- /client/xamarin/SwaggerClient/Droid/Assets/AboutAssets.txt: -------------------------------------------------------------------------------- 1 | Any raw assets you want to be deployed with your application can be placed in 2 | this directory (and child directories) and given a Build Action of "AndroidAsset". 3 | 4 | These files will be deployed with your package and will be accessible using Android's 5 | AssetManager, like this: 6 | 7 | public class ReadAsset : Activity 8 | { 9 | protected override void OnCreate (Bundle bundle) 10 | { 11 | base.OnCreate (bundle); 12 | 13 | InputStream input = Assets.Open ("my_asset.txt"); 14 | } 15 | } 16 | 17 | Additionally, some Android functions will automatically load asset files: 18 | 19 | Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf"); 20 | -------------------------------------------------------------------------------- /client/xamarin/SwaggerClient/Droid/MainActivity.cs: -------------------------------------------------------------------------------- 1 | using Android.App; 2 | using Android.Widget; 3 | using Android.OS; 4 | using Android.Util; 5 | using Newtonsoft.Json; 6 | using IO.Swagger.Api; 7 | using IO.Swagger.Client; 8 | using IO.Swagger.Model; 9 | using System.Security.Cryptography.X509Certificates; 10 | using System.Net.Security; 11 | using System; 12 | using System.Net; 13 | 14 | namespace SwaggerClient.Droid 15 | { 16 | [Activity(Label = "SwaggerClient", MainLauncher = true, Icon = "@mipmap/icon")] 17 | public class MainActivity : Activity 18 | { 19 | int count = 1; 20 | 21 | public bool MyRemoteCertificateValidationCallback(System.Object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) 22 | { 23 | bool isOk = true; 24 | // If there are errors in the certificate chain, look at each error to determine the cause. 25 | if (sslPolicyErrors != SslPolicyErrors.None) 26 | { 27 | for (int i = 0; i < chain.ChainStatus.Length; i++) 28 | { 29 | if (chain.ChainStatus[i].Status != X509ChainStatusFlags.RevocationStatusUnknown) 30 | { 31 | chain.ChainPolicy.RevocationFlag = X509RevocationFlag.EntireChain; 32 | chain.ChainPolicy.RevocationMode = X509RevocationMode.Online; 33 | chain.ChainPolicy.UrlRetrievalTimeout = new TimeSpan(0, 1, 0); 34 | chain.ChainPolicy.VerificationFlags = X509VerificationFlags.AllFlags; 35 | bool chainIsValid = chain.Build((X509Certificate2)certificate); 36 | if (!chainIsValid) 37 | { 38 | isOk = false; 39 | } 40 | } 41 | } 42 | } 43 | return isOk; 44 | } 45 | 46 | protected override void OnCreate(Bundle savedInstanceState) 47 | { 48 | base.OnCreate(savedInstanceState); 49 | 50 | System.Net.ServicePointManager.ServerCertificateValidationCallback += 51 | delegate (object sender, System.Security.Cryptography.X509Certificates.X509Certificate certificate, 52 | System.Security.Cryptography.X509Certificates.X509Chain chain, 53 | System.Net.Security.SslPolicyErrors sslPolicyErrors) 54 | { 55 | return true; // **** Always accept 56 | }; 57 | ServicePointManager.ServerCertificateValidationCallback = MyRemoteCertificateValidationCallback; 58 | 59 | 60 | // Set our view from the "main" layout resource 61 | SetContentView(Resource.Layout.Main); 62 | 63 | // Get our button from the layout resource, 64 | // and attach an event to it 65 | Button button = FindViewById 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /client/xamarin/SwaggerClient/iOS/SwaggerClient.iOS.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Debug 5 | iPhoneSimulator 6 | {40481485-3740-457E-9B1D-D425C66E1B0F} 7 | {FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 8 | Exe 9 | SwaggerClient.iOS 10 | SwaggerClient.iOS 11 | Resources 12 | 13 | 14 | true 15 | full 16 | false 17 | bin\iPhoneSimulator\Debug 18 | DEBUG;ENABLE_TEST_CLOUD; 19 | prompt 20 | 4 21 | false 22 | iPhone Developer 23 | true 24 | true 25 | true 26 | true 27 | None 28 | i386 29 | HttpClientHandler 30 | Default 31 | x86 32 | 33 | 34 | true 35 | bin\iPhone\Release 36 | prompt 37 | 4 38 | false 39 | iPhone Developer 40 | true 41 | true 42 | true 43 | Entitlements.plist 44 | SdkOnly 45 | ARMv7, ARM64 46 | HttpClientHandler 47 | Default 48 | x86 49 | 50 | 51 | true 52 | bin\iPhoneSimulator\Release 53 | prompt 54 | 4 55 | false 56 | iPhone Developer 57 | true 58 | true 59 | None 60 | i386 61 | HttpClientHandler 62 | Default 63 | x86 64 | 65 | 66 | true 67 | full 68 | false 69 | bin\iPhone\Debug 70 | DEBUG;ENABLE_TEST_CLOUD; 71 | prompt 72 | 4 73 | false 74 | iPhone Developer 75 | true 76 | true 77 | true 78 | true 79 | true 80 | true 81 | Entitlements.plist 82 | SdkOnly 83 | ARMv7, ARM64 84 | HttpClientHandler 85 | Default 86 | x86 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | ..\packages\Newtonsoft.Json.9.0.1\lib\portable-net45+wp80+win8+wpa81\Newtonsoft.Json.dll 95 | 96 | 97 | ..\packages\RestSharp.105.2.3\lib\Xamarin.iOS10\RestSharp.dll 98 | 99 | 100 | ..\packages\Xamarin.TestCloud.Agent.0.20.0\lib\Xamarin.iOS10\Calabash.dll 101 | 102 | 103 | ..\..\..\build\csharp-client\bin\IO.Swagger.dll 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | ViewController.cs 128 | 129 | 130 | 131 | 132 | -------------------------------------------------------------------------------- /client/xamarin/SwaggerClient/iOS/ViewController.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | using UIKit; 4 | 5 | using Newtonsoft.Json; 6 | using IO.Swagger.Api; 7 | using IO.Swagger.Client; 8 | using IO.Swagger.Model; 9 | 10 | namespace SwaggerClient.iOS 11 | { 12 | public partial class ViewController : UIViewController 13 | { 14 | int count = 1; 15 | 16 | public ViewController(IntPtr handle) : base(handle) 17 | { 18 | } 19 | 20 | public override void ViewDidLoad() 21 | { 22 | base.ViewDidLoad(); 23 | 24 | // Code to start the Xamarin Test Cloud Agent 25 | #if ENABLE_TEST_CLOUD 26 | Xamarin.Calabash.Start (); 27 | #endif 28 | 29 | // Perform any additional setup after loading the view, typically from a nib. 30 | Button.AccessibilityIdentifier = "myButton"; 31 | Button.TouchUpInside += delegate 32 | { 33 | var title = string.Format("{0} clicks!", count++); 34 | Button.SetTitle(title, UIControlState.Normal); 35 | 36 | // Configure API key authorization: key 37 | Configuration.Default.ApiKey.Add("apikey", "YOUR_API_KEY"); 38 | // Uncomment below to setup prefix (e.g. Bearer) for API key, if needed 39 | // Configuration.Default.ApiKeyPrefix.Add("apikey", "Bearer"); 40 | 41 | var apiInstance = new AlbumApi(); 42 | var albumId = "14250417"; // string | The musiXmatch album id 43 | var format = "json"; // string | output format: json, jsonp, xml. (optional) (default to json) 44 | 45 | try 46 | { 47 | // 48 | InlineResponse200 result = apiInstance.AlbumGetGet(albumId, format); 49 | var res = JsonConvert.SerializeObject(result); 50 | Console.WriteLine(res); 51 | } 52 | catch (IO.Swagger.Client.ApiException e) 53 | { 54 | Console.WriteLine("Exception when calling DefaultApi.AlbumGetGet: " + e.Message); 55 | } 56 | catch (Exception e) 57 | { 58 | Console.WriteLine("Exception when calling DefaultApi.AlbumGetGet: " + e.Message); 59 | } 60 | }; 61 | } 62 | 63 | public override void DidReceiveMemoryWarning() 64 | { 65 | base.DidReceiveMemoryWarning(); 66 | // Release any cached data, images, etc that aren't in use. 67 | } 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /client/xamarin/SwaggerClient/iOS/ViewController.designer.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file has been generated automatically by MonoDevelop to store outlets and 3 | // actions made in the Xcode designer. If it is removed, they will be lost. 4 | // Manual changes to this file may not be handled correctly. 5 | // 6 | using Foundation; 7 | 8 | namespace SwaggerClient.iOS 9 | { 10 | [Register("ViewController")] 11 | partial class ViewController 12 | { 13 | [Outlet] 14 | UIKit.UIButton Button { get; set; } 15 | 16 | void ReleaseDesignerOutlets() 17 | { 18 | if (Button != null) 19 | { 20 | Button.Dispose(); 21 | Button = null; 22 | } 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /client/xamarin/SwaggerClient/iOS/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dist/csharp-client-generated.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/musixmatch/musixmatch-sdk/92ec683f400362f1260e1fce72251b8ca9a61a5d/dist/csharp-client-generated.zip -------------------------------------------------------------------------------- /dist/go-client-generated.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/musixmatch/musixmatch-sdk/92ec683f400362f1260e1fce72251b8ca9a61a5d/dist/go-client-generated.zip -------------------------------------------------------------------------------- /dist/go-client-patch.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/musixmatch/musixmatch-sdk/92ec683f400362f1260e1fce72251b8ca9a61a5d/dist/go-client-patch.zip -------------------------------------------------------------------------------- /dist/javascript-client-generated.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/musixmatch/musixmatch-sdk/92ec683f400362f1260e1fce72251b8ca9a61a5d/dist/javascript-client-generated.zip -------------------------------------------------------------------------------- /dist/javascript-client-patch.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/musixmatch/musixmatch-sdk/92ec683f400362f1260e1fce72251b8ca9a61a5d/dist/javascript-client-patch.zip -------------------------------------------------------------------------------- /dist/objc-client-generated.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/musixmatch/musixmatch-sdk/92ec683f400362f1260e1fce72251b8ca9a61a5d/dist/objc-client-generated.zip -------------------------------------------------------------------------------- /dist/objc-client-patch.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/musixmatch/musixmatch-sdk/92ec683f400362f1260e1fce72251b8ca9a61a5d/dist/objc-client-patch.zip -------------------------------------------------------------------------------- /dist/php-client-generated.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/musixmatch/musixmatch-sdk/92ec683f400362f1260e1fce72251b8ca9a61a5d/dist/php-client-generated.zip -------------------------------------------------------------------------------- /dist/python-client-generated.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/musixmatch/musixmatch-sdk/92ec683f400362f1260e1fce72251b8ca9a61a5d/dist/python-client-generated.zip --------------------------------------------------------------------------------