Skip to content

Commit 7942a10

Browse files
author
Konstantin Semenov
committed
Switch to conventional naming for JSON-parsed structs
1 parent 062d2f1 commit 7942a10

File tree

11 files changed

+118
-90
lines changed

11 files changed

+118
-90
lines changed

.github/workflows/build.yml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,19 @@ name: Sonar Scan
22
on:
33
push:
44
branches:
5-
- main
5+
- main
66
pull_request:
7-
types: [opened, synchronize, reopened]
7+
types: [ opened, synchronize, reopened ]
88
jobs:
99
sonarcloud:
1010
name: SonarCloud
1111
runs-on: ubuntu-latest
1212
steps:
13-
- uses: actions/checkout@v3
14-
with:
15-
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
16-
- name: SonarCloud Scan
17-
uses: SonarSource/sonarcloud-github-action@master
18-
env:
19-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
20-
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
13+
- uses: actions/checkout@v3
14+
with:
15+
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
16+
- name: SonarCloud Scan
17+
uses: SonarSource/sonarcloud-github-action@master
18+
env:
19+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
20+
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}

Radar/App Data Objects/AppDataConverter.swift

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,24 +6,24 @@ class AppDataConverter {
66
static func convert(pipelines concoursePipelines: [ConcoursePipeline], jobs concourseJobs: [ConcourseJob], url: URL, teamName: String) -> Team {
77
let indexedJobs = sortConcourseJobs(jobs: concourseJobs, teamName: teamName)
88
var pipelineCollection = [Pipeline]()
9-
for concoursePipeline in concoursePipelines.filter({ !$0.archived && ($0.team_name == teamName) }) {
9+
for concoursePipeline in concoursePipelines.filter({ !$0.isArchived && ($0.teamName == teamName) }) {
1010
var pipelineJobs = [Job]()
1111
if let jobCollection = indexedJobs[concoursePipeline.id] {
1212
for j in jobCollection {
1313
pipelineJobs.append(extractJob(j))
1414
}
1515
}
16-
pipelineCollection.append(Pipeline(id: concoursePipeline.id, name: concoursePipeline.name, paused: concoursePipeline.paused, public: concoursePipeline.public, concourseUrl: url, teamName: teamName, jobs: pipelineJobs))
16+
pipelineCollection.append(Pipeline(id: concoursePipeline.id, name: concoursePipeline.name, isPaused: concoursePipeline.isPaused, isPublic: concoursePipeline.isPublic, concourseUrl: url, teamName: teamName, jobs: pipelineJobs))
1717
}
1818
return Team(concourseUrl: url, teamName: teamName, pipelines: pipelineCollection, error: nil)
1919
}
2020

2121
private static func extractJob(_ job: ConcourseJob) -> Job {
2222
Job(id: job.id,
2323
name: job.name,
24-
transitionBuild: extractBuild(job.transition_build),
25-
finishedBuild: extractBuild(job.finished_build),
26-
nextBuild: extractBuild(job.next_build)
24+
transitionBuild: extractBuild(job.transitionBuild),
25+
finishedBuild: extractBuild(job.finishedBuild),
26+
nextBuild: extractBuild(job.nextBuild)
2727
)
2828
}
2929

@@ -35,17 +35,17 @@ class AppDataConverter {
3535
id: concourseBuild.id,
3636
name: concourseBuild.name,
3737
status: buildStatus,
38-
startTime: Date(timeIntervalSince1970: Double(concourseBuild.start_time)),
39-
endTime: Date(timeIntervalSince1970: Double(concourseBuild.end_time)))
38+
startTime: Date(timeIntervalSince1970: Double(concourseBuild.startTime)),
39+
endTime: Date(timeIntervalSince1970: Double(concourseBuild.endTime)))
4040
}
4141

4242
private static func sortConcourseJobs(jobs: [ConcourseJob], teamName: String) -> [Int: [ConcourseJob]] {
4343
var result = [Int: [ConcourseJob]]()
44-
for job in jobs.filter({ $0.team_name == teamName }) {
45-
if result[job.pipeline_id] == nil {
46-
result[job.pipeline_id] = [ConcourseJob]()
44+
for job in jobs.filter({ $0.teamName == teamName }) {
45+
if result[job.pipelineId] == nil {
46+
result[job.pipelineId] = [ConcourseJob]()
4747
}
48-
result[job.pipeline_id]?.append(job)
48+
result[job.pipelineId]?.append(job)
4949
}
5050
return result
5151
}

Radar/App Data Objects/Job.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ struct Job {
1111
case succeeded
1212
case unknown
1313

14-
static func <(lhs: Job.Status, rhs: Job.Status) -> Bool {
14+
static func < (lhs: Job.Status, rhs: Job.Status) -> Bool {
1515
lhs.comparisonValue < rhs.comparisonValue
1616
}
1717

Radar/App Data Objects/Pipeline.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import Foundation
55
struct Pipeline: Identifiable {
66
let id: Int
77
let name: String
8-
let paused: Bool
9-
let `public`: Bool
8+
let isPaused: Bool
9+
let isPublic: Bool
1010
let concourseUrl: URL
1111
let teamName: String
1212

@@ -18,7 +18,7 @@ struct Pipeline: Identifiable {
1818
}
1919

2020
var statusIcon: Icon {
21-
if paused {
21+
if isPaused {
2222
return .paused
2323
}
2424
if jobs.isEmpty {

Radar/ConcourseJob.swift

Lines changed: 31 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,25 @@
33
import Foundation
44

55
struct ConcourseBuild: Codable {
6+
enum CodingKeys: String, CodingKey {
7+
case id, name, status
8+
case startTime = "start_time"
9+
case endTime = "end_time"
10+
case teamName = "team_name"
11+
case pipelineId = "pipeline_id"
12+
case pipelineName = "pipeline_name"
13+
case jobName = "job_name"
14+
}
15+
616
var id: Int
717
var name: String
818
var status: String
9-
var start_time: Int
10-
var end_time: Int
11-
var team_name: String
12-
var pipeline_id: Int
13-
var pipeline_name: String
14-
var job_name: String
19+
var startTime: Int
20+
var endTime: Int
21+
var teamName: String
22+
var pipelineId: Int
23+
var pipelineName: String
24+
var jobName: String
1525
}
1626

1727
struct JobInput: Codable {
@@ -22,13 +32,22 @@ struct JobInput: Codable {
2232
}
2333

2434
struct ConcourseJob: Codable, Identifiable {
35+
enum CodingKeys: String, CodingKey {
36+
case id, name, teamName, inputs
37+
case pipelineId = "pipeline_id"
38+
case pipelineName = "pipeline_name"
39+
case finishedBuild = "finished_build"
40+
case transitionBuild = "transition_build"
41+
case nextBuild = "next_build"
42+
}
43+
2544
var id: Int
2645
var name: String
27-
var team_name: String
28-
var pipeline_id: Int
29-
var pipeline_name: String
30-
var finished_build: ConcourseBuild?
31-
var transition_build: ConcourseBuild?
32-
var next_build: ConcourseBuild?
46+
var teamName: String
47+
var pipelineId: Int
48+
var pipelineName: String
49+
var finishedBuild: ConcourseBuild?
50+
var transitionBuild: ConcourseBuild?
51+
var nextBuild: ConcourseBuild?
3352
var inputs: [JobInput]?
3453
}

Radar/ConcoursePipeline.swift

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,21 @@ struct PipelineGroup: Codable {
88
}
99

1010
struct ConcoursePipeline: Codable {
11+
enum CodingKeys: String, CodingKey {
12+
case id, name, groups
13+
case isPaused = "paused"
14+
case isArchived = "archived"
15+
case isPublic = "public"
16+
case teamName = "team_name"
17+
case lastUpdated = "last_updated"
18+
}
19+
1120
var id: Int
1221
var name: String
13-
var paused: Bool
14-
var archived: Bool
15-
var `public`: Bool
22+
var isPaused: Bool
23+
var isArchived: Bool
24+
var isPublic: Bool
1625
var groups: [PipelineGroup]?
17-
var team_name: String
18-
var last_updated: Int?
26+
var teamName: String
27+
var lastUpdated: Int?
1928
}

Radar/UI/ConcourseMenu.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,11 +82,11 @@ fileprivate func fullConcourseData() -> ConcourseData {
8282
let data = ConcourseData()
8383
data.concourseUrl = "http://localhost/"
8484
data.team = Team(concourseUrl: URL(string: "http://localhost")!, teamName: "test-team", pipelines: [
85-
Pipeline(id: 1, name: "pipeline-name", paused: false, public: false, concourseUrl: URL(string: "http://localhost")!, teamName: "test-team", jobs: [
85+
Pipeline(id: 1, name: "pipeline-name", isPaused: false, isPublic: false, concourseUrl: URL(string: "http://localhost")!, teamName: "test-team", jobs: [
8686
Job(id: 1, name: "test-job", transitionBuild: nil, finishedBuild: Build(id: 1, name: "234", status: .succeeded,
8787
startTime: Date(timeIntervalSince1970: 298347), endTime: Date(timeIntervalSince1970: 948559)), nextBuild: nil)
8888
]),
89-
Pipeline(id: 2, name: "pipeline-two", paused: false, public: false, concourseUrl: URL(string: "http://localhost")!, teamName: "test-team", jobs: [
89+
Pipeline(id: 2, name: "pipeline-two", isPaused: false, isPublic: false, concourseUrl: URL(string: "http://localhost")!, teamName: "test-team", jobs: [
9090
Job(id: 21, name: "another-test-job", transitionBuild: nil,
9191
finishedBuild: nil,
9292
nextBuild: Build(id: 213, name: "29873", status: .started,

Radar/UI/PipelineView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ struct PipelineView: View {
2222

2323
struct PipelineView_Previews: PreviewProvider {
2424
static var previews: some View {
25-
PipelineView(pipeline: Pipeline(id: 1, name: "pipeline-name", paused: false, public: false, concourseUrl: URL(string: "http://localhost")!, teamName: "preview-team", jobs: [
25+
PipelineView(pipeline: Pipeline(id: 1, name: "pipeline-name", isPaused: false, isPublic: false, concourseUrl: URL(string: "http://localhost")!, teamName: "preview-team", jobs: [
2626
Job(id: 1, name: "", transitionBuild: nil, finishedBuild: Build(id: 1, name: "", status: .succeeded, startTime: Date(), endTime: Date()), nextBuild: nil)
2727
]))
2828
}

RadarTests/AppDataConverterSpec.swift

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -17,42 +17,42 @@ class AppDataConverterSpec: QuickSpec {
1717
}
1818

1919
it("includes the pipelines and jobs") {
20-
let pipeline = ConcoursePipeline(id: 1, name: "test-pipeline", paused: false, archived: false, public: false, team_name: self.teamName)
21-
let successfulBuild = ConcourseBuild(id: 1, name: "1", status: "succeeded", start_time: 23894, end_time: 30983, team_name: self.teamName, pipeline_id: 1, pipeline_name: "test-pipeline", job_name: "test-job")
20+
let pipeline = ConcoursePipeline(id: 1, name: "test-pipeline", isPaused: false, isArchived: false, isPublic: false, teamName: self.teamName)
21+
let successfulBuild = ConcourseBuild(id: 1, name: "1", status: "succeeded", startTime: 23894, endTime: 30983, teamName: self.teamName, pipelineId: 1, pipelineName: "test-pipeline", jobName: "test-job")
2222

23-
let job = ConcourseJob(id: 1, name: "test-job", team_name: self.teamName, pipeline_id: 1, pipeline_name: "test-pipeline", finished_build: successfulBuild)
23+
let job = ConcourseJob(id: 1, name: "test-job", teamName: self.teamName, pipelineId: 1, pipelineName: "test-pipeline", finishedBuild: successfulBuild)
2424

2525
let team = AppDataConverter.convert(pipelines: [pipeline], jobs: [job], url: self.url, teamName: self.teamName)
2626
expect(team.pipelines).to(haveCount(1))
2727
expect(team.pipelines.first!.jobs).to(haveCount(1))
2828
}
2929

3030
it("omits archived pipelines") {
31-
let pipeline = ConcoursePipeline(id: 1, name: "test-pipeline", paused: false, archived: true, public: false, team_name: self.teamName)
31+
let pipeline = ConcoursePipeline(id: 1, name: "test-pipeline", isPaused: false, isArchived: true, isPublic: false, teamName: self.teamName)
3232
let team = AppDataConverter.convert(pipelines: [pipeline], jobs: [], url: self.url, teamName: self.teamName)
3333
expect(team.pipelines).to(beEmpty())
3434
}
3535

3636
it("assigns the attributes to pipeline") {
37-
let concoursePipeline = ConcoursePipeline(id: 1, name: "test-pipeline", paused: false, archived: false, public: false, team_name: self.teamName)
37+
let concoursePipeline = ConcoursePipeline(id: 1, name: "test-pipeline", isPaused: false, isArchived: false, isPublic: false, teamName: self.teamName)
3838

3939
let team = AppDataConverter.convert(pipelines: [concoursePipeline], jobs: [], url: self.url, teamName: self.teamName)
4040
let pipeline = team.pipelines.first!
4141
expect(pipeline.id).to(equal(1))
4242
expect(pipeline.name).to(equal("test-pipeline"))
43-
expect(pipeline.paused).to(beFalse())
44-
expect(pipeline.public).to(beFalse())
43+
expect(pipeline.isPaused).to(beFalse())
44+
expect(pipeline.isPublic).to(beFalse())
4545
expect(pipeline.concourseUrl).to(equal(self.url))
4646
expect(pipeline.teamName).to(equal(self.teamName))
4747
}
4848

4949
it("assigns the attributes to the job") {
50-
let concoursePipeline = ConcoursePipeline(id: 1, name: "test-pipeline", paused: false, archived: false, public: false, team_name: self.teamName)
51-
let transitionBuild = ConcourseBuild(id: 1, name: "1", status: "succeeded", start_time: 23894, end_time: 30983, team_name: self.teamName, pipeline_id: 1, pipeline_name: "test-pipeline", job_name: "test-job")
52-
let finishedBuild = ConcourseBuild(id: 12, name: "12", status: "succeeded", start_time: 52834, end_time: 85465, team_name: self.teamName, pipeline_id: 1, pipeline_name: "test-pipeline", job_name: "test-job")
53-
let nextBuild = ConcourseBuild(id: 13, name: "13", status: "started", start_time: 49764, end_time: 46546, team_name: self.teamName, pipeline_id: 1, pipeline_name: "test-pipeline", job_name: "test-job")
50+
let concoursePipeline = ConcoursePipeline(id: 1, name: "test-pipeline", isPaused: false, isArchived: false, isPublic: false, teamName: self.teamName)
51+
let transitionBuild = ConcourseBuild(id: 1, name: "1", status: "succeeded", startTime: 23894, endTime: 30983, teamName: self.teamName, pipelineId: 1, pipelineName: "test-pipeline", jobName: "test-job")
52+
let finishedBuild = ConcourseBuild(id: 12, name: "12", status: "succeeded", startTime: 52834, endTime: 85465, teamName: self.teamName, pipelineId: 1, pipelineName: "test-pipeline", jobName: "test-job")
53+
let nextBuild = ConcourseBuild(id: 13, name: "13", status: "started", startTime: 49764, endTime: 46546, teamName: self.teamName, pipelineId: 1, pipelineName: "test-pipeline", jobName: "test-job")
5454

55-
let concourseJob = ConcourseJob(id: 1, name: "test-job", team_name: self.teamName, pipeline_id: 1, pipeline_name: "test-pipeline", finished_build: finishedBuild, transition_build: transitionBuild, next_build: nextBuild)
55+
let concourseJob = ConcourseJob(id: 1, name: "test-job", teamName: self.teamName, pipelineId: 1, pipelineName: "test-pipeline", finishedBuild: finishedBuild, transitionBuild: transitionBuild, nextBuild: nextBuild)
5656

5757
let team = AppDataConverter.convert(pipelines: [concoursePipeline], jobs: [concourseJob], url: self.url, teamName: self.teamName)
5858
let job = team.pipelines.first!.jobs.first!
@@ -64,12 +64,12 @@ class AppDataConverterSpec: QuickSpec {
6464
}
6565

6666
it("assigns the attributes to the builds") {
67-
let concoursePipeline = ConcoursePipeline(id: 1, name: "test-pipeline", paused: false, archived: false, public: false, team_name: self.teamName)
68-
let tBuild = ConcourseBuild(id: 1, name: "1", status: "succeeded", start_time: 23894, end_time: 30983, team_name: self.teamName, pipeline_id: 1, pipeline_name: "test-pipeline", job_name: "test-job")
69-
let fBuild = ConcourseBuild(id: 12, name: "12", status: "succeeded", start_time: 52834, end_time: 85465, team_name: self.teamName, pipeline_id: 1, pipeline_name: "test-pipeline", job_name: "test-job")
70-
let nBuild = ConcourseBuild(id: 13, name: "13", status: "started", start_time: 49764, end_time: 46546, team_name: self.teamName, pipeline_id: 1, pipeline_name: "test-pipeline", job_name: "test-job")
67+
let concoursePipeline = ConcoursePipeline(id: 1, name: "test-pipeline", isPaused: false, isArchived: false, isPublic: false, teamName: self.teamName)
68+
let tBuild = ConcourseBuild(id: 1, name: "1", status: "succeeded", startTime: 23894, endTime: 30983, teamName: self.teamName, pipelineId: 1, pipelineName: "test-pipeline", jobName: "test-job")
69+
let fBuild = ConcourseBuild(id: 12, name: "12", status: "succeeded", startTime: 52834, endTime: 85465, teamName: self.teamName, pipelineId: 1, pipelineName: "test-pipeline", jobName: "test-job")
70+
let nBuild = ConcourseBuild(id: 13, name: "13", status: "started", startTime: 49764, endTime: 46546, teamName: self.teamName, pipelineId: 1, pipelineName: "test-pipeline", jobName: "test-job")
7171

72-
let concourseJob = ConcourseJob(id: 1, name: "test-job", team_name: self.teamName, pipeline_id: 1, pipeline_name: "test-pipeline", finished_build: fBuild, transition_build: tBuild, next_build: nBuild)
72+
let concourseJob = ConcourseJob(id: 1, name: "test-job", teamName: self.teamName, pipelineId: 1, pipelineName: "test-pipeline", finishedBuild: fBuild, transitionBuild: tBuild, nextBuild: nBuild)
7373

7474
let team = AppDataConverter.convert(pipelines: [concoursePipeline], jobs: [concourseJob], url: self.url, teamName: self.teamName)
7575
let job = team.pipelines.first!.jobs.first!
@@ -99,11 +99,11 @@ class AppDataConverterSpec: QuickSpec {
9999

100100
it("includes only pipelines from the indicated team") {
101101
let pipelines = [
102-
ConcoursePipeline(id: 1, name: "name-1", paused: false, archived: false, public: false, groups: nil, team_name: "test-team", last_updated: nil),
103-
ConcoursePipeline(id: 1, name: "name-1", paused: false, archived: false, public: false, groups: nil, team_name: "not-test-team", last_updated: nil),
104-
ConcoursePipeline(id: 1, name: "name-1", paused: false, archived: false, public: false, groups: nil, team_name: "not-test-team", last_updated: nil),
105-
ConcoursePipeline(id: 1, name: "name-1", paused: false, archived: false, public: false, groups: nil, team_name: "another-test-team", last_updated: nil),
106-
ConcoursePipeline(id: 1, name: "name-1", paused: false, archived: false, public: false, groups: nil, team_name: "test-team", last_updated: nil),
102+
ConcoursePipeline(id: 1, name: "name-1", isPaused: false, isArchived: false, isPublic: false, groups: nil, teamName: "test-team", lastUpdated: nil),
103+
ConcoursePipeline(id: 1, name: "name-1", isPaused: false, isArchived: false, isPublic: false, groups: nil, teamName: "not-test-team", lastUpdated: nil),
104+
ConcoursePipeline(id: 1, name: "name-1", isPaused: false, isArchived: false, isPublic: false, groups: nil, teamName: "not-test-team", lastUpdated: nil),
105+
ConcoursePipeline(id: 1, name: "name-1", isPaused: false, isArchived: false, isPublic: false, groups: nil, teamName: "another-test-team", lastUpdated: nil),
106+
ConcoursePipeline(id: 1, name: "name-1", isPaused: false, isArchived: false, isPublic: false, groups: nil, teamName: "test-team", lastUpdated: nil),
107107
]
108108

109109
let team = AppDataConverter.convert(pipelines: pipelines, jobs: [], url: URL(string: "http://localhost")!, teamName: "test-team")

0 commit comments

Comments
 (0)