Commit dc3d7039 authored by jade.woodward's avatar jade.woodward

Added class to fetch from database

Added a class with methods that will fetch data from the database using php files on the server
parent febcdbaf
package com.example.soulfood_assignment2;
import android.util.Log;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
public class databaseInterface {
public String getSongByID(String id) {
HashMap<String, String> params = new HashMap<>();
params.put("id", id);
StringBuilder sbParams = new StringBuilder();
int i = 0;
for (String key : params.keySet()) {
try {
if (i != 0){
sbParams.append("&");
}
sbParams.append(key).append("=").append(URLEncoder.encode(params.get(key), "UTF-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
i++;
}
String spotify = "failed to fetch from database";
try {
String url = "https://cs2s.yorkdc.net/~jade.woodward/mobile-app-development/getsongbyid.php";
URL urlObj = new URL(url);
HttpURLConnection conn = (HttpURLConnection) urlObj.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Accept-Charset", "UTF-8");
conn.setReadTimeout(10000);
conn.setConnectTimeout(15000);
conn.connect();
String paramsString = sbParams.toString();
DataOutputStream wr = new DataOutputStream(conn.getOutputStream());
wr.writeBytes(paramsString);
wr.flush();
wr.close();
try {
InputStream is = conn.getInputStream();
BufferedInputStream in = new BufferedInputStream(is);
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
StringBuilder result = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
result.append(line);
}
spotify = result.toString();
} catch (IOException e) {
e.printStackTrace();
}
if (conn != null) {
conn.disconnect();
}
} catch (IOException e) {
e.printStackTrace();
}
return spotify;
}
public String getPlaylistSongIDsByID(String id) {
HashMap<String, String> params = new HashMap<>();
params.put("id", id);
StringBuilder sbParams = new StringBuilder();
int i = 0;
for (String key : params.keySet()) {
try {
if (i != 0){
sbParams.append("&");
}
sbParams.append(key).append("=").append(URLEncoder.encode(params.get(key), "UTF-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
i++;
}
String spotify = "failed to fetch from database";
try {
String url = "https://cs2s.yorkdc.net/~jade.woodward/mobile-app-development/getplaylistbyid.php";
URL urlObj = new URL(url);
HttpURLConnection conn = (HttpURLConnection) urlObj.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Accept-Charset", "UTF-8");
conn.setReadTimeout(10000);
conn.setConnectTimeout(15000);
conn.connect();
String paramsString = sbParams.toString();
DataOutputStream wr = new DataOutputStream(conn.getOutputStream());
wr.writeBytes(paramsString);
wr.flush();
wr.close();
try {
InputStream is = conn.getInputStream();
BufferedInputStream in = new BufferedInputStream(is);
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
StringBuilder result = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
result.append(line);
}
spotify = result.toString();
} catch (IOException e) {
e.printStackTrace();
}
if (conn != null) {
conn.disconnect();
}
} catch (IOException e) {
e.printStackTrace();
}
return spotify;
}
public ArrayList<String> getPlaylistByID(String id) {
String songids = getPlaylistSongIDsByID(id);
ArrayList<String> ids = parseOutSpaces(songids);
ArrayList<String> spotifys = new ArrayList<>();
for (String indv: ids) {
String spotty = getSongByID(indv);
spotifys.add(spotty);
}
return spotifys;
}
private ArrayList<String> parseOutSpaces(String original) {
ArrayList<String> results = new ArrayList<>();
for(String id : original.split(" ")) {
results.add(id);
}
return results;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment