diff --git a/Intuit.QuickBase.Core/AddField.cs b/Intuit.QuickBase.Core/AddField.cs
index 9e0536d..fa62eba 100644
--- a/Intuit.QuickBase.Core/AddField.cs
+++ b/Intuit.QuickBase.Core/AddField.cs
@@ -37,9 +37,9 @@ public sealed class AddField : IQObject
///
///
///
- public AddField(string ticket, string appToken, string accountDomain, string dbid, string label, FieldType type, Mode mode)
+ public AddField(string ticket, string appToken, string accountDomain, string dbid, string label, FieldType type, Mode mode, string userToken = "")
{
- CommonConstruction(ticket, appToken, accountDomain, dbid, new AddFieldPayload(label, type, mode));
+ CommonConstruction(ticket, appToken, accountDomain, dbid, new AddFieldPayload(label, type, mode), userToken);
}
///
@@ -51,14 +51,22 @@ public AddField(string ticket, string appToken, string accountDomain, string dbi
/// Supply table-level dbid.
///
///
- public AddField(string ticket, string appToken, string accountDomain, string dbid, string label, FieldType type)
+ /// an optional user token that can be used instead of a ticket
+ public AddField(string ticket, string appToken, string accountDomain, string dbid, string label, FieldType type, string userToken = "")
{
- CommonConstruction(ticket, appToken, accountDomain, dbid, new AddFieldPayload(label, type));
+ CommonConstruction(ticket, appToken, accountDomain, dbid, new AddFieldPayload(label, type), userToken);
}
- private void CommonConstruction(string ticket, string appToken, string accountDomain, string dbid, Payload.Payload payload)
+ private void CommonConstruction(string ticket, string appToken, string accountDomain, string dbid, Payload.Payload payload, string userToken = "")
{
- _addFieldPayload = new ApplicationTicket(payload, ticket);
+ if (userToken.Length > 0)
+ {
+ _addFieldPayload = new ApplicationUserToken(payload, userToken);
+ }
+ else
+ {
+ _addFieldPayload = new ApplicationTicket(payload, ticket);
+ }
_addFieldPayload = new ApplicationToken(_addFieldPayload, appToken);
_addFieldPayload = new WrapPayload(_addFieldPayload);
_uri = new QUriDbid(accountDomain, dbid);
diff --git a/Intuit.QuickBase.Core/AddRecord.cs b/Intuit.QuickBase.Core/AddRecord.cs
index 981d7ef..3c52494 100644
--- a/Intuit.QuickBase.Core/AddRecord.cs
+++ b/Intuit.QuickBase.Core/AddRecord.cs
@@ -31,6 +31,7 @@ public class Builder
private List _fields;
internal string Ticket { get; set; }
+ internal string UserToken { get; set; }
internal string AppToken { get; set; }
internal string AccountDomain { get; set; }
internal string Dbid { get; set; }
@@ -47,15 +48,17 @@ internal List Fields
}
}
- public Builder(string ticket, string appToken, string accountDomain, string dbid, List fields)
+ public Builder(string ticket, string appToken, string accountDomain, string dbid, List fields, string userToken = "")
{
Ticket = ticket;
+ UserToken = userToken;
AppToken = appToken;
AccountDomain = accountDomain;
Dbid = dbid;
Fields = fields;
}
+
internal bool Disprec { get; private set; }
public Builder SetDisprec(bool val)
@@ -84,7 +87,14 @@ private AddRecord(Builder builder)
.SetDisprec(builder.Disprec)
.SetFform(builder.Fform)
.Build();
- _addRecordPayload = new ApplicationTicket(_addRecordPayload, builder.Ticket);
+ if (builder.UserToken.Length > 0)
+ {
+ _addRecordPayload = new ApplicationUserToken(_addRecordPayload, builder.UserToken);
+ }
+ else
+ {
+ _addRecordPayload = new ApplicationTicket(_addRecordPayload, builder.Ticket);
+ }
_addRecordPayload = new ApplicationToken(_addRecordPayload, builder.AppToken);
_addRecordPayload = new WrapPayload(_addRecordPayload);
_uri = new QUriDbid(builder.AccountDomain, builder.Dbid);
diff --git a/Intuit.QuickBase.Core/AddReplaceDBPage.cs b/Intuit.QuickBase.Core/AddReplaceDBPage.cs
index 8f6dda7..9946268 100644
--- a/Intuit.QuickBase.Core/AddReplaceDBPage.cs
+++ b/Intuit.QuickBase.Core/AddReplaceDBPage.cs
@@ -17,19 +17,26 @@ public class AddReplaceDBPage : IQObject
private Payload.Payload _addReplaceDBPagePayload;
private IQUri _uri;
- public AddReplaceDBPage(string ticket, string appToken, string accountDomain, string dbid, string pageName, PageType pageType, string pageBody)
+ public AddReplaceDBPage(string ticket, string appToken, string accountDomain, string dbid, string pageName, PageType pageType, string pageBody, string userToken = "")
{
- CommonConstruction(ticket, appToken, accountDomain, dbid, new AddReplaceDBPagePayload(pageName, pageType, pageBody));
+ CommonConstruction(ticket, appToken, accountDomain, dbid, new AddReplaceDBPagePayload(pageName, pageType, pageBody), userToken);
}
- public AddReplaceDBPage(string ticket, string appToken, string accountDomain, string dbid, int pageId, PageType pageType, string pageBody)
+ public AddReplaceDBPage(string ticket, string appToken, string accountDomain, string dbid, int pageId, PageType pageType, string pageBody, string userToken = "")
{
- CommonConstruction(ticket, appToken, accountDomain, dbid, new AddReplaceDBPagePayload(pageId, pageType, pageBody));
+ CommonConstruction(ticket, appToken, accountDomain, dbid, new AddReplaceDBPagePayload(pageId, pageType, pageBody), userToken);
}
- private void CommonConstruction(string ticket, string appToken, string accountDomain, string dbid, Payload.Payload payload)
+ private void CommonConstruction(string ticket, string appToken, string accountDomain, string dbid, Payload.Payload payload, string userToken = "")
{
- _addReplaceDBPagePayload = new ApplicationTicket(payload, ticket);
+ if (userToken.Length > 0)
+ {
+ _addReplaceDBPagePayload = new ApplicationUserToken(payload, userToken);
+ }
+ else
+ {
+ _addReplaceDBPagePayload = new ApplicationTicket(payload, ticket);
+ }
_addReplaceDBPagePayload = new ApplicationToken(_addReplaceDBPagePayload, appToken);
_addReplaceDBPagePayload = new WrapPayload(_addReplaceDBPagePayload);
_uri = new QUriDbid(accountDomain, dbid);
diff --git a/Intuit.QuickBase.Core/AddUserToRole.cs b/Intuit.QuickBase.Core/AddUserToRole.cs
index 98b71f3..1a185ce 100644
--- a/Intuit.QuickBase.Core/AddUserToRole.cs
+++ b/Intuit.QuickBase.Core/AddUserToRole.cs
@@ -17,10 +17,18 @@ public class AddUserToRole : IQObject
private readonly Payload.Payload _addUserToRolePayload;
private readonly IQUri _uri;
- public AddUserToRole(string ticket, string appToken, string accountDomain, string dbid, string userId, int roleId)
+ public AddUserToRole(string ticket, string appToken, string accountDomain, string dbid, string userId, int roleId, string userToken = "")
{
_addUserToRolePayload = new AddUserToRolePayload(userId, roleId);
- _addUserToRolePayload = new ApplicationTicket(_addUserToRolePayload, ticket);
+ //If a user token is provided, use it instead of a ticket
+ if (userToken.Length > 0)
+ {
+ _addUserToRolePayload = new ApplicationUserToken(_addUserToRolePayload, userToken);
+ }
+ else
+ {
+ _addUserToRolePayload = new ApplicationTicket(_addUserToRolePayload, ticket);
+ }
_addUserToRolePayload = new ApplicationToken(_addUserToRolePayload, appToken);
_addUserToRolePayload = new WrapPayload(_addUserToRolePayload);
_uri = new QUriDbid(accountDomain, dbid);
diff --git a/Intuit.QuickBase.Core/ChangeRecordOwner.cs b/Intuit.QuickBase.Core/ChangeRecordOwner.cs
index d7b4015..1c82cad 100644
--- a/Intuit.QuickBase.Core/ChangeRecordOwner.cs
+++ b/Intuit.QuickBase.Core/ChangeRecordOwner.cs
@@ -17,10 +17,18 @@ public class ChangeRecordOwner : IQObject
private readonly Payload.Payload _changeRecordOwnerPayload;
private readonly IQUri _uri;
- public ChangeRecordOwner(string ticket, string appToken, string accountDomain, string dbid, int rid, string newOwner)
+ public ChangeRecordOwner(string ticket, string appToken, string accountDomain, string dbid, int rid, string newOwner, string userToken = "")
{
_changeRecordOwnerPayload = new ChangeRecordOwnerPayload(rid, newOwner);
- _changeRecordOwnerPayload = new ApplicationTicket(_changeRecordOwnerPayload, ticket);
+ //If a user token is provided, use it instead of a ticket
+ if (userToken.Length > 0)
+ {
+ _changeRecordOwnerPayload = new ApplicationUserToken(_changeRecordOwnerPayload, userToken);
+ }
+ else
+ {
+ _changeRecordOwnerPayload = new ApplicationTicket(_changeRecordOwnerPayload, ticket);
+ }
_changeRecordOwnerPayload = new ApplicationToken(_changeRecordOwnerPayload, appToken);
_changeRecordOwnerPayload = new WrapPayload(_changeRecordOwnerPayload);
_uri = new QUriDbid(accountDomain, dbid);
diff --git a/Intuit.QuickBase.Core/ChangeUserRole.cs b/Intuit.QuickBase.Core/ChangeUserRole.cs
index 9a07c44..c9e2bd9 100644
--- a/Intuit.QuickBase.Core/ChangeUserRole.cs
+++ b/Intuit.QuickBase.Core/ChangeUserRole.cs
@@ -17,20 +17,28 @@ public class ChangeUserRole : IQObject
private Payload.Payload _changeUserRolePayload;
private IQUri _uri;
- public ChangeUserRole(string ticket, string appToken, string accountDomain, string dbid, string userId, int currentRoleId, int newRoldId)
+ public ChangeUserRole(string ticket, string appToken, string accountDomain, string dbid, string userId, int currentRoleId, int newRoldId, string userToken = "")
{
- CommonConstruction(ticket, appToken, accountDomain, dbid, new ChangeUserRolePayload(userId, currentRoleId, newRoldId));
+ CommonConstruction(ticket, appToken, accountDomain, dbid, new ChangeUserRolePayload(userId, currentRoleId, newRoldId), userToken);
}
- public ChangeUserRole(string ticket, string appToken, string accountDomain, string dbid, string userId, int currentRoleId)
+ public ChangeUserRole(string ticket, string appToken, string accountDomain, string dbid, string userId, int currentRoleId, string userToken = "")
{
- CommonConstruction(ticket, appToken, accountDomain, dbid, new ChangeUserRolePayload(userId, currentRoleId));
+ CommonConstruction(ticket, appToken, accountDomain, dbid, new ChangeUserRolePayload(userId, currentRoleId), userToken);
}
- private void CommonConstruction(string ticket, string appToken, string accountDomain, string dbid, Payload.Payload payload)
+ private void CommonConstruction(string ticket, string appToken, string accountDomain, string dbid, Payload.Payload payload, string userToken = "")
{
- _changeUserRolePayload = new ApplicationTicket(payload, ticket);
+ //If a user token is provided, use it instead of a ticket
+ if (userToken.Length > 0)
+ {
+ _changeUserRolePayload = new ApplicationUserToken(payload, userToken);
+ }
+ else
+ {
+ _changeUserRolePayload = new ApplicationTicket(payload, ticket);
+ }
_changeUserRolePayload = new ApplicationToken(_changeUserRolePayload, appToken);
_changeUserRolePayload = new WrapPayload(_changeUserRolePayload);
_uri = new QUriDbid(accountDomain, dbid);
diff --git a/Intuit.QuickBase.Core/CloneDatabase.cs b/Intuit.QuickBase.Core/CloneDatabase.cs
index 361940d..227dc1f 100644
--- a/Intuit.QuickBase.Core/CloneDatabase.cs
+++ b/Intuit.QuickBase.Core/CloneDatabase.cs
@@ -34,6 +34,7 @@ public class Builder
private string _newDBDesc;
internal string Ticket { get; set; }
+ internal string UserToken { get; set; }
internal string AppToken { get; set; }
internal string AccountDomain { get; set; }
internal string Dbid { get; set; }
@@ -65,9 +66,10 @@ internal string NewDBDesc
}
}
- public Builder(string ticket, string appToken, string accountDomain, string dbid, string newDBName, string newDBDesc)
+ public Builder(string ticket, string appToken, string accountDomain, string dbid, string newDBName, string newDBDesc, string userToken = "")
{
Ticket = ticket;
+ UserToken = userToken;
AppToken = appToken;
AccountDomain = accountDomain;
Dbid = dbid;
@@ -103,7 +105,15 @@ private CloneDatabase(Builder builder)
.SetKeepData(builder.KeepData)
.SetExcludeFiles(builder.ExcludeFiles)
.Build();
- _cloneDatabasePayload = new ApplicationTicket(_cloneDatabasePayload, builder.Ticket);
+ //If a user token is provided, use it instead of a ticket
+ if (builder.UserToken.Length > 0)
+ {
+ _cloneDatabasePayload = new ApplicationUserToken(_cloneDatabasePayload, builder.UserToken);
+ }
+ else
+ {
+ _cloneDatabasePayload = new ApplicationTicket(_cloneDatabasePayload, builder.Ticket);
+ }
_cloneDatabasePayload = new ApplicationToken(_cloneDatabasePayload, builder.AppToken);
_cloneDatabasePayload = new WrapPayload(_cloneDatabasePayload);
_uri = new QUriDbid(builder.AccountDomain, builder.Dbid);
diff --git a/Intuit.QuickBase.Core/CreateDatabase.cs b/Intuit.QuickBase.Core/CreateDatabase.cs
index 97028a7..046a812 100644
--- a/Intuit.QuickBase.Core/CreateDatabase.cs
+++ b/Intuit.QuickBase.Core/CreateDatabase.cs
@@ -46,10 +46,19 @@ public class CreateDatabase : IQObject
/// Supply a new application name.
/// Supply an application description.
/// Supply "true" to create a new token, "false" otherwise.
- public CreateDatabase(string ticket, string accountDomain, string dbName, string dbDesc, bool createAppToken)
+ /// a user token that can be used instead of a ticket
+ public CreateDatabase(string ticket, string accountDomain, string dbName, string dbDesc, bool createAppToken, string userToken = "")
{
_createDatabasePayload = new CreateDatabasePayload(dbName, dbDesc, createAppToken);
- _createDatabasePayload = new ApplicationTicket(_createDatabasePayload, ticket);
+ //If a user token is provided, use it instead of a ticket
+ if (userToken.Length > 0)
+ {
+ _createDatabasePayload = new ApplicationUserToken(_createDatabasePayload, userToken);
+ }
+ else
+ {
+ _createDatabasePayload = new ApplicationTicket(_createDatabasePayload, ticket);
+ }
_createDatabasePayload = new WrapPayload(_createDatabasePayload);
_uri = new QUriMain(accountDomain);
}
diff --git a/Intuit.QuickBase.Core/CreateTable.cs b/Intuit.QuickBase.Core/CreateTable.cs
index a6f2ccd..363a10e 100644
--- a/Intuit.QuickBase.Core/CreateTable.cs
+++ b/Intuit.QuickBase.Core/CreateTable.cs
@@ -30,13 +30,15 @@ public class CreateTable : IQObject
public class Builder
{
internal string Ticket { get; set; }
+ internal string UserToken { get; set; }
internal string AppToken { get; set; }
internal string AccountDomain { get; set; }
internal string Dbid { get; set; }
- public Builder(string ticket, string appToken, string accountDomain, string dbid)
+ public Builder(string ticket, string appToken, string accountDomain, string dbid, string userToken = "")
{
Ticket = ticket;
+ UserToken = userToken;
AppToken = appToken;
AccountDomain = accountDomain;
Dbid = dbid;
@@ -74,7 +76,15 @@ private CreateTable(Builder builder)
.SetTName(builder.TName)
.SetPNoun(builder.PNoun)
.Build();
- _createTablePayload = new ApplicationTicket(_createTablePayload, builder.Ticket);
+ //If a user token is provided, use it instead of a ticket
+ if (builder.UserToken.Length > 0)
+ {
+ _createTablePayload = new ApplicationUserToken(_createTablePayload, builder.UserToken);
+ }
+ else
+ {
+ _createTablePayload = new ApplicationTicket(_createTablePayload, builder.Ticket);
+ }
_createTablePayload = new ApplicationToken(_createTablePayload, builder.AppToken);
_createTablePayload = new WrapPayload(_createTablePayload);
_uri = new QUriDbid(builder.AccountDomain, builder.Dbid);
diff --git a/Intuit.QuickBase.Core/DeleteDatabase.cs b/Intuit.QuickBase.Core/DeleteDatabase.cs
index b9a39f1..2aa9db8 100644
--- a/Intuit.QuickBase.Core/DeleteDatabase.cs
+++ b/Intuit.QuickBase.Core/DeleteDatabase.cs
@@ -30,10 +30,19 @@ public class DeleteDatabase : IQObject
/// Supply application token that is assigned to your QuickBase Application. See QuickBase Online help to obtain an application token.
///
/// Supply application-level or table-level dbid.
- public DeleteDatabase(string ticket, string appToken, string accountDomain, string dbid)
+ /// optional user token that can be used instead of a ticket
+ public DeleteDatabase(string ticket, string appToken, string accountDomain, string dbid, string userToken = "")
{
_deleteDatabasePayload = new DeleteDatabasePayload();
- _deleteDatabasePayload = new ApplicationTicket(_deleteDatabasePayload, ticket);
+ //If a user token is provided, use it instead of a ticket
+ if (userToken.Length > 0)
+ {
+ _deleteDatabasePayload = new ApplicationUserToken(_deleteDatabasePayload, userToken);
+ }
+ else
+ {
+ _deleteDatabasePayload = new ApplicationTicket(_deleteDatabasePayload, ticket);
+ }
_deleteDatabasePayload = new ApplicationToken(_deleteDatabasePayload, appToken);
_deleteDatabasePayload = new WrapPayload(_deleteDatabasePayload);
_uri = new QUriDbid(accountDomain, dbid);
diff --git a/Intuit.QuickBase.Core/DeleteField.cs b/Intuit.QuickBase.Core/DeleteField.cs
index 7723585..96d615d 100644
--- a/Intuit.QuickBase.Core/DeleteField.cs
+++ b/Intuit.QuickBase.Core/DeleteField.cs
@@ -33,10 +33,19 @@ public class DeleteField : IQObject
///
/// Supply table-level dbid.
/// Supply a column object.
- public DeleteField(string ticket, string appToken, string accountDomain, string dbid, int fid)
+ /// optional user token that can be used instead of a ticket
+ public DeleteField(string ticket, string appToken, string accountDomain, string dbid, int fid, string userToken = "")
{
_deleteFieldPayload = new DeleteFieldPayload(fid);
- _deleteFieldPayload = new ApplicationTicket(_deleteFieldPayload, ticket);
+ //If a user token is provided, use it instead of a ticket
+ if (userToken.Length > 0)
+ {
+ _deleteFieldPayload = new ApplicationUserToken(_deleteFieldPayload, userToken);
+ }
+ else
+ {
+ _deleteFieldPayload = new ApplicationTicket(_deleteFieldPayload, ticket);
+ }
_deleteFieldPayload = new ApplicationToken(_deleteFieldPayload, appToken);
_deleteFieldPayload = new WrapPayload(_deleteFieldPayload);
_uri = new QUriDbid(accountDomain, dbid);
diff --git a/Intuit.QuickBase.Core/DeleteRecord.cs b/Intuit.QuickBase.Core/DeleteRecord.cs
index 01945ea..79f5f59 100644
--- a/Intuit.QuickBase.Core/DeleteRecord.cs
+++ b/Intuit.QuickBase.Core/DeleteRecord.cs
@@ -30,10 +30,19 @@ public class DeleteRecord : IQObject
///
/// Supply table-level dbid.
/// Supply a record object.
- public DeleteRecord(string ticket, string appToken, string accountDomain, string dbid, int rid)
+ /// optional user token that can be used instead of a ticket
+ public DeleteRecord(string ticket, string appToken, string accountDomain, string dbid, int rid, string userToken = "")
{
_deleteRecordPayload = new DeleteRecordPayload(rid);
- _deleteRecordPayload = new ApplicationTicket(_deleteRecordPayload, ticket);
+ //If a user token is provided, use it instead of a ticket
+ if (userToken.Length > 0)
+ {
+ _deleteRecordPayload = new ApplicationUserToken(_deleteRecordPayload, userToken);
+ }
+ else
+ {
+ _deleteRecordPayload = new ApplicationTicket(_deleteRecordPayload, ticket);
+ }
_deleteRecordPayload = new ApplicationToken(_deleteRecordPayload, appToken);
_deleteRecordPayload = new WrapPayload(_deleteRecordPayload);
_uri = new QUriDbid(accountDomain, dbid);
diff --git a/Intuit.QuickBase.Core/DoQuery.cs b/Intuit.QuickBase.Core/DoQuery.cs
index 109b620..1716f71 100644
--- a/Intuit.QuickBase.Core/DoQuery.cs
+++ b/Intuit.QuickBase.Core/DoQuery.cs
@@ -29,18 +29,21 @@ public class DoQuery : IQObject
public class Builder
{
internal string Ticket { get; set; }
+ internal string UserToken { get; set; }
internal string AppToken { get; set; }
internal string AccountDomain { get; set; }
internal string Dbid { get; set; }
- public Builder(string ticket, string appToken, string accountDomain, string dbid)
+ public Builder(string ticket, string appToken, string accountDomain, string dbid, string userToken = "")
{
Ticket = ticket;
+ UserToken = userToken;
AppToken = appToken;
AccountDomain = accountDomain;
Dbid = dbid;
}
+
internal string Query { get; private set; }
public Builder SetQuery(string val)
@@ -125,7 +128,15 @@ private DoQuery(Builder builder)
.SetFmt(builder.Fmt)
.SetOptions(builder.Options)
.Build();
- _doQueryPayload = new ApplicationTicket(_doQueryPayload, builder.Ticket);
+ //If a user token is provided, use it instead of a ticket
+ if (builder.UserToken.Length > 0)
+ {
+ _doQueryPayload = new ApplicationUserToken(_doQueryPayload, builder.UserToken);
+ }
+ else
+ {
+ _doQueryPayload = new ApplicationTicket(_doQueryPayload, builder.Ticket);
+ }
_doQueryPayload = new ApplicationToken(_doQueryPayload, builder.AppToken);
_doQueryPayload = new WrapPayload(_doQueryPayload);
_uri = new QUriDbid(builder.AccountDomain, builder.Dbid);
diff --git a/Intuit.QuickBase.Core/DoQueryCount.cs b/Intuit.QuickBase.Core/DoQueryCount.cs
index f1395ca..0ba965a 100644
--- a/Intuit.QuickBase.Core/DoQueryCount.cs
+++ b/Intuit.QuickBase.Core/DoQueryCount.cs
@@ -21,13 +21,15 @@ public class DoQueryCount : IQObject
public class Builder
{
internal string Ticket { get; set; }
+ internal string UserToken { get; set; }
internal string AppToken { get; set; }
internal string AccountDomain { get; set; }
internal string Dbid { get; set; }
- public Builder(string ticket, string appToken, string accountDomain, string dbid)
+ public Builder(string ticket, string appToken, string accountDomain, string dbid, string userToken = "")
{
Ticket = ticket;
+ UserToken = userToken;
AppToken = appToken;
AccountDomain = accountDomain;
Dbid = dbid;
@@ -75,7 +77,15 @@ private DoQueryCount(Builder builder)
.SetQid(builder.Qid)
.SetQName(builder.QName)
.Build();
- _doQueryCountPayload = new ApplicationTicket(_doQueryCountPayload, builder.Ticket);
+ //If a user token is provided, use it instead of a ticket
+ if (builder.UserToken.Length > 0)
+ {
+ _doQueryCountPayload = new ApplicationUserToken(_doQueryCountPayload, builder.UserToken);
+ }
+ else
+ {
+ _doQueryCountPayload = new ApplicationTicket(_doQueryCountPayload, builder.Ticket);
+ }
_doQueryCountPayload = new ApplicationToken(_doQueryCountPayload, builder.AppToken);
_doQueryCountPayload = new WrapPayload(_doQueryCountPayload);
_uri = new QUriDbid(builder.AccountDomain, builder.Dbid);
diff --git a/Intuit.QuickBase.Core/DownloadFile.cs b/Intuit.QuickBase.Core/DownloadFile.cs
index e8b710e..a9c8190 100644
--- a/Intuit.QuickBase.Core/DownloadFile.cs
+++ b/Intuit.QuickBase.Core/DownloadFile.cs
@@ -12,6 +12,7 @@ namespace Intuit.QuickBase.Core
public class DownloadFile
{
private string _ticket;
+ private string _userToken;
private string _accountDomain;
private string _path;
private string _file;
@@ -20,14 +21,15 @@ public class DownloadFile
private int _fieldId;
private int _versionId;
- public DownloadFile(string ticket, string accountDomain, string path, string file, string tableId, int recordId, int fieldId)
- : this(ticket, accountDomain, path, file, tableId, recordId, fieldId, 0)
+ public DownloadFile(string ticket, string accountDomain, string path, string file, string tableId, int recordId, int fieldId, string userToken = "")
+ : this(ticket, accountDomain, path, file, tableId, recordId, fieldId, 0, userToken)
{
}
- public DownloadFile(string ticket, string accountDomain, string path, string file, string tableId, int recordId, int fieldId, int versionId)
+ public DownloadFile(string ticket, string accountDomain, string path, string file, string tableId, int recordId, int fieldId, int versionId, string userToken = "")
{
Ticket = ticket;
+ UserToken = userToken;
AccountDomain = accountDomain;
Path = path;
File = file;
@@ -48,6 +50,17 @@ public string Ticket
}
}
+ public string UserToken
+ {
+ get { return _userToken; }
+ set
+ {
+ if (value == null) throw new ArgumentNullException("usertoken");
+ if (value.Trim() == String.Empty) throw new ArgumentException("usertoken");
+ _userToken = value;
+ }
+ }
+
public string AccountDomain
{
get { return _accountDomain; }
diff --git a/Intuit.QuickBase.Core/EditRecord.cs b/Intuit.QuickBase.Core/EditRecord.cs
index e8e5499..c9634a0 100644
--- a/Intuit.QuickBase.Core/EditRecord.cs
+++ b/Intuit.QuickBase.Core/EditRecord.cs
@@ -31,6 +31,7 @@ public class Builder
private int _rid;
internal string Ticket { get; set; }
+ internal string UserToken { get; set; }
internal string AppToken { get; set; }
internal string AccountDomain { get; set; }
internal string Dbid { get; set; }
@@ -59,9 +60,10 @@ internal List Fields
}
}
- public Builder(string ticket, string appToken, string accountDomain, string dbid, int rid, List fields)
+ public Builder(string ticket, string appToken, string accountDomain, string dbid, int rid, List fields, string userToken = "")
{
Ticket = ticket;
+ UserToken = userToken;
AppToken = appToken;
AccountDomain = accountDomain;
Dbid = dbid;
@@ -106,7 +108,15 @@ private EditRecord(Builder builder)
.SetDisprec(builder.Disprec)
.SetFform(builder.Fform)
.Build();
- _editRecordPayload = new ApplicationTicket(_editRecordPayload, builder.Ticket);
+ //If a user token is provided, use it instead of a ticket
+ if (builder.UserToken.Length > 0)
+ {
+ _editRecordPayload = new ApplicationUserToken(_editRecordPayload, builder.UserToken);
+ }
+ else
+ {
+ _editRecordPayload = new ApplicationTicket(_editRecordPayload, builder.Ticket);
+ }
_editRecordPayload = new ApplicationToken(_editRecordPayload, builder.AppToken);
_editRecordPayload = new WrapPayload(_editRecordPayload);
_uri = new QUriDbid(builder.AccountDomain, builder.Dbid);
diff --git a/Intuit.QuickBase.Core/FieldAddChoices.cs b/Intuit.QuickBase.Core/FieldAddChoices.cs
index 5ad7a78..aa884b4 100644
--- a/Intuit.QuickBase.Core/FieldAddChoices.cs
+++ b/Intuit.QuickBase.Core/FieldAddChoices.cs
@@ -18,10 +18,18 @@ public class FieldAddChoices : IQObject
private readonly Payload.Payload _fieldAddChoicesPayload;
private readonly IQUri _uri;
- public FieldAddChoices(string ticket, string appToken, string accountDomain, string dbid, int fid, List choices)
+ public FieldAddChoices(string ticket, string appToken, string accountDomain, string dbid, int fid, List choices, string userToken = "")
{
_fieldAddChoicesPayload = new FieldChoicesPayload(fid, choices);
- _fieldAddChoicesPayload = new ApplicationTicket(_fieldAddChoicesPayload, ticket);
+ //If a user token is provided, use it instead of a ticket
+ if (userToken.Length > 0)
+ {
+ _fieldAddChoicesPayload = new ApplicationUserToken(_fieldAddChoicesPayload, userToken);
+ }
+ else
+ {
+ _fieldAddChoicesPayload = new ApplicationTicket(_fieldAddChoicesPayload, ticket);
+ }
_fieldAddChoicesPayload = new ApplicationToken(_fieldAddChoicesPayload, appToken);
_fieldAddChoicesPayload = new WrapPayload(_fieldAddChoicesPayload);
_uri = new QUriDbid(accountDomain, dbid);
diff --git a/Intuit.QuickBase.Core/FieldRemoveChoices.cs b/Intuit.QuickBase.Core/FieldRemoveChoices.cs
index 7a0ab65..17cf340 100644
--- a/Intuit.QuickBase.Core/FieldRemoveChoices.cs
+++ b/Intuit.QuickBase.Core/FieldRemoveChoices.cs
@@ -18,10 +18,18 @@ public class FieldRemoveChoices : IQObject
private readonly Payload.Payload _fieldAddChoicesPayload;
private readonly IQUri _uri;
- public FieldRemoveChoices(string ticket, string appToken, string accountDomain, string dbid, int fid, List choices)
+ public FieldRemoveChoices(string ticket, string appToken, string accountDomain, string dbid, int fid, List choices, string userToken = "")
{
_fieldAddChoicesPayload = new FieldChoicesPayload(fid, choices);
- _fieldAddChoicesPayload = new ApplicationTicket(_fieldAddChoicesPayload, ticket);
+ //If a user token is provided, use it instead of a ticket
+ if (userToken.Length > 0)
+ {
+ _fieldAddChoicesPayload = new ApplicationUserToken(_fieldAddChoicesPayload, userToken);
+ }
+ else
+ {
+ _fieldAddChoicesPayload = new ApplicationTicket(_fieldAddChoicesPayload, ticket);
+ }
_fieldAddChoicesPayload = new ApplicationToken(_fieldAddChoicesPayload, appToken);
_fieldAddChoicesPayload = new WrapPayload(_fieldAddChoicesPayload);
_uri = new QUriDbid(accountDomain, dbid);
diff --git a/Intuit.QuickBase.Core/FindDBByName.cs b/Intuit.QuickBase.Core/FindDBByName.cs
index bb2266f..a64f66e 100644
--- a/Intuit.QuickBase.Core/FindDBByName.cs
+++ b/Intuit.QuickBase.Core/FindDBByName.cs
@@ -28,10 +28,19 @@ public class FindDbByName : IQObject
/// Supply auth ticket for application access. See com.intuit.quickbase.API_Authenticate class to obtain a ticket.
///
/// Supply application name to search for.
- public FindDbByName(string ticket, string accountDomain, string dbName)
+ /// option user token that can be used instead of ticket
+ public FindDbByName(string ticket, string accountDomain, string dbName, string userToken = "")
{
_findDbByNamePayload = new FindDbByNamePayload(dbName);
- _findDbByNamePayload = new ApplicationTicket(_findDbByNamePayload, ticket);
+ //If a user token is provided, use it instead of a ticket
+ if (userToken.Length > 0)
+ {
+ _findDbByNamePayload = new ApplicationUserToken(_findDbByNamePayload, userToken);
+ }
+ else
+ {
+ _findDbByNamePayload = new ApplicationTicket(_findDbByNamePayload, ticket);
+ }
_findDbByNamePayload = new WrapPayload(_findDbByNamePayload);
_uri = new QUriMain(accountDomain);
}
diff --git a/Intuit.QuickBase.Core/GenResultsTable.cs b/Intuit.QuickBase.Core/GenResultsTable.cs
index a567ffa..2c46965 100644
--- a/Intuit.QuickBase.Core/GenResultsTable.cs
+++ b/Intuit.QuickBase.Core/GenResultsTable.cs
@@ -21,13 +21,15 @@ public class GenResultsTable : IQObject
public class Builder
{
internal string Ticket { get; set; }
+ internal string UserToken { get; set; }
internal string AppToken { get; set; }
internal string AccountDomain { get; set; }
internal string Dbid { get; set; }
- public Builder(string ticket, string appToken, string accountDomain, string dbid)
+ public Builder(string ticket, string appToken, string accountDomain, string dbid, string userToken = "")
{
Ticket = ticket;
+ UserToken = userToken;
AppToken = appToken;
AccountDomain = accountDomain;
Dbid = dbid;
@@ -117,7 +119,15 @@ private GenResultsTable(Builder builder)
.SetFmt(builder.Fmt)
.SetOptions(builder.Options)
.Build();
- _doQueryPayload = new ApplicationTicket(_doQueryPayload, builder.Ticket);
+ //If a user token is provided, use it instead of a ticket
+ if (builder.UserToken.Length > 0)
+ {
+ _doQueryPayload = new ApplicationUserToken(_doQueryPayload, builder.UserToken);
+ }
+ else
+ {
+ _doQueryPayload = new ApplicationTicket(_doQueryPayload, builder.Ticket);
+ }
_doQueryPayload = new ApplicationToken(_doQueryPayload, builder.AppToken);
_doQueryPayload = new WrapPayload(_doQueryPayload);
_uri = new QUriDbid(builder.AccountDomain, builder.Dbid);
diff --git a/Intuit.QuickBase.Core/GetDBInfo.cs b/Intuit.QuickBase.Core/GetDBInfo.cs
index 43a9895..0ebffbc 100644
--- a/Intuit.QuickBase.Core/GetDBInfo.cs
+++ b/Intuit.QuickBase.Core/GetDBInfo.cs
@@ -30,10 +30,19 @@ public class GetDbInfo : IQObject
/// Supply application token that is assigned to your QuickBase Application. See QuickBase Online help to obtain an application token.
///
/// Supply application-level or table-level dbid.
- public GetDbInfo(string ticket, string appToken, string accountDomain, string dbid)
+ /// option user token that can be used instead of a ticket
+ public GetDbInfo(string ticket, string appToken, string accountDomain, string dbid, string userToken = "")
{
_getDbInfoPayload = new GetDbInfoPayload();
- _getDbInfoPayload = new ApplicationTicket(_getDbInfoPayload, ticket);
+ //If a user token is provided, use it instead of a ticket
+ if (userToken.Length > 0)
+ {
+ _getDbInfoPayload = new ApplicationUserToken(_getDbInfoPayload, userToken);
+ }
+ else
+ {
+ _getDbInfoPayload = new ApplicationTicket(_getDbInfoPayload, ticket);
+ }
_getDbInfoPayload = new ApplicationToken(_getDbInfoPayload, appToken);
_getDbInfoPayload = new WrapPayload(_getDbInfoPayload);
_uri = new QUriDbid(accountDomain, dbid);
diff --git a/Intuit.QuickBase.Core/GetDBPage.cs b/Intuit.QuickBase.Core/GetDBPage.cs
index 76b929d..4e527b5 100644
--- a/Intuit.QuickBase.Core/GetDBPage.cs
+++ b/Intuit.QuickBase.Core/GetDBPage.cs
@@ -17,10 +17,18 @@ public class GetDBPage : IQObject
private readonly Payload.Payload _getDbPagePayload;
private readonly IQUri _uri;
- public GetDBPage(string ticket, string appToken, string accountDomain, string dbid, int pageId)
+ public GetDBPage(string ticket, string appToken, string accountDomain, string dbid, int pageId, string userToken = "")
{
_getDbPagePayload = new GetDBPagePayload(pageId);
- _getDbPagePayload = new ApplicationTicket(_getDbPagePayload, ticket);
+ //If a user token is provided, use it instead of a ticket
+ if (userToken.Length > 0)
+ {
+ _getDbPagePayload = new ApplicationUserToken(_getDbPagePayload, userToken);
+ }
+ else
+ {
+ _getDbPagePayload = new ApplicationTicket(_getDbPagePayload, ticket);
+ }
_getDbPagePayload = new ApplicationToken(_getDbPagePayload, appToken);
_getDbPagePayload = new WrapPayload(_getDbPagePayload);
_uri = new QUriDbid(accountDomain, dbid);
diff --git a/Intuit.QuickBase.Core/GetDBvar.cs b/Intuit.QuickBase.Core/GetDBvar.cs
index f9623ac..7992da1 100644
--- a/Intuit.QuickBase.Core/GetDBvar.cs
+++ b/Intuit.QuickBase.Core/GetDBvar.cs
@@ -17,10 +17,18 @@ public class GetDBvar : IQObject
private readonly Payload.Payload _getDBvarPayload;
private readonly IQUri _uri;
- public GetDBvar(string ticket, string appToken, string accountDomain, string dbid, string varName)
+ public GetDBvar(string ticket, string appToken, string accountDomain, string dbid, string varName, string userToken = "")
{
_getDBvarPayload = new GetDBvarPayload(varName);
- _getDBvarPayload = new ApplicationTicket(_getDBvarPayload, ticket);
+ //If a user token is provided, use it instead of a ticket
+ if (userToken.Length > 0)
+ {
+ _getDBvarPayload = new ApplicationUserToken(_getDBvarPayload, userToken);
+ }
+ else
+ {
+ _getDBvarPayload = new ApplicationTicket(_getDBvarPayload, ticket);
+ }
_getDBvarPayload = new ApplicationToken(_getDBvarPayload, appToken);
_getDBvarPayload = new WrapPayload(_getDBvarPayload);
_uri = new QUriDbid(accountDomain, dbid);
diff --git a/Intuit.QuickBase.Core/GetNumRecords.cs b/Intuit.QuickBase.Core/GetNumRecords.cs
index 7272150..07e96b9 100644
--- a/Intuit.QuickBase.Core/GetNumRecords.cs
+++ b/Intuit.QuickBase.Core/GetNumRecords.cs
@@ -28,10 +28,19 @@ public class GetNumRecords : IQObject
/// Supply application token that is assigned to your QuickBase Application. See QuickBase Online help to obtain an application token.
///
/// Supply table-level dbid.
- public GetNumRecords(string ticket, string appToken, string accountDomain, string dbid)
+ /// option user token the can be used instead of a ticket
+ public GetNumRecords(string ticket, string appToken, string accountDomain, string dbid, string userToken = "")
{
_getNumRecordsPayload = new GetNumRecordsPayload();
- _getNumRecordsPayload = new ApplicationTicket(_getNumRecordsPayload, ticket);
+ //If a user token is provided, use it instead of a ticket
+ if (userToken.Length > 0)
+ {
+ _getNumRecordsPayload = new ApplicationUserToken(_getNumRecordsPayload, userToken);
+ }
+ else
+ {
+ _getNumRecordsPayload = new ApplicationTicket(_getNumRecordsPayload, ticket);
+ }
_getNumRecordsPayload = new ApplicationToken(_getNumRecordsPayload, appToken);
_getNumRecordsPayload = new WrapPayload(_getNumRecordsPayload);
_uri = new QUriDbid(accountDomain, dbid);
diff --git a/Intuit.QuickBase.Core/GetRecordAsHTML.cs b/Intuit.QuickBase.Core/GetRecordAsHTML.cs
index 6275eec..d57f0c6 100644
--- a/Intuit.QuickBase.Core/GetRecordAsHTML.cs
+++ b/Intuit.QuickBase.Core/GetRecordAsHTML.cs
@@ -17,19 +17,27 @@ public class GetRecordAsHtml : IQObject
private Payload.Payload _getRecordAsHtmlPayload;
private IQUri _uri;
- public GetRecordAsHtml(string ticket, string appToken, string accountDomain, string dbid, int rid, bool jht)
+ public GetRecordAsHtml(string ticket, string appToken, string accountDomain, string dbid, int rid, bool jht, string userToken = "")
{
- CommonConstruction(ticket, appToken, accountDomain, dbid, new GetRecordAsHtmlPayload(rid, jht));
+ CommonConstruction(ticket, appToken, accountDomain, dbid, new GetRecordAsHtmlPayload(rid, jht), userToken);
}
- public GetRecordAsHtml(string ticket, string appToken, string accountDomain, string dbid, int rid)
+ public GetRecordAsHtml(string ticket, string appToken, string accountDomain, string dbid, int rid, string userToken = "")
{
- CommonConstruction(ticket, appToken, accountDomain, dbid, new GetRecordAsHtmlPayload(rid));
+ CommonConstruction(ticket, appToken, accountDomain, dbid, new GetRecordAsHtmlPayload(rid), userToken);
}
- private void CommonConstruction(string ticket, string appToken, string accountDomain, string dbid, Payload.Payload payload)
+ private void CommonConstruction(string ticket, string appToken, string accountDomain, string dbid, Payload.Payload payload, string userToken = "")
{
- _getRecordAsHtmlPayload = new ApplicationTicket(payload, ticket);
+ //If a user token is provided, use it instead of a ticket
+ if (userToken.Length > 0)
+ {
+ _getRecordAsHtmlPayload = new ApplicationUserToken(payload, userToken);
+ }
+ else
+ {
+ _getRecordAsHtmlPayload = new ApplicationTicket(payload, ticket);
+ }
_getRecordAsHtmlPayload = new ApplicationToken(_getRecordAsHtmlPayload, appToken);
_getRecordAsHtmlPayload = new WrapPayload(_getRecordAsHtmlPayload);
_uri = new QUriDbid(accountDomain, dbid);
diff --git a/Intuit.QuickBase.Core/GetRecordInfo.cs b/Intuit.QuickBase.Core/GetRecordInfo.cs
index 7cf528f..f6be13d 100644
--- a/Intuit.QuickBase.Core/GetRecordInfo.cs
+++ b/Intuit.QuickBase.Core/GetRecordInfo.cs
@@ -30,10 +30,19 @@ public class GetRecordInfo : IQObject
///
/// Supply table-level dbid.
/// Supply a record object.
- public GetRecordInfo(string ticket, string appToken, string accountDomain, string dbid, int rid)
+ /// option user token that can be used instead of a ticket
+ public GetRecordInfo(string ticket, string appToken, string accountDomain, string dbid, int rid, string userToken = "")
{
_getRecordInfoPayload = new GetRecordInfoPayload(rid);
- _getRecordInfoPayload = new ApplicationTicket(_getRecordInfoPayload, ticket);
+ //If a user token is provided, use it instead of a ticket
+ if (userToken.Length > 0)
+ {
+ _getRecordInfoPayload = new ApplicationUserToken(_getRecordInfoPayload, userToken);
+ }
+ else
+ {
+ _getRecordInfoPayload = new ApplicationTicket(_getRecordInfoPayload, ticket);
+ }
_getRecordInfoPayload = new ApplicationToken(_getRecordInfoPayload, appToken);
_getRecordInfoPayload = new WrapPayload(_getRecordInfoPayload);
_uri = new QUriDbid(accountDomain, dbid);
diff --git a/Intuit.QuickBase.Core/GetRoleInfo.cs b/Intuit.QuickBase.Core/GetRoleInfo.cs
index 29615b5..0d02bf8 100644
--- a/Intuit.QuickBase.Core/GetRoleInfo.cs
+++ b/Intuit.QuickBase.Core/GetRoleInfo.cs
@@ -17,10 +17,18 @@ public class GetRoleInfo : IQObject
private readonly Payload.Payload _getRoleInfoPayload;
private readonly IQUri _uri;
- public GetRoleInfo(string ticket, string appToken, string accountDomain, string dbid)
+ public GetRoleInfo(string ticket, string appToken, string accountDomain, string dbid, string userToken = "")
{
_getRoleInfoPayload = new GetRoleInfoPayload();
- _getRoleInfoPayload = new ApplicationTicket(_getRoleInfoPayload, ticket);
+ //If a user token is provided, use it instead of a ticket
+ if (userToken.Length > 0)
+ {
+ _getRoleInfoPayload = new ApplicationUserToken(_getRoleInfoPayload, userToken);
+ }
+ else
+ {
+ _getRoleInfoPayload = new ApplicationTicket(_getRoleInfoPayload, ticket);
+ }
_getRoleInfoPayload = new ApplicationToken(_getRoleInfoPayload, appToken);
_getRoleInfoPayload = new WrapPayload(_getRoleInfoPayload);
_uri = new QUriDbid(accountDomain, dbid);
diff --git a/Intuit.QuickBase.Core/GetSchema.cs b/Intuit.QuickBase.Core/GetSchema.cs
index 9b7c321..0c335c1 100644
--- a/Intuit.QuickBase.Core/GetSchema.cs
+++ b/Intuit.QuickBase.Core/GetSchema.cs
@@ -30,10 +30,19 @@ public class GetSchema : IQObject
/// Supply application token that is assigned to your QuickBase Application. See QuickBase Online help to obtain an application token.
///
/// Supply application-level or table-level dbid.
- public GetSchema(string ticket, string appToken, string accountDomain, string dbid)
+ /// optional user token that can be used instead of a ticket
+ public GetSchema(string ticket, string appToken, string accountDomain, string dbid, string userToken = "")
{
_getRecordInfoPayload = new GetSchemaPayload();
- _getRecordInfoPayload = new ApplicationTicket(_getRecordInfoPayload, ticket);
+ //If a user token is provided, use it instead of a ticket
+ if (userToken.Length > 0)
+ {
+ _getRecordInfoPayload = new ApplicationUserToken(_getRecordInfoPayload, userToken);
+ }
+ else
+ {
+ _getRecordInfoPayload = new ApplicationTicket(_getRecordInfoPayload, ticket);
+ }
_getRecordInfoPayload = new ApplicationToken(_getRecordInfoPayload, appToken);
_getRecordInfoPayload = new WrapPayload(_getRecordInfoPayload);
_uri = new QUriDbid(accountDomain, dbid);
diff --git a/Intuit.QuickBase.Core/GetUserInfo.cs b/Intuit.QuickBase.Core/GetUserInfo.cs
index f2e6dac..e1ef83e 100644
--- a/Intuit.QuickBase.Core/GetUserInfo.cs
+++ b/Intuit.QuickBase.Core/GetUserInfo.cs
@@ -17,19 +17,27 @@ public class GetUserInfo : IQObject
private Payload.Payload _getUserInfoPayload;
private IQUri _uri;
- public GetUserInfo(string ticket, string appToken, string accountDomain, string email)
+ public GetUserInfo(string ticket, string appToken, string accountDomain, string email, string userToken = "")
{
- CommonConstruction(ticket, appToken, accountDomain, new GetUserInfoPayload(email));
+ CommonConstruction(ticket, appToken, accountDomain, new GetUserInfoPayload(email), userToken);
}
- public GetUserInfo(string ticket, string appToken, string accountDomain)
+ public GetUserInfo(string ticket, string appToken, string accountDomain, string userToken = "")
{
- CommonConstruction(ticket, appToken, accountDomain, new GetUserInfoPayload());
+ CommonConstruction(ticket, appToken, accountDomain, new GetUserInfoPayload(), userToken);
}
- private void CommonConstruction(string ticket, string appToken, string accountDomain, Payload.Payload payload)
+ private void CommonConstruction(string ticket, string appToken, string accountDomain, Payload.Payload payload, string userToken = "")
{
- _getUserInfoPayload = new ApplicationTicket(payload, ticket);
+ //If a user token is provided, use it instead of a ticket
+ if (userToken.Length > 0)
+ {
+ _getUserInfoPayload = new ApplicationUserToken(payload, userToken);
+ }
+ else
+ {
+ _getUserInfoPayload = new ApplicationTicket(payload, ticket);
+ }
_getUserInfoPayload = new ApplicationToken(_getUserInfoPayload, appToken);
_getUserInfoPayload = new WrapPayload(_getUserInfoPayload);
_uri = new QUriMain(accountDomain);
diff --git a/Intuit.QuickBase.Core/GetUserRole.cs b/Intuit.QuickBase.Core/GetUserRole.cs
index 233eff6..4edede0 100644
--- a/Intuit.QuickBase.Core/GetUserRole.cs
+++ b/Intuit.QuickBase.Core/GetUserRole.cs
@@ -17,10 +17,18 @@ public class GetUserRole : IQObject
private readonly Payload.Payload _getUserRolePayload;
private readonly IQUri _uri;
- public GetUserRole(string ticket, string appToken, string accountDomain, string dbid, string userId)
+ public GetUserRole(string ticket, string appToken, string accountDomain, string dbid, string userId, string userToken = "")
{
_getUserRolePayload = new GetUserRolePayload(userId);
- _getUserRolePayload = new ApplicationTicket(_getUserRolePayload, ticket);
+ //If a user token is provided, use it instead of a ticket
+ if (userToken.Length > 0)
+ {
+ _getUserRolePayload = new ApplicationUserToken(_getUserRolePayload, userToken);
+ }
+ else
+ {
+ _getUserRolePayload = new ApplicationTicket(_getUserRolePayload, ticket);
+ }
_getUserRolePayload = new ApplicationToken(_getUserRolePayload, appToken);
_getUserRolePayload = new WrapPayload(_getUserRolePayload);
_uri = new QUriDbid(accountDomain, dbid);
diff --git a/Intuit.QuickBase.Core/GrantedDBs.cs b/Intuit.QuickBase.Core/GrantedDBs.cs
index 98abbc2..c80547b 100644
--- a/Intuit.QuickBase.Core/GrantedDBs.cs
+++ b/Intuit.QuickBase.Core/GrantedDBs.cs
@@ -20,12 +20,14 @@ public class GrantedDBs : IQObject
public class Builder
{
internal string Ticket { get; set; }
+ internal string UserToken { get; set; }
internal string AppToken { get; set; }
internal string AccountDomain { get; set; }
- public Builder(string ticket, string appToken, string accountDomain)
+ public Builder(string ticket, string appToken, string accountDomain, string userToken = "")
{
Ticket = ticket;
+ UserToken = userToken;
AppToken = appToken;
AccountDomain = accountDomain;
}
@@ -67,7 +69,15 @@ private GrantedDBs(Builder builder)
.SetWithEmbeddedTables(builder.WithEmbeddedTables)
.SetAdminOnly(builder.AdminOnly)
.Build();
- _grantDBsPayload = new ApplicationTicket(_grantDBsPayload, builder.Ticket);
+ //If a user token is provided, use it instead of a ticket
+ if (builder.UserToken.Length > 0)
+ {
+ _grantDBsPayload = new ApplicationUserToken(_grantDBsPayload, builder.UserToken);
+ }
+ else
+ {
+ _grantDBsPayload = new ApplicationTicket(_grantDBsPayload, builder.Ticket);
+ }
_grantDBsPayload = new ApplicationToken(_grantDBsPayload, builder.AppToken);
_grantDBsPayload = new WrapPayload(_grantDBsPayload);
_uri = new QUriMain(builder.AccountDomain);
diff --git a/Intuit.QuickBase.Core/ImportFromCSV.cs b/Intuit.QuickBase.Core/ImportFromCSV.cs
index d499554..8d4d466 100644
--- a/Intuit.QuickBase.Core/ImportFromCSV.cs
+++ b/Intuit.QuickBase.Core/ImportFromCSV.cs
@@ -23,6 +23,7 @@ public class Builder
private string _recordsCsv;
internal string Ticket { get; set; }
+ internal string UserToken { get; set; }
internal string AppToken { get; set; }
internal string AccountDomain { get; set; }
internal string Dbid { get; set; }
@@ -40,9 +41,10 @@ internal string RecordsCsv
}
}
- public Builder(string ticket, string appToken, string accountDomain, string dbid, string recordsCsv)
+ public Builder(string ticket, string appToken, string accountDomain, string dbid, string recordsCsv, string userToken = "")
{
Ticket = ticket;
+ UserToken = userToken;
AppToken = appToken;
AccountDomain = accountDomain;
Dbid = dbid;
@@ -79,7 +81,15 @@ private ImportFromCSV(Builder builder)
.SetCList(builder.CList)
.SetSkipFirst(builder.SkipFirst)
.Build();
- _importFromCSVPayload = new ApplicationTicket(_importFromCSVPayload, builder.Ticket);
+ //If a user token is provided, use it instead of a ticket
+ if (builder.UserToken.Length > 0)
+ {
+ _importFromCSVPayload = new ApplicationUserToken(_importFromCSVPayload, builder.UserToken);
+ }
+ else
+ {
+ _importFromCSVPayload = new ApplicationTicket(_importFromCSVPayload, builder.Ticket);
+ }
_importFromCSVPayload = new ApplicationToken(_importFromCSVPayload, builder.AppToken);
_importFromCSVPayload = new WrapPayload(_importFromCSVPayload);
_uri = new QUriDbid(builder.AccountDomain, builder.Dbid);
diff --git a/Intuit.QuickBase.Core/ProvisionUser.cs b/Intuit.QuickBase.Core/ProvisionUser.cs
index 384925a..e7946bd 100644
--- a/Intuit.QuickBase.Core/ProvisionUser.cs
+++ b/Intuit.QuickBase.Core/ProvisionUser.cs
@@ -17,19 +17,27 @@ public class ProvisionUser : IQObject
private Payload.Payload _provisionUserPayload;
private IQUri _uri;
- public ProvisionUser(string ticket, string appToken, string accountDomain, string dbid, string email, int roleId, string firstName, string lastName)
+ public ProvisionUser(string ticket, string appToken, string accountDomain, string dbid, string email, int roleId, string firstName, string lastName, string userToken = "")
{
- CommonConstruction(ticket, appToken, accountDomain, dbid, new ProvisionUserPayload(email, roleId, firstName, lastName));
+ CommonConstruction(ticket, appToken, accountDomain, dbid, new ProvisionUserPayload(email, roleId, firstName, lastName), userToken);
}
- public ProvisionUser(string ticket, string appToken, string accountDomain, string dbid, string email, string firstName, string lastName)
+ public ProvisionUser(string ticket, string appToken, string accountDomain, string dbid, string email, string firstName, string lastName, string userToken = "")
{
- CommonConstruction(ticket, appToken, accountDomain, dbid, new ProvisionUserPayload(email, firstName, lastName));
+ CommonConstruction(ticket, appToken, accountDomain, dbid, new ProvisionUserPayload(email, firstName, lastName), userToken);
}
- private void CommonConstruction(string ticket, string appToken, string accountDomain, string dbid, Payload.Payload payload)
+ private void CommonConstruction(string ticket, string appToken, string accountDomain, string dbid, Payload.Payload payload, string userToken = "")
{
- _provisionUserPayload = new ApplicationTicket(payload, ticket);
+ //If a user token is provided, use it instead of a ticket
+ if (userToken.Length > 0)
+ {
+ _provisionUserPayload = new ApplicationUserToken(payload, userToken);
+ }
+ else
+ {
+ _provisionUserPayload = new ApplicationTicket(payload, ticket);
+ }
_provisionUserPayload = new ApplicationToken(_provisionUserPayload, appToken);
_provisionUserPayload = new WrapPayload(_provisionUserPayload);
diff --git a/Intuit.QuickBase.Core/PurgeRecords.cs b/Intuit.QuickBase.Core/PurgeRecords.cs
index 2d8f892..30754aa 100644
--- a/Intuit.QuickBase.Core/PurgeRecords.cs
+++ b/Intuit.QuickBase.Core/PurgeRecords.cs
@@ -33,13 +33,15 @@ public class PurgeRecords : IQObject
public class Builder
{
internal string Ticket { get; set; }
+ internal string UserToken { get; set; }
internal string AppToken { get; set; }
internal string AccountDomain { get; set; }
internal string Dbid { get; set; }
- public Builder(string ticket, string appToken, string accountDomain, string dbid)
+ public Builder(string ticket, string appToken, string accountDomain, string dbid, string userToken = "")
{
Ticket = ticket;
+ UserToken = userToken;
AppToken = appToken;
AccountDomain = accountDomain;
Dbid = dbid;
@@ -87,7 +89,15 @@ private PurgeRecords(Builder builder)
.SetQid(builder.Qid)
.SetQName(builder.QName)
.Build();
- _purgeRecordsPayload = new ApplicationTicket(_purgeRecordsPayload, builder.Ticket);
+ //If a user token is provided, use it instead of a ticket
+ if (builder.UserToken.Length > 0)
+ {
+ _purgeRecordsPayload = new ApplicationUserToken(_purgeRecordsPayload, builder.UserToken);
+ }
+ else
+ {
+ _purgeRecordsPayload = new ApplicationTicket(_purgeRecordsPayload, builder.Ticket);
+ }
_purgeRecordsPayload = new ApplicationToken(_purgeRecordsPayload, builder.AppToken);
_purgeRecordsPayload = new WrapPayload(_purgeRecordsPayload);
_uri = new QUriDbid(builder.AccountDomain, builder.Dbid);
diff --git a/Intuit.QuickBase.Core/RemoveUserFromRole.cs b/Intuit.QuickBase.Core/RemoveUserFromRole.cs
index 68aaa58..1796dbf 100644
--- a/Intuit.QuickBase.Core/RemoveUserFromRole.cs
+++ b/Intuit.QuickBase.Core/RemoveUserFromRole.cs
@@ -17,10 +17,18 @@ public class RemoveUserFromRole : IQObject
private readonly Payload.Payload _removeUserFromRolePayload;
private readonly IQUri _uri;
- public RemoveUserFromRole(string ticket, string appToken, string accountDomain, string dbid, string userId, int roleId)
+ public RemoveUserFromRole(string ticket, string appToken, string accountDomain, string dbid, string userId, int roleId, string userToken = "")
{
_removeUserFromRolePayload = new RemoveUserFromRolePayload(userId, roleId);
- _removeUserFromRolePayload = new ApplicationTicket(_removeUserFromRolePayload, ticket);
+ //If a user token is provided, use it instead of a ticket
+ if (userToken.Length > 0)
+ {
+ _removeUserFromRolePayload = new ApplicationUserToken(_removeUserFromRolePayload, userToken);
+ }
+ else
+ {
+ _removeUserFromRolePayload = new ApplicationTicket(_removeUserFromRolePayload, ticket);
+ }
_removeUserFromRolePayload = new ApplicationToken(_removeUserFromRolePayload, appToken);
_removeUserFromRolePayload = new WrapPayload(_removeUserFromRolePayload);
_uri = new QUriDbid(accountDomain, dbid);
diff --git a/Intuit.QuickBase.Core/RenameApp.cs b/Intuit.QuickBase.Core/RenameApp.cs
index 7ff0a0e..9ce7f8c 100644
--- a/Intuit.QuickBase.Core/RenameApp.cs
+++ b/Intuit.QuickBase.Core/RenameApp.cs
@@ -30,10 +30,19 @@ public class RenameApp : IQObject
///
/// Supply application-level dbid.
/// Supply a new application name.
- public RenameApp(string ticket, string appToken, string accountDomain, string dbid, string newAppName)
+ /// optional user token that can be used instead of a ticket
+ public RenameApp(string ticket, string appToken, string accountDomain, string dbid, string newAppName, string userToken = "")
{
_renameAppPayload = new RenameAppPayload(newAppName);
- _renameAppPayload = new ApplicationTicket(_renameAppPayload, ticket);
+ //If a user token is provided, use it instead of a ticket
+ if (userToken.Length > 0)
+ {
+ _renameAppPayload = new ApplicationUserToken(_renameAppPayload, userToken);
+ }
+ else
+ {
+ _renameAppPayload = new ApplicationTicket(_renameAppPayload, ticket);
+ }
_renameAppPayload = new ApplicationToken(_renameAppPayload, appToken);
_renameAppPayload = new WrapPayload(_renameAppPayload);
_uri = new QUriDbid(accountDomain, dbid);
diff --git a/Intuit.QuickBase.Core/RunImport.cs b/Intuit.QuickBase.Core/RunImport.cs
index 11484d8..663083a 100644
--- a/Intuit.QuickBase.Core/RunImport.cs
+++ b/Intuit.QuickBase.Core/RunImport.cs
@@ -17,10 +17,18 @@ public class RunImport : IQObject
private readonly Payload.Payload _runImportPayload;
private readonly IQUri _uri;
- public RunImport(string ticket, string appToken, string accountDomain, string dbid, int id)
+ public RunImport(string ticket, string appToken, string accountDomain, string dbid, int id, string userToken = "")
{
_runImportPayload = new RunImportPayload(id);
- _runImportPayload = new ApplicationTicket(_runImportPayload, ticket);
+ //If a user token is provided, use it instead of a ticket
+ if (userToken.Length > 0)
+ {
+ _runImportPayload = new ApplicationUserToken(_runImportPayload, userToken);
+ }
+ else
+ {
+ _runImportPayload = new ApplicationTicket(_runImportPayload, ticket);
+ }
_runImportPayload = new ApplicationToken(_runImportPayload, appToken);
_runImportPayload = new WrapPayload(_runImportPayload);
_uri = new QUriDbid(accountDomain, dbid);
diff --git a/Intuit.QuickBase.Core/SendInvitation.cs b/Intuit.QuickBase.Core/SendInvitation.cs
index 683f2ba..5ae4d80 100644
--- a/Intuit.QuickBase.Core/SendInvitation.cs
+++ b/Intuit.QuickBase.Core/SendInvitation.cs
@@ -17,19 +17,27 @@ public class SendInvitation : IQObject
private Payload.Payload _sendInvitationPayload;
private IQUri _uri;
- public SendInvitation(string ticket, string appToken, string accountDomain, string dbid, string userId, string userText)
+ public SendInvitation(string ticket, string appToken, string accountDomain, string dbid, string userId, string userText, string userToken = "")
{
- CommonConstruction(ticket, appToken, accountDomain, dbid, new SendInvitationPayload(userId, userText));
+ CommonConstruction(ticket, appToken, accountDomain, dbid, new SendInvitationPayload(userId, userText), userToken);
}
- public SendInvitation(string ticket, string appToken, string accountDomain, string dbid, string userId)
+ public SendInvitation(string ticket, string appToken, string accountDomain, string dbid, string userId, string userToken = "")
{
- CommonConstruction(ticket, appToken, accountDomain, dbid, new SendInvitationPayload(userId));
+ CommonConstruction(ticket, appToken, accountDomain, dbid, new SendInvitationPayload(userId), userToken);
}
- private void CommonConstruction(string ticket, string appToken, string accountDomain, string dbid, Payload.Payload payload)
+ private void CommonConstruction(string ticket, string appToken, string accountDomain, string dbid, Payload.Payload payload, string userToken = "")
{
- _sendInvitationPayload = new ApplicationTicket(payload, ticket);
+ //If a user token is provided, use it instead of a ticket
+ if (userToken.Length > 0)
+ {
+ _sendInvitationPayload = new ApplicationUserToken(payload, userToken);
+ }
+ else
+ {
+ _sendInvitationPayload = new ApplicationTicket(payload, ticket);
+ }
_sendInvitationPayload = new ApplicationToken(_sendInvitationPayload, appToken);
_sendInvitationPayload = new WrapPayload(_sendInvitationPayload);
_uri = new QUriDbid(accountDomain, dbid);
diff --git a/Intuit.QuickBase.Core/SetDBvar.cs b/Intuit.QuickBase.Core/SetDBvar.cs
index 5ff89aa..7e3cf8f 100644
--- a/Intuit.QuickBase.Core/SetDBvar.cs
+++ b/Intuit.QuickBase.Core/SetDBvar.cs
@@ -17,10 +17,18 @@ public class SetDBvar : IQObject
private readonly Payload.Payload _setDbVarPayload;
private readonly IQUri _uri;
- public SetDBvar(string ticket, string appToken, string accountDomain, string dbid, string varName, string value)
+ public SetDBvar(string ticket, string appToken, string accountDomain, string dbid, string varName, string value, string userToken = "")
{
_setDbVarPayload = new SetDBvarPayload(varName, value);
- _setDbVarPayload = new ApplicationTicket(_setDbVarPayload, ticket);
+ //If a user token is provided, use it instead of a ticket
+ if (userToken.Length > 0)
+ {
+ _setDbVarPayload = new ApplicationUserToken(_setDbVarPayload, userToken);
+ }
+ else
+ {
+ _setDbVarPayload = new ApplicationTicket(_setDbVarPayload, ticket);
+ }
_setDbVarPayload = new ApplicationToken(_setDbVarPayload, appToken);
_setDbVarPayload = new WrapPayload(_setDbVarPayload);
_uri = new QUriDbid(accountDomain, dbid);
diff --git a/Intuit.QuickBase.Core/UserRoles.cs b/Intuit.QuickBase.Core/UserRoles.cs
index b1dca22..107e774 100644
--- a/Intuit.QuickBase.Core/UserRoles.cs
+++ b/Intuit.QuickBase.Core/UserRoles.cs
@@ -17,10 +17,18 @@ public class UserRoles : IQObject
private readonly Payload.Payload _userRolesPayload;
private readonly IQUri _uri;
- public UserRoles(string ticket, string appToken, string accountDomain, string dbid)
+ public UserRoles(string ticket, string appToken, string accountDomain, string dbid, string userToken = "")
{
_userRolesPayload = new UserRolesPayload();
- _userRolesPayload = new ApplicationTicket(_userRolesPayload, ticket);
+ //If a user token is provided, use it instead of a ticket
+ if (userToken.Length > 0)
+ {
+ _userRolesPayload = new ApplicationUserToken(_userRolesPayload, userToken);
+ }
+ else
+ {
+ _userRolesPayload = new ApplicationTicket(_userRolesPayload, ticket);
+ }
_userRolesPayload = new ApplicationToken(_userRolesPayload, appToken);
_userRolesPayload = new WrapPayload(_userRolesPayload);
_uri = new QUriDbid(accountDomain, dbid);