@@ -22,20 +22,25 @@ type SiloImage = Required<PP.SiloImage>
22
22
type IpPool = Required < PP . IpPool >
23
23
type FloatingIp = Required < PP . FloatingIp >
24
24
25
+ // this is used as the basis for many routes, but is itself not a route we ever
26
+ // want to link directly to. so we use this to build the routes but pb.project()
27
+ // is different (includes /instances)
28
+ const projectBase = ( { project } : Project ) => `${ pb . projects ( ) } /${ project } `
29
+
25
30
export const pb = {
26
31
projects : ( ) => `/projects` ,
27
32
projectsNew : ( ) => `/projects-new` ,
28
- project : ( { project } : Project ) => `${ pb . projects ( ) } /${ project } ` ,
29
- projectEdit : ( params : Project ) => `${ pb . project ( params ) } /edit` ,
33
+ project : ( params : Project ) => `${ projectBase ( params ) } /instances ` ,
34
+ projectEdit : ( params : Project ) => `${ projectBase ( params ) } /edit` ,
30
35
31
- projectAccess : ( params : Project ) => `${ pb . project ( params ) } /access` ,
32
- projectImages : ( params : Project ) => `${ pb . project ( params ) } /images` ,
33
- projectImagesNew : ( params : Project ) => `${ pb . project ( params ) } /images-new` ,
36
+ projectAccess : ( params : Project ) => `${ projectBase ( params ) } /access` ,
37
+ projectImages : ( params : Project ) => `${ projectBase ( params ) } /images` ,
38
+ projectImagesNew : ( params : Project ) => `${ projectBase ( params ) } /images-new` ,
34
39
projectImage : ( params : Image ) => `${ pb . projectImages ( params ) } /${ params . image } ` ,
35
40
projectImageEdit : ( params : Image ) => `${ pb . projectImage ( params ) } /edit` ,
36
41
37
- instances : ( params : Project ) => `${ pb . project ( params ) } /instances` ,
38
- instancesNew : ( params : Project ) => `${ pb . project ( params ) } /instances-new` ,
42
+ instances : ( params : Project ) => `${ projectBase ( params ) } /instances` ,
43
+ instancesNew : ( params : Project ) => `${ projectBase ( params ) } /instances-new` ,
39
44
instance : ( params : Instance ) => `${ pb . instances ( params ) } /${ params . instance } ` ,
40
45
41
46
/**
@@ -55,20 +60,20 @@ export const pb = {
55
60
56
61
serialConsole : ( params : Instance ) => `${ pb . instance ( params ) } /serial-console` ,
57
62
58
- disksNew : ( params : Project ) => `${ pb . project ( params ) } /disks-new` ,
59
- disks : ( params : Project ) => `${ pb . project ( params ) } /disks` ,
63
+ disksNew : ( params : Project ) => `${ projectBase ( params ) } /disks-new` ,
64
+ disks : ( params : Project ) => `${ projectBase ( params ) } /disks` ,
60
65
61
- snapshotsNew : ( params : Project ) => `${ pb . project ( params ) } /snapshots-new` ,
62
- snapshots : ( params : Project ) => `${ pb . project ( params ) } /snapshots` ,
66
+ snapshotsNew : ( params : Project ) => `${ projectBase ( params ) } /snapshots-new` ,
67
+ snapshots : ( params : Project ) => `${ projectBase ( params ) } /snapshots` ,
63
68
snapshotImagesNew : ( params : Snapshot ) =>
64
- `${ pb . project ( params ) } /snapshots/${ params . snapshot } /images-new` ,
69
+ `${ projectBase ( params ) } /snapshots/${ params . snapshot } /images-new` ,
65
70
66
- vpcsNew : ( params : Project ) => `${ pb . project ( params ) } /vpcs-new` ,
67
- vpcs : ( params : Project ) => `${ pb . project ( params ) } /vpcs` ,
71
+ vpcsNew : ( params : Project ) => `${ projectBase ( params ) } /vpcs-new` ,
72
+ vpcs : ( params : Project ) => `${ projectBase ( params ) } /vpcs` ,
68
73
vpc : ( params : Vpc ) => `${ pb . vpcs ( params ) } /${ params . vpc } ` ,
69
74
vpcEdit : ( params : Vpc ) => `${ pb . vpc ( params ) } /edit` ,
70
- floatingIps : ( params : Project ) => `${ pb . project ( params ) } /floating-ips` ,
71
- floatingIpsNew : ( params : Project ) => `${ pb . project ( params ) } /floating-ips-new` ,
75
+ floatingIps : ( params : Project ) => `${ projectBase ( params ) } /floating-ips` ,
76
+ floatingIpsNew : ( params : Project ) => `${ projectBase ( params ) } /floating-ips-new` ,
72
77
floatingIp : ( params : FloatingIp ) => `${ pb . floatingIps ( params ) } /${ params . floatingIp } ` ,
73
78
floatingIpEdit : ( params : FloatingIp ) => `${ pb . floatingIp ( params ) } /edit` ,
74
79
0 commit comments