2019-03-08 20:07:26 +08:00

27 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;
});
}