mirror of
https://github.com/paradizelost/Powershell-Public.git
synced 2024-11-25 02:04:43 -06:00
Update teedy.ps1
This commit is contained in:
parent
5f0ebc959b
commit
1d5e64b9fe
162
teedy.ps1
162
teedy.ps1
@ -1,7 +1,7 @@
|
||||
$siteurl = "https://demo.teedy.io"
|
||||
$headers = get-sitelogin
|
||||
$global:taghash=@{}
|
||||
function get-sitelogin(){
|
||||
|
||||
$tologin=@{username="demo";password="password";}
|
||||
try{
|
||||
$loginresponse = Invoke-webrequest -Uri "$siteurl/api/user/login" -Method POST -Body $tologin
|
||||
@ -24,28 +24,152 @@ function get-sitelogin(){
|
||||
}
|
||||
return $headers
|
||||
}
|
||||
<# Uploads files but doesn"t attach to docs. files only visible in the user context of the specific user.
|
||||
#$toupload = get-item ".\Advent Of Code Day 1.ps1"
|
||||
#Invoke-RestMethod -uri "$siteurl/api/file" -Headers $headers -Method PUT -form @{file=$toupload} -ContentType "multipart/form-data"
|
||||
#>
|
||||
$taglist = Invoke-RestMethod -uri "$siteurl/api/tag/list" -Headers $headers -Method GET | select-object -ExpandProperty tags
|
||||
if($taglist){write-host "Got tags"}
|
||||
function New-Tag(){
|
||||
param(
|
||||
$TagName,
|
||||
$ParentTagName="",
|
||||
$color="3a87ad"
|
||||
)
|
||||
try{
|
||||
$colorcode = ("{0:X}" -f [drawing.Color]::FromName($color).toargb() ).Substring(2)
|
||||
}catch{
|
||||
$error[0]
|
||||
write-host "Unable to determine color code. Using default blue."
|
||||
$colorcode = '3a87ad'
|
||||
}
|
||||
Update-TagHash
|
||||
if($global:taghash[$TagName]){
|
||||
throw "TAG $tagname already exists."
|
||||
}
|
||||
if((-not($global:taghash[$ParentTagName])) -and ($ParentTagName -ne '') ){
|
||||
$parentTagID = (New-Tag -TagName $ParentTagName -ParentTagName '').id
|
||||
} else{
|
||||
if($ParentTagName -eq ''){
|
||||
$parentTagID=''
|
||||
} else {
|
||||
$parentTagID=$global:taghash[$ParentTagName].id
|
||||
}
|
||||
}
|
||||
$mytagtocreate = @{
|
||||
name=$TagName;
|
||||
parent=$parentTagID;
|
||||
color="#$colorcode";
|
||||
}
|
||||
$mytagtocreate
|
||||
$newtagid = Invoke-RestMethod -uri "$siteurl/api/tag" -Headers $headers -Method PUT -body $mytagtocreate -ContentType 'application/x-www-form-urlencoded'
|
||||
Update-TagHash
|
||||
$newtagid
|
||||
}
|
||||
function Remove-Tag(){
|
||||
param(
|
||||
[parameter(mandatory)][string]$TagName
|
||||
)
|
||||
$tagid = $taghash[$tagname].id
|
||||
if($tagid){
|
||||
$result = Invoke-RestMethod -uri "$siteurl/api/tag/$tagid" -Headers $headers -Method DELETE
|
||||
Update-TagHash
|
||||
} else {
|
||||
$result = "$tagname not found"
|
||||
#continue
|
||||
}
|
||||
$result
|
||||
}
|
||||
function update-tag(){
|
||||
param(
|
||||
[parameter(Mandatory)][string]$TagName,
|
||||
[parameter()][string]$ParentTagName,
|
||||
[parameter()][string]$Color
|
||||
)
|
||||
update-taghash
|
||||
if($taghash[$TagName]){
|
||||
$mytag = $taghash[$tagname]
|
||||
if($color){
|
||||
try{
|
||||
$colorcode = ("{0:X}" -f [drawing.Color]::FromName($color).toargb() ).Substring(2)
|
||||
$mytag.color = "#$colorcode"
|
||||
} catch{
|
||||
$error[0]
|
||||
write-host "Color $color not found, not changing"
|
||||
}
|
||||
}
|
||||
if($taghash[$ParentTagName]){
|
||||
$mytag.parent = $taghash[$ParentTagName].id
|
||||
}
|
||||
$tagid=$mytag.id
|
||||
$mytag
|
||||
$topost=@{
|
||||
name=$mytag.name;
|
||||
id=$mytag.id;
|
||||
parent=$mytag.parent;
|
||||
color=$mytag.Color
|
||||
}
|
||||
Invoke-RestMethod -uri "$siteurl/api/tag/$tagid" -Headers $headers -Method POST -Body $topost -ContentType 'application/x-www-form-urlencoded'
|
||||
} else {
|
||||
write-host "$tagname not found"
|
||||
}
|
||||
}
|
||||
function Update-TagHash(){
|
||||
$taglist = Invoke-RestMethod -uri "$siteurl/api/tag/list" -Headers $headers -Method GET | select-object -ExpandProperty tags
|
||||
#if($taglist){write-host "Got tags"}
|
||||
$global:taghash=@{}
|
||||
foreach($tag in $taglist){
|
||||
$global:taghash.add($tag.name, @{ID=$tag.id;Name=$tag.name;Parent=$tag.parent;Color=$tag.color})
|
||||
$global:taghash.add($tag.id, @{ID=$tag.id;Name=$tag.name;Parent=$tag.parent;Color=$tag.color})
|
||||
}
|
||||
}
|
||||
function Attach-File(){
|
||||
param(
|
||||
$documentID,
|
||||
$fileID
|
||||
)
|
||||
foreach($file in @($fileID)){
|
||||
foreach($document in @($documentID)){
|
||||
$toattach=@{
|
||||
fileID=$file;
|
||||
id=$document
|
||||
}
|
||||
Invoke-RestMethod -uri "$siteurl/api/file/$file/attach" -Headers $headers -Method POST -Body $toattach -ContentType 'application/x-www-form-urlencoded'
|
||||
}
|
||||
}
|
||||
}
|
||||
function New-Document(){
|
||||
param(
|
||||
$title,
|
||||
$language='eng',
|
||||
#$tags='',
|
||||
$tag='',
|
||||
$file
|
||||
)
|
||||
if($file){
|
||||
$fileids= Add-File -Files $file
|
||||
}
|
||||
$tagid=$taghash[$tag].id
|
||||
$doctocreate=@{
|
||||
title=$title;
|
||||
language="eng";
|
||||
tags= $tagid;
|
||||
}
|
||||
$doctocreate
|
||||
$newdocid = (Invoke-RestMethod -uri "$siteurl/api/document" -Headers $headers -Method PUT -body $doctocreate -ContentType 'application/x-www-form-urlencoded').id
|
||||
attach-file -documentid $newdocid -fileid $fileids
|
||||
}
|
||||
Function Add-File(){
|
||||
param(
|
||||
$Files
|
||||
)
|
||||
$fileids = @()
|
||||
foreach($file in $files){
|
||||
if(test-path $file){
|
||||
$toupload = get-item $file
|
||||
$fileids += (Invoke-RestMethod -uri "$siteurl/api/file" -Headers $headers -Method PUT -form @{file=$toupload} -ContentType "multipart/form-data").id
|
||||
}
|
||||
}
|
||||
$fileids
|
||||
}
|
||||
$documentlist = Invoke-RestMethod -uri "$siteurl/api/document/list" -Headers $headers -Method GET | select-object -ExpandProperty documents
|
||||
if($documentlist){write-host "Got docs"}
|
||||
$filelist = Invoke-RestMethod -uri "$siteurl/api/file/list" -Headers $headers -Method GET |Select-Object -ExpandProperty Files
|
||||
if($filelist){write-host "Got files"}
|
||||
|
||||
$tagtocreate = @{
|
||||
name="testapitagcreate$(get-date -format "yyyyMMddssmm")";
|
||||
parent="";
|
||||
color='#3a87ad'
|
||||
}
|
||||
$newtagid = Invoke-RestMethod -uri "$siteurl/api/tag" -Headers $headers -Method PUT -body $tagtocreate -ContentType 'application/x-www-form-urlencoded'
|
||||
$doctocreate=@{
|
||||
title="testDoc";
|
||||
language="eng";
|
||||
}
|
||||
$newdocid = Invoke-RestMethod -uri "$siteurl/api/document" -Headers $headers -Method PUT -body $doctocreate -ContentType 'application/x-www-form-urlencoded'
|
||||
$logoutresponse = Invoke-webrequest -Uri "$siteurl/api/user/logout" -Headers $headers -Method POST
|
||||
if($logoutresponse.BaseResponse.StatusCode -eq 200){
|
||||
write-host "logged out successfully"
|
||||
|
Loading…
Reference in New Issue
Block a user