Skip to content

Commit 77c595a

Browse files
committed
Forms working with a single artist/genre. Closes #33
1 parent b8eb2c6 commit 77c595a

File tree

3 files changed

+30
-12
lines changed

3 files changed

+30
-12
lines changed

src/app/_services/album.service.ts

+15-6
Original file line numberDiff line numberDiff line change
@@ -26,19 +26,28 @@ export class AlbumService {
2626
let formData:FormData = new FormData();
2727
Object.keys(album).forEach(key => {
2828
if(key === 'artists') {
29-
album[key].forEach(artistId => {
30-
formData.append(key, String(artistId));
31-
});
29+
if (album[key].length === 1) {
30+
formData.append('artists[0]', String(album[key][0]));
31+
} else {
32+
album[key].forEach(genre => {
33+
formData.append(key, String(genre));
34+
});
35+
}
3236
} else if (key === 'genres') {
33-
album[key].forEach(genre => {
34-
formData.append(key, String(genre));
35-
});
37+
if (album[key].length === 1) {
38+
formData.append('genres[0]', album[key][0]);
39+
} else {
40+
album[key].forEach(genre => {
41+
formData.append(key, String(genre));
42+
});
43+
}
3644
}
3745
else formData.append(key, album[key]);
3846
});
3947
let headers = new Headers();
4048
headers.append('Content-Type', 'multipart/form-data');
4149
let options = new RequestOptions({ headers: headers });
50+
console.log(formData);
4251
return this.http.post(`${environment.apiUrl}/albums/`, formData, this.jwt())
4352
.map(res => res.json());
4453
}

src/app/_services/artist.service.ts

+8-3
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,17 @@ export class ArtistService {
2727
let formData:FormData = new FormData();
2828
Object.keys(artist).forEach(key => {
2929
if (key === 'genres') {
30-
artist[key].forEach(genre => {
31-
formData.append(key, String(genre));
32-
});
30+
if (artist[key].length === 1) {
31+
formData.append('genres[0]', artist[key][0]);
32+
} else {
33+
artist[key].forEach(genre => {
34+
formData.append(key, String(genre));
35+
});
36+
}
3337
}
3438
else formData.append(key, artist[key]);
3539
});
40+
console.log(formData);
3641
let headers = new Headers();
3742
headers.append('Content-Type', 'multipart/form-data');
3843
let options = new RequestOptions({ headers: headers });

src/app/_services/track.service.ts

+7-3
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,13 @@ export class TrackService {
2727
let formData:FormData = new FormData();
2828
Object.keys(track).forEach(key => {
2929
if(key === 'artists') {
30-
track[key].forEach(artistId => {
31-
formData.append(key, String(artistId));
32-
});
30+
if (track[key].length === 1) {
31+
formData.append('artists[0]', String(track[key][0]));
32+
} else {
33+
track[key].forEach(genre => {
34+
formData.append(key, String(genre));
35+
});
36+
}
3337
}
3438
else formData.append(key, track[key]);
3539
});

0 commit comments

Comments
 (0)