classes/RestMethod/FileRestMethod.psm1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
using module ..\AtlassianContext.psm1 using module .\RestMethodQueryParams.psm1 using module .\RestMethod.psm1 class FileRestMethod : RestMethod { ##################### # HIDDEN PROPERTIES # ##################### ##################### # PUBLIC PROPERTIES # ##################### # The path to the file, when POST-ing or PUT-ing a file [string] $FilePath ################ # CONSTRUCTORS # ################ #file only FileRestMethod( [string]$FunctionPath, [string]$HttpMethod, [string]$FilePath ) : base($FunctionPath,$HttpMethod) { $this.FileInit($FilePath) } #file + query FileRestMethod( [string]$FunctionPath, [string]$HttpMethod, [RestMethodQueryParams]$Query, [string]$FilePath ) : base($FunctionPath,$HttpMethod,$Query) { $this.FileInit($FilePath) } ################## # HIDDEN METHODS # ################## hidden [void] FileInit([string]$FilePath){ $this.FilePath = $FilePath if(!$this.Headers.ContainsKey("X-Atlassian-Token")) { $this.Headers.Add("X-Atlassian-Token","no-check") } } ################## # PUBLIC METHODS # ################## [object] Invoke( [AtlassianContext]$AtlassianContext ){ $AtlassianContext = [RestMethod]::FillContext($AtlassianContext) $invokeSplat = @{ Uri = $this.Uri($AtlassianContext) Method = $this.HttpMethod Headers = $this.HeadersToSend($AtlassianContext) MaximumRetryCount = $AtlassianContext.Retries RetryIntervalSec = $AtlassianContext.RetryDelay InFile = $this.FilePath } return [RestMethod]::RootInvoke($invokeSplat) } } |