Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 23 additions & 1 deletion entities/differential.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
package entities

import "github.com/etcinit/gonduit/util"
import (
"encoding/json"
"github.com/etcinit/gonduit/util"
)

// DifferentialRevision represents a revision in Differential.
type DifferentialRevision struct {
Expand All @@ -26,3 +29,22 @@ type DifferentialRevision struct {
Auxiliary map[string][]string `json:"auxiliary"`
RepositoryPHID string `json:"repositoryPHID"`
}

func (dr *DifferentialRevision) UnmarshalJSON(data []byte) error {
type Alias DifferentialRevision
temp := &struct {
Reviewers map[string]string `json:"reviewers"`
*Alias
}{
Alias: (*Alias)(dr),
}
if err := json.Unmarshal(data, &temp); err != nil {
return err
}

for reviewer := range temp.Reviewers {
dr.Reviewers = append(dr.Reviewers, reviewer)
}

return nil
}
25 changes: 24 additions & 1 deletion requests/differential_query.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
package requests

import "github.com/etcinit/gonduit/constants"
import (
"github.com/etcinit/gonduit/constants"
"encoding/json"
)

// DifferentialQueryRequest represents a request to the
// differential.query call.
Expand All @@ -21,3 +24,23 @@ type DifferentialQueryRequest struct {
Branches []string `json:"branches"`
Request
}

func (dqr *DifferentialQueryRequest) UnmarshalJSON(data []byte) error {
type Alias DifferentialQueryRequest
temp := &struct {
Reviewers map[string]string `json:"reviewers"`
*Alias
}{
Alias: (*Alias)(dqr),
}
if err := json.Unmarshal(data, &temp); err != nil {
return err
}

dqr.Reviewers = []string{}
for reviewer := range temp.Reviewers {
dqr.Reviewers = append(dqr.Reviewers, reviewer)
}

return nil
}