24 lines
1.2 KiB
TypeScript
24 lines
1.2 KiB
TypeScript
import { GithubPullRequestResponse } from '../../data_sources/github';
|
|
import { GithubPullRequest } from '../../entities';
|
|
|
|
/**
|
|
* Converts a Github response from the API into an GithubRepo entity.
|
|
* @param rawRepo A Github response from the API into an GithubRepo entity.
|
|
*/
|
|
export function parseGithubPulls(response: GithubPullRequestResponse[], observedTimestamp: number): GithubPullRequest[] {
|
|
return response.map( pull => {
|
|
const parsedPullRequest = new GithubPullRequest();
|
|
parsedPullRequest.observedTimestamp = observedTimestamp;
|
|
parsedPullRequest.repoName = pull.base.repo.name;
|
|
parsedPullRequest.createdAt = Date.parse(pull.created_at);
|
|
parsedPullRequest.updatedAt = Date.parse(pull.updated_at);
|
|
parsedPullRequest.closedAt = pull.closed_at ? Date.parse(pull.closed_at) : null;
|
|
parsedPullRequest.mergedAt = pull.merged_at ? Date.parse(pull.merged_at) : null;
|
|
parsedPullRequest.pullRequestNumber = pull.number;
|
|
parsedPullRequest.state = pull.state;
|
|
parsedPullRequest.title = pull.title;
|
|
parsedPullRequest.userLogin = pull.user.login;
|
|
return parsedPullRequest;
|
|
});
|
|
}
|