payload: {"action":"created","comment":{"url":"https://api.github.com/repos/bio-pdv/service-proto/pulls/comments/327788821","pull_request_review_id":292644806,"id":327788821,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDMyNzc4ODgyMQ==","diff_hunk":"@@ -34,64 +34,108 @@ type PdvServer interface {\n \tStop()\n }\n \n-// PdvGrpcServer implements PdvServer interface and defines fields needed to start a gRPC server.\n-type PdvGrpcServer struct {\n-\t// serves RPC requests\n+// pdvGrpcServer is the product that is constructed from builder and\n+// implements the interface that commands the server.\n+// Defines fields needed to start/stop a gRPC server.\n+//\n+// TODO:\n+//  - Add field dba when db.Crud is made available\n+type pdvGrpcServer struct {\n \tserver *grpc.Server\n+\ttcp    string\n+\tport   int\n+}\n+\n+// PdvGrpcServerBuilder is an abstract builder that defines the template","path":"server/service/server.go","position":30,"original_position":30,"commit_id":"e5f84ec219bcc016c6c2ffcda6fccf31e68984c8","original_commit_id":"e5f84ec219bcc016c6c2ffcda6fccf31e68984c8","user":{"login":"phoenixcoder","id":1414887,"node_id":"MDQ6VXNlcjE0MTQ4ODc=","avatar_url":"https://avatars2.githubusercontent.com/u/1414887?v=4","gravatar_id":"","url":"https://api.github.com/users/phoenixcoder","html_url":"https://github.com/phoenixcoder","followers_url":"https://api.github.com/users/phoenixcoder/followers","following_url":"https://api.github.com/users/phoenixcoder/following{/other_user}","gists_url":"https://api.github.com/users/phoenixcoder/gists{/gist_id}","starred_url":"https://api.github.com/users/phoenixcoder/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/phoenixcoder/subscriptions","organizations_url":"https://api.github.com/users/phoenixcoder/orgs","repos_url":"https://api.github.com/users/phoenixcoder/repos","events_url":"https://api.github.com/users/phoenixcoder/events{/privacy}","received_events_url":"https://api.github.com/users/phoenixcoder/received_events","type":"User","site_admin":false},"body":"There are no abstract classes in Golang. It is an interface though, which \"abstracts\" away the implementation.","created_at":"2019-09-24T19:15:24Z","updated_at":"2019-09-24T19:36:24Z","html_url":"https://github.com/bio-pdv/service-proto/pull/3#discussion_r327788821","pull_request_url":"https://api.github.com/repos/bio-pdv/service-proto/pulls/3","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/bio-pdv/service-proto/pulls/comments/327788821"},"html":{"href":"https://github.com/bio-pdv/service-proto/pull/3#discussion_r327788821"},"pull_request":{"href":"https://api.github.com/repos/bio-pdv/service-proto/pulls/3"}}},"pull_request":{"url":"https://api.github.com/repos/bio-pdv/service-proto/pulls/3","id":320916192,"node_id":"MDExOlB1bGxSZXF1ZXN0MzIwOTE2MTky","html_url":"https://github.com/bio-pdv/service-proto/pull/3","diff_url":"https://github.com/bio-pdv/service-proto/pull/3.diff","patch_url":"https://github.com/bio-pdv/service-proto/pull/3.patch","issue_url":"https://api.github.com/repos/bio-pdv/service-proto/issues/3","number":3,"state":"open","locked":false,"title":"Refactor server using builder pattern","user":{"login":"kimlisa","id":43280172,"node_id":"MDQ6VXNlcjQzMjgwMTcy","avatar_url":"https://avatars3.githubusercontent.com/u/43280172?v=4","gravatar_id":"","url":"https://api.github.com/users/kimlisa","html_url":"https://github.com/kimlisa","followers_url":"https://api.github.com/users/kimlisa/followers","following_url":"https://api.github.com/users/kimlisa/following{/other_user}","gists_url":"https://api.github.com/users/kimlisa/gists{/gist_id}","starred_url":"https://api.github.com/users/kimlisa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kimlisa/subscriptions","organizations_url":"https://api.github.com/users/kimlisa/orgs","repos_url":"https://api.github.com/users/kimlisa/repos","events_url":"https://api.github.com/users/kimlisa/events{/privacy}","received_events_url":"https://api.github.com/users/kimlisa/received_events","type":"User","site_admin":false},"body":"I researched for a golang idiomatic way to use a builder pattern and I have read the following articles:\r\n\r\nhttp://blog.ralch.com/tutorial/design-patterns/golang-builder/\r\nhttps://golangvedu.wordpress.com/2017/02/09/golang-builder-pattern-creational/\r\nhttps://medium.com/@haluan/golang-builder-design-pattern-a8b7c92969a7\r\n\r\nThis shows just an example:\r\nhttps://gist.github.com/vaskoz/10073335\r\n\r\n\r\n","created_at":"2019-09-24T18:58:24Z","updated_at":"2019-09-24T19:36:24Z","closed_at":null,"merged_at":null,"merge_commit_sha":"244d05dca6b0a6187204e9abf8337bedd90fd06a","assignee":{"login":"kimlisa","id":43280172,"node_id":"MDQ6VXNlcjQzMjgwMTcy","avatar_url":"https://avatars3.githubusercontent.com/u/43280172?v=4","gravatar_id":"","url":"https://api.github.com/users/kimlisa","html_url":"https://github.com/kimlisa","followers_url":"https://api.github.com/users/kimlisa/followers","following_url":"https://api.github.com/users/kimlisa/following{/other_user}","gists_url":"https://api.github.com/users/kimlisa/gists{/gist_id}","starred_url":"https://api.github.com/users/kimlisa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kimlisa/subscriptions","organizations_url":"https://api.github.com/users/kimlisa/orgs","repos_url":"https://api.github.com/users/kimlisa/repos","events_url":"https://api.github.com/users/kimlisa/events{/privacy}","received_events_url":"https://api.github.com/users/kimlisa/received_events","type":"User","site_admin":false},"assignees":[{"login":"kimlisa","id":43280172,"node_id":"MDQ6VXNlcjQzMjgwMTcy","avatar_url":"https://avatars3.githubusercontent.com/u/43280172?v=4","gravatar_id":"","url":"https://api.github.com/users/kimlisa","html_url":"https://github.com/kimlisa","followers_url":"https://api.github.com/users/kimlisa/followers","following_url":"https://api.github.com/users/kimlisa/following{/other_user}","gists_url":"https://api.github.com/users/kimlisa/gists{/gist_id}","starred_url":"https://api.github.com/users/kimlisa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kimlisa/subscriptions","organizations_url":"https://api.github.com/users/kimlisa/orgs","repos_url":"https://api.github.com/users/kimlisa/repos","events_url":"https://api.github.com/users/kimlisa/events{/privacy}","received_events_url":"https://api.github.com/users/kimlisa/received_events","type":"User","site_admin":false}],"requested_reviewers":[{"login":"wai-swk","id":31898227,"node_id":"MDQ6VXNlcjMxODk4MjI3","avatar_url":"https://avatars0.githubusercontent.com/u/31898227?v=4","gravatar_id":"","url":"https://api.github.com/users/wai-swk","html_url":"https://github.com/wai-swk","followers_url":"https://api.github.com/users/wai-swk/followers","following_url":"https://api.github.com/users/wai-swk/following{/other_user}","gists_url":"https://api.github.com/users/wai-swk/gists{/gist_id}","starred_url":"https://api.github.com/users/wai-swk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wai-swk/subscriptions","organizations_url":"https://api.github.com/users/wai-swk/orgs","repos_url":"https://api.github.com/users/wai-swk/repos","events_url":"https://api.github.com/users/wai-swk/events{/privacy}","received_events_url":"https://api.github.com/users/wai-swk/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":1558501429,"node_id":"MDU6TGFiZWwxNTU4NTAxNDI5","url":"https://api.github.com/repos/bio-pdv/service-proto/labels/enhancement","name":"enhancement","color":"a2eeef","default":true}],"milestone":null,"commits_url":"https://api.github.com/repos/bio-pdv/service-proto/pulls/3/commits","review_comments_url":"https://api.github.com/repos/bio-pdv/service-proto/pulls/3/comments","review_comment_url":"https://api.github.com/repos/bio-pdv/service-proto/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bio-pdv/service-proto/issues/3/comments","statuses_url":"https://api.github.com/repos/bio-pdv/service-proto/statuses/e5f84ec219bcc016c6c2ffcda6fccf31e68984c8","head":{"label":"bio-pdv:server-builder-pattern","ref":"server-builder-pattern","sha":"e5f84ec219bcc016c6c2ffcda6fccf31e68984c8","user":{"login":"bio-pdv","id":54869376,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU0ODY5Mzc2","avatar_url":"https://avatars2.githubusercontent.com/u/54869376?v=4","gravatar_id":"","url":"https://api.github.com/users/bio-pdv","html_url":"https://github.com/bio-pdv","followers_url":"https://api.github.com/users/bio-pdv/followers","following_url":"https://api.github.com/users/bio-pdv/following{/other_user}","gists_url":"https://api.github.com/users/bio-pdv/gists{/gist_id}","starred_url":"https://api.github.com/users/bio-pdv/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bio-pdv/subscriptions","organizations_url":"https://api.github.com/users/bio-pdv/orgs","repos_url":"https://api.github.com/users/bio-pdv/repos","events_url":"https://api.github.com/users/bio-pdv/events{/privacy}","received_events_url":"https://api.github.com/users/bio-pdv/received_events","type":"Organization","site_admin":false},"repo":{"id":208749227,"node_id":"MDEwOlJlcG9zaXRvcnkyMDg3NDkyMjc=","name":"service-proto","full_name":"bio-pdv/service-proto","private":false,"owner":{"login":"bio-pdv","id":54869376,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU0ODY5Mzc2","avatar_url":"https://avatars2.githubusercontent.com/u/54869376?v=4","gravatar_id":"","url":"https://api.github.com/users/bio-pdv","html_url":"https://github.com/bio-pdv","followers_url":"https://api.github.com/users/bio-pdv/followers","following_url":"https://api.github.com/users/bio-pdv/following{/other_user}","gists_url":"https://api.github.com/users/bio-pdv/gists{/gist_id}","starred_url":"https://api.github.com/users/bio-pdv/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bio-pdv/subscriptions","organizations_url":"https://api.github.com/users/bio-pdv/orgs","repos_url":"https://api.github.com/users/bio-pdv/repos","events_url":"https://api.github.com/users/bio-pdv/events{/privacy}","received_events_url":"https://api.github.com/users/bio-pdv/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/bio-pdv/service-proto","description":"Service prototype.","fork":false,"url":"https://api.github.com/repos/bio-pdv/service-proto","forks_url":"https://api.github.com/repos/bio-pdv/service-proto/forks","keys_url":"https://api.github.com/repos/bio-pdv/service-proto/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bio-pdv/service-proto/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bio-pdv/service-proto/teams","hooks_url":"https://api.github.com/repos/bio-pdv/service-proto/hooks","issue_events_url":"https://api.github.com/repos/bio-pdv/service-proto/issues/events{/number}","events_url":"https://api.github.com/repos/bio-pdv/service-proto/events","assignees_url":"https://api.github.com/repos/bio-pdv/service-proto/assignees{/user}","branches_url":"https://api.github.com/repos/bio-pdv/service-proto/branches{/branch}","tags_url":"https://api.github.com/repos/bio-pdv/service-proto/tags","blobs_url":"https://api.github.com/repos/bio-pdv/service-proto/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bio-pdv/service-proto/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bio-pdv/service-proto/git/refs{/sha}","trees_url":"https://api.github.com/repos/bio-pdv/service-proto/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bio-pdv/service-proto/statuses/{sha}","languages_url":"https://api.github.com/repos/bio-pdv/service-proto/languages","stargazers_url":"https://api.github.com/repos/bio-pdv/service-proto/stargazers","contributors_url":"https://api.github.com/repos/bio-pdv/service-proto/contributors","subscribers_url":"https://api.github.com/repos/bio-pdv/service-proto/subscribers","subscription_url":"https://api.github.com/repos/bio-pdv/service-proto/subscription","commits_url":"https://api.github.com/repos/bio-pdv/service-proto/commits{/sha}","git_commits_url":"https://api.github.com/repos/bio-pdv/service-proto/git/commits{/sha}","comments_url":"https://api.github.com/repos/bio-pdv/service-proto/comments{/number}","issue_comment_url":"https://api.github.com/repos/bio-pdv/service-proto/issues/comments{/number}","contents_url":"https://api.github.com/repos/bio-pdv/service-proto/contents/{+path}","compare_url":"https://api.github.com/repos/bio-pdv/service-proto/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bio-pdv/service-proto/merges","archive_url":"https://api.github.com/repos/bio-pdv/service-proto/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bio-pdv/service-proto/downloads","issues_url":"https://api.github.com/repos/bio-pdv/service-proto/issues{/number}","pulls_url":"https://api.github.com/repos/bio-pdv/service-proto/pulls{/number}","milestones_url":"https://api.github.com/repos/bio-pdv/service-proto/milestones{/number}","notifications_url":"https://api.github.com/repos/bio-pdv/service-proto/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bio-pdv/service-proto/labels{/name}","releases_url":"https://api.github.com/repos/bio-pdv/service-proto/releases{/id}","deployments_url":"https://api.github.com/repos/bio-pdv/service-proto/deployments","created_at":"2019-09-16T08:31:09Z","updated_at":"2019-09-23T21:42:26Z","pushed_at":"2019-09-24T18:58:24Z","git_url":"git://github.com/bio-pdv/service-proto.git","ssh_url":"git@github.com:bio-pdv/service-proto.git","clone_url":"https://github.com/bio-pdv/service-proto.git","svn_url":"https://github.com/bio-pdv/service-proto","homepage":null,"size":8,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":2,"license":null,"forks":0,"open_issues":2,"watchers":0,"default_branch":"master"}},"base":{"label":"bio-pdv:master","ref":"master","sha":"7c8a6de2cb524f356ca1caa182777973e50742b9","user":{"login":"bio-pdv","id":54869376,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU0ODY5Mzc2","avatar_url":"https://avatars2.githubusercontent.com/u/54869376?v=4","gravatar_id":"","url":"https://api.github.com/users/bio-pdv","html_url":"https://github.com/bio-pdv","followers_url":"https://api.github.com/users/bio-pdv/followers","following_url":"https://api.github.com/users/bio-pdv/following{/other_user}","gists_url":"https://api.github.com/users/bio-pdv/gists{/gist_id}","starred_url":"https://api.github.com/users/bio-pdv/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bio-pdv/subscriptions","organizations_url":"https://api.github.com/users/bio-pdv/orgs","repos_url":"https://api.github.com/users/bio-pdv/repos","events_url":"https://api.github.com/users/bio-pdv/events{/privacy}","received_events_url":"https://api.github.com/users/bio-pdv/received_events","type":"Organization","site_admin":false},"repo":{"id":208749227,"node_id":"MDEwOlJlcG9zaXRvcnkyMDg3NDkyMjc=","name":"service-proto","full_name":"bio-pdv/service-proto","private":false,"owner":{"login":"bio-pdv","id":54869376,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU0ODY5Mzc2","avatar_url":"https://avatars2.githubusercontent.com/u/54869376?v=4","gravatar_id":"","url":"https://api.github.com/users/bio-pdv","html_url":"https://github.com/bio-pdv","followers_url":"https://api.github.com/users/bio-pdv/followers","following_url":"https://api.github.com/users/bio-pdv/following{/other_user}","gists_url":"https://api.github.com/users/bio-pdv/gists{/gist_id}","starred_url":"https://api.github.com/users/bio-pdv/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bio-pdv/subscriptions","organizations_url":"https://api.github.com/users/bio-pdv/orgs","repos_url":"https://api.github.com/users/bio-pdv/repos","events_url":"https://api.github.com/users/bio-pdv/events{/privacy}","received_events_url":"https://api.github.com/users/bio-pdv/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/bio-pdv/service-proto","description":"Service prototype.","fork":false,"url":"https://api.github.com/repos/bio-pdv/service-proto","forks_url":"https://api.github.com/repos/bio-pdv/service-proto/forks","keys_url":"https://api.github.com/repos/bio-pdv/service-proto/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bio-pdv/service-proto/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bio-pdv/service-proto/teams","hooks_url":"https://api.github.com/repos/bio-pdv/service-proto/hooks","issue_events_url":"https://api.github.com/repos/bio-pdv/service-proto/issues/events{/number}","events_url":"https://api.github.com/repos/bio-pdv/service-proto/events","assignees_url":"https://api.github.com/repos/bio-pdv/service-proto/assignees{/user}","branches_url":"https://api.github.com/repos/bio-pdv/service-proto/branches{/branch}","tags_url":"https://api.github.com/repos/bio-pdv/service-proto/tags","blobs_url":"https://api.github.com/repos/bio-pdv/service-proto/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bio-pdv/service-proto/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bio-pdv/service-proto/git/refs{/sha}","trees_url":"https://api.github.com/repos/bio-pdv/service-proto/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bio-pdv/service-proto/statuses/{sha}","languages_url":"https://api.github.com/repos/bio-pdv/service-proto/languages","stargazers_url":"https://api.github.com/repos/bio-pdv/service-proto/stargazers","contributors_url":"https://api.github.com/repos/bio-pdv/service-proto/contributors","subscribers_url":"https://api.github.com/repos/bio-pdv/service-proto/subscribers","subscription_url":"https://api.github.com/repos/bio-pdv/service-proto/subscription","commits_url":"https://api.github.com/repos/bio-pdv/service-proto/commits{/sha}","git_commits_url":"https://api.github.com/repos/bio-pdv/service-proto/git/commits{/sha}","comments_url":"https://api.github.com/repos/bio-pdv/service-proto/comments{/number}","issue_comment_url":"https://api.github.com/repos/bio-pdv/service-proto/issues/comments{/number}","contents_url":"https://api.github.com/repos/bio-pdv/service-proto/contents/{+path}","compare_url":"https://api.github.com/repos/bio-pdv/service-proto/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bio-pdv/service-proto/merges","archive_url":"https://api.github.com/repos/bio-pdv/service-proto/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bio-pdv/service-proto/downloads","issues_url":"https://api.github.com/repos/bio-pdv/service-proto/issues{/number}","pulls_url":"https://api.github.com/repos/bio-pdv/service-proto/pulls{/number}","milestones_url":"https://api.github.com/repos/bio-pdv/service-proto/milestones{/number}","notifications_url":"https://api.github.com/repos/bio-pdv/service-proto/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bio-pdv/service-proto/labels{/name}","releases_url":"https://api.github.com/repos/bio-pdv/service-proto/releases{/id}","deployments_url":"https://api.github.com/repos/bio-pdv/service-proto/deployments","created_at":"2019-09-16T08:31:09Z","updated_at":"2019-09-23T21:42:26Z","pushed_at":"2019-09-24T18:58:24Z","git_url":"git://github.com/bio-pdv/service-proto.git","ssh_url":"git@github.com:bio-pdv/service-proto.git","clone_url":"https://github.com/bio-pdv/service-proto.git","svn_url":"https://github.com/bio-pdv/service-proto","homepage":null,"size":8,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":2,"license":null,"forks":0,"open_issues":2,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/bio-pdv/service-proto/pulls/3"},"html":{"href":"https://github.com/bio-pdv/service-proto/pull/3"},"issue":{"href":"https://api.github.com/repos/bio-pdv/service-proto/issues/3"},"comments":{"href":"https://api.github.com/repos/bio-pdv/service-proto/issues/3/comments"},"review_comments":{"href":"https://api.github.com/repos/bio-pdv/service-proto/pulls/3/comments"},"review_comment":{"href":"https://api.github.com/repos/bio-pdv/service-proto/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bio-pdv/service-proto/pulls/3/commits"},"statuses":{"href":"https://api.github.com/repos/bio-pdv/service-proto/statuses/e5f84ec219bcc016c6c2ffcda6fccf31e68984c8"}},"author_association":"MEMBER"}}
other: {"actor":{"display_login":"phoenixcoder"}}