package com.fastaccess.data.dao;
import android.net.Uri;
import android.support.annotation.NonNull;
import com.fastaccess.helper.InputHelper;
import com.fastaccess.helper.Logger;
import java.util.List;
import lombok.Getter;
import lombok.Setter;
/**
* Created by Kosh on 17 Dec 2016, 12:17 AM
*/
@Getter @Setter
public class PullsIssuesParser {
private String login;
private String repoId;
private int number;
public static PullsIssuesParser getForPullRequest(@NonNull String url) {
Uri uri = Uri.parse(url);
List<String> segments = uri.getPathSegments();
Logger.e(url, uri, segments);
if (segments == null || segments.size() < 4) return null;
if (!"pull".equals(segments.get(2))) return null;
String owner = segments.get(0);
String repo = segments.get(1);
String number = segments.get(3);
if (InputHelper.isEmpty(number)) return null;
int issueNumber;
try {
issueNumber = Integer.parseInt(number);
} catch (NumberFormatException nfe) {
return null;
}
PullsIssuesParser model = new PullsIssuesParser();
model.setLogin(owner);
model.setRepoId(repo);
model.setNumber(issueNumber);
return model;
}
public static PullsIssuesParser getForIssue(@NonNull String url) {
Uri uri = Uri.parse(url);
List<String> segments = uri.getPathSegments();
if (segments == null || segments.size() < 4) return null;
if (!"issues".equals(segments.get(2))) return null;
String owner = segments.get(0);
String repo = segments.get(1);
String number = segments.get(3);
if (InputHelper.isEmpty(number)) return null;
int issueNumber;
try {
issueNumber = Integer.parseInt(number);
} catch (NumberFormatException nfe) {
return null;
}
PullsIssuesParser model = new PullsIssuesParser();
model.setLogin(owner);
model.setRepoId(repo);
model.setNumber(issueNumber);
return model;
}
@Override public String toString() {
return "PullsIssuesParser{" +
"login='" + login + '\'' +
", repoId='" + repoId + '\'' +
", number=" + number +
'}';
}
}