aceproject

package module
v0.1.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 18, 2021 License: MIT Imports: 5 Imported by: 1

README

go-aceproject

Build Status codecov

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AuthInfo

type AuthInfo struct {
	AccountID string `url:"AccountId"`
	Username  string `url:"UserName"`
	Password  string `url:"Password"`
}

AuthInfo is representing the information for authentication

type Client

type Client struct {
	ProjectService *ProjectService
}

Client is a ACEProject RESTful API client

func NewClient

func NewClient(httpClient *http.Client, authInfo *AuthInfo) (*Client, error)

NewClient creates new client for ACEProject API service

type DailyTimeReportResponse added in v0.1.3

type DailyTimeReportResponse struct {
	Status  string           `json:"status"`
	Results []DailyTimesheet `json:"results"`
}

DailyTimeReportResponse represents daily time sheet listing response

type DailyTimesheet added in v0.1.3

type DailyTimesheet struct {
	DateWorked       string  `json:"DATE_WORKED"`
	TimesheetLineID  int64   `json:"TIMESHEET_LINE_ID"`
	CompanyID        int64   `json:"COMPANY_ID"`
	ProjectID        int64   `json:"PROJECT_ID"`
	ProjectType      string  `json:"PROJECT_TYPE_NAME"`
	ProjectNumber    string  `json:"PROJECT_NUMBER"`
	ProjectName      string  `json:"PROJECT_NAME"`
	TaskID           int64   `json:"TASK_ID"`
	TaskNumber       float64 `json:"TASK_NUMBER"`
	TaskName         string  `json:"TASK_RESUME"`
	TaskGroupName    string  `json:"TASK_GROUP_NAME"`
	TaskType         string  `json:"TASK_TYPE_NAME"`
	TimeTypeID       int64   `json:"TIME_TYPE_ID"`
	TimeTypeName     string  `json:"TIME_TYPE_NAME"`
	DateCreated      string  `json:"DATE_CREATED"`
	DateModified     string  `json:"DATE_MODIFIED"`
	DateSubmitted    string  `json:"DATE_SUBMITTED"`
	Comment          string  `json:"COMMENT"`
	CreatorUserID    int64   `json:"CREATOR_USER_ID"`
	CreatorUsername  string  `json:"CREATOR_USERNAME"`
	UserGroupName    string  `json:"USER_GROUP_NAME"`
	ClientNumber     string  `json:"CLIENT_NUMBER"`
	ClientName       string  `json:"CLIENT_NAME"`
	ApprovalLevel    int     `json:"APPROVAL_LEVEL"`
	TimeStatusName   string  `json:"TIME_STATUS_NAME"`
	ApprovalDate     string  `json:"DATE_APPROVAL_DATE"`
	ApprovalUserID   int64   `json:"APPROVAL_USER_ID"`
	ApprovalUsername string  `json:"APPROVAL_USERNAME"`
	Total            float64 `json:"TOTAL"`
	ErrorDesc        *string `json:"ERRORDESCRIPTION,omitempty"`
}

DailyTimesheet is representing daily time sheet in ACEProject

type DeleteWorkItem added in v0.1.3

type DeleteWorkItem struct {
	TimesheetLineID int64   `url:"TimesheetLineId"`
	ErrorDesc       *string `json:"ERRORDESCRIPTION,omitempty"`
}

DeleteWorkItem represents deleting a time sheet entry from ACEProject

type Error

type Error struct {
	Message string `json:"ERRORDESCRIPTION"`
}

Error represents the error return from ACEProject API

func (Error) Error

func (e Error) Error() string

type ErrorResponse

type ErrorResponse struct {
	Status  string  `json:"status"`
	Results []Error `json:"results"`
}

ErrorResponse represents the error return from ACEProject API

type Function

type Function struct {
	Fct    string `url:"fct"`
	Format string `url:"format"`
}

Function represents the ACEProject fct parameter in URL

func CreateFunctionParam

func CreateFunctionParam(fct string) *Function

CreateFunctionParam creates the url query param for ACEProject function

type GUIDInfo

type GUIDInfo struct {
	GUID      string  `url:"guid" json:"GUID,omitempty"`
	ErrorDesc *string `json:"ERRORDESCRIPTION,omitempty"`
}

GUIDInfo is representing the information for endpoint auth

type GetProjectsParam added in v0.1.3

type GetProjectsParam struct {
	FilterCompletedProject *bool  `url:"Filtercompletedproject,omitempty"`
	ProjectID              string `url:"Projectid,omitempty"`
}

GetProjectsParam represents getprojects request parameter

type GetTasksParam

type GetTasksParam struct {
	ProjectID               *int64  `url:"ProjectID,omitempty"`
	FilterFirstDate         *string `url:"FilterFirstDate,omitempty"`
	FilterFirstDateOperator *int    `url:"FilterFirstDateOperator,omitempty"`
	FilterFirstDateValue    *string `url:"FilterFirstDateValue,omitempty"`
}

GetTasksParam represents gettasks request parameter

type GetTimeReportParam added in v0.1.3

type GetTimeReportParam struct {
	View                    int    `url:"View"`
	FilterMyWorkItems       bool   `url:"FilterMyWorkItems"`
	FilterTimeCreatorUserID string `url:"FilterTimeCreatorUserId,omitempty"`
	FilterDateFrom          string `url:"FilterDateFrom,omitempty"`
	FilterDateTo            string `url:"FilterDateTo,omitempty"`
	ProjectID               string `url:"ProjectId,omitempty"`
}

GetTimeReportParam represents gettimereport request parameter

type GetUsersParam added in v0.1.3

type GetUsersParam struct {
	FilterActive *bool `url:"FilterActive,omitempty"`
}

GetUsersParam represents getusers request parameter

type LoginResponse

type LoginResponse struct {
	Status  string     `json:"status"`
	Results []GUIDInfo `json:"results"`
}

LoginResponse represents the success login response from ACEProject API

type LoginService

type LoginService struct {
	// contains filtered or unexported fields
}

LoginService provides methods to interact with login action

func NewLoginService

func NewLoginService(httpClient *http.Client) *LoginService

NewLoginService creates a new LoginService

func (*LoginService) Login

func (s *LoginService) Login(params *AuthInfo) (*GUIDInfo, *http.Response, error)

Login performs login action to ACEProject API

type Project

type Project struct {
	ID                 int64   `json:"PROJECT_ID"`
	Name               string  `json:"PROJECT_NAME"`
	ProjectNumber      string  `json:"PROJECT_NUMBER"`
	TypeID             int64   `json:"PROJECT_TYPE"`
	Type               string  `json:"PROJECT_TYPE_NAME"`
	ProjectStatusName  string  `json:"PROJECT_STATUS_NAME"`
	PriorityName       string  `json:"PROJECT_PRIORITY_NAME"`
	ClientName         string  `json:"CLIENT_NAME"`
	ContactName        string  `json:"CONTACT_NAME"`
	ContactPhone       string  `json:"CONTACT_PHONE"`
	DateCreated        string  `json:"DATE_CREATED"`
	DateModified       string  `json:"DATE_MODIFIED"`
	ProjectCreatorID   int64   `json:"PROJECT_CREATOR_ID"`
	Username           string  `json:"USERNAME"`
	UserUpdateID       int64   `json:"USER_UPDATE_ID"`
	UserUpdateUsername string  `json:"USER_UPDATE_USERNAME"`
	AssignedUsers      string  `json:"ASSIGNED_USERS"`
	ErrorDesc          *string `json:"ERRORDESCRIPTION,omitempty"`
}

Project is representing project in ACEProject

type ProjectResponse

type ProjectResponse struct {
	Status  string    `json:"status"`
	Results []Project `json:"results"`
}

ProjectResponse represents porject listing response

type ProjectService

type ProjectService struct {
	// contains filtered or unexported fields
}

ProjectService provides methods to interact with project specific action

func NewProjectService

func NewProjectService(httpClient *http.Client, guidInfo *GUIDInfo) *ProjectService

NewProjectService return a new ProjectService

func (*ProjectService) Get added in v0.1.3

func (s *ProjectService) Get(projectID int64) (*Project, *http.Response, error)

Get returns the project of given ID

func (*ProjectService) List

func (s *ProjectService) List() ([]Project, *http.Response, error)

List returns the project list

func (*ProjectService) ListWithCompleteness added in v0.1.3

func (s *ProjectService) ListWithCompleteness(complete bool) ([]Project, *http.Response, error)

ListWithCompleteness returns the list of complete / incomplete projects

type SaveWorkItem

type SaveWorkItem struct {
	UserID          *int64  `url:"UserId,omitempty"`
	TimesheetLineID *int64  `url:"TimesheetLineId,omitempty" json:"TIMESHEET_LINE_ID,omitempty"`
	WeekStart       string  `url:"WeekStart,omitempty"`
	TaskID          int64   `url:"TaskId"`
	TimeTypeID      int64   `url:"TimetypeId"`
	HoursDay1       float64 `url:"HoursDay1"`
	HoursDay2       float64 `url:"HoursDay2"`
	HoursDay3       float64 `url:"HoursDay3"`
	HoursDay4       float64 `url:"HoursDay4"`
	HoursDay5       float64 `url:"HoursDay5"`
	HoursDay6       float64 `url:"HoursDay6"`
	HoursDay7       float64 `url:"HoursDay7"`
	Comments        *string `url:"Comments,omitempty"`
	ErrorDesc       *string `json:"ERRORDESCRIPTION,omitempty"`
}

SaveWorkItem represents logging time sheet entry to ACEProject

type Task

type Task struct {
	ID               int64   `json:"TASK_ID"`
	Name             string  `json:"TASK_RESUME"`
	TaskGroupID      int64   `json:"TASK_GROUP_ID"`
	TaskGroupName    string  `json:"TASK_GROUP_NAME"`
	TaskStatusName   string  `json:"TASK_STATUS_NAME"`
	ProjectID        int64   `json:"PROJECT_ID"`
	ProjectName      string  `json:"PROJECT_NAME"`
	DateTaskCreated  string  `json:"DATE_TASK_CREATED"`
	DateTaskModified string  `json:"DATE_TASK_MODIFIED"`
	UserCreatorID    int64   `json:"USER_CREATOR_ID"`
	Username         string  `json:"USERNAME"`
	UpdateUserID     int64   `json:"UPDATE_USER_ID"`
	UpdateUsername   string  `json:"UPDATE_USERNAME"`
	Assigned         string  `json:"ASSIGNED"`
	ErrorDesc        *string `json:"ERRORDESCRIPTION,omitempty"`
}

Task is representing task in ACEProject

type TaskResponse

type TaskResponse struct {
	Status  string `json:"status"`
	Results []Task `json:"results"`
}

TaskResponse represents task listing response

type TaskService

type TaskService struct {
	// contains filtered or unexported fields
}

TaskService provides methods to interact with task specific action

func NewTaskService

func NewTaskService(httpClient *http.Client, guidInfo *GUIDInfo) *TaskService

NewTaskService return a new TaskService

func (*TaskService) List

func (s *TaskService) List() ([]Task, *http.Response, error)

List returns all tasks

func (*TaskService) ListWithLastModifiedDate added in v0.1.3

func (s *TaskService) ListWithLastModifiedDate(modifiedDate time.Time) ([]Task, *http.Response, error)

ListWithLastModifiedDate returns all tasks modified on or after the specified date

func (*TaskService) ListWithProject

func (s *TaskService) ListWithProject(projectID int64) ([]Task, *http.Response, error)

ListWithProject returns all tasks of a project

type TimesheetDeleteWorkItemResponse added in v0.1.3

type TimesheetDeleteWorkItemResponse struct {
	Status  string           `json:"status"`
	Results []DeleteWorkItem `json:"results"`
}

TimesheetDeleteWorkItemResponse represents deleteworkitem response

type TimesheetSaveWorkItemResponse

type TimesheetSaveWorkItemResponse struct {
	Status  string         `json:"status"`
	Results []SaveWorkItem `json:"results"`
}

TimesheetSaveWorkItemResponse represents saveworkitem response

type TimesheetService

type TimesheetService struct {
	// contains filtered or unexported fields
}

TimesheetService provides methods to interact with project specific action

func NewTimesheetService

func NewTimesheetService(httpClient *http.Client, guidInfo *GUIDInfo) *TimesheetService

NewTimesheetService return a new TimesheetService

func (*TimesheetService) DeleteWorkItem added in v0.1.3

func (s *TimesheetService) DeleteWorkItem(timesheetLineID int64) (*DeleteWorkItem, *http.Response, error)

DeleteWorkItem deletes the time sheet item from ACE Project

func (*TimesheetService) ListAllDailyWithDateRange added in v0.1.3

func (s *TimesheetService) ListAllDailyWithDateRange(from, to time.Time) ([]DailyTimesheet, *http.Response, error)

ListAllDailyWithDateRange returns the list of all accessible daily time sheets within the date range

func (*TimesheetService) ListAllDailyWithProject added in v0.1.3

func (s *TimesheetService) ListAllDailyWithProject(projectID int64) ([]DailyTimesheet, *http.Response, error)

ListAllDailyWithProject returns the list of all accessible daily time sheets of a project

func (*TimesheetService) ListAllDailyWithUserIDDateRange added in v0.1.3

func (s *TimesheetService) ListAllDailyWithUserIDDateRange(userID int64, from, to time.Time) ([]DailyTimesheet, *http.Response, error)

ListAllDailyWithUserIDDateRange returns the of all daily time sheets of a user within the date range

func (*TimesheetService) SaveWorkItem

func (s *TimesheetService) SaveWorkItem(item *SaveWorkItem) (*SaveWorkItem, *http.Response, error)

SaveWorkItem saves the time sheet item to ACE Project

type User added in v0.1.3

type User struct {
	ID            int64   `json:"USER_ID"`
	Username      string  `json:"USERNAME"`
	Email         string  `json:"EMAIL_ALERT"`
	FirstName     string  `json:"FIRST_NAME"`
	LastName      string  `json:"LAST_NAME"`
	UserGroupID   int64   `json:"USER_GROUP_ID"`
	UserGroupName string  `json:"USER_GROUP_NAME"`
	Active        bool    `json:"ACTIVE"`
	ErrorDesc     *string `json:"ERRORDESCRIPTION,omitempty"`
}

User is representing user in ACEProject

type UserResponse added in v0.1.3

type UserResponse struct {
	Status  string `json:"status"`
	Results []User `json:"results"`
}

UserResponse represents user listing response

type UserService added in v0.1.3

type UserService struct {
	// contains filtered or unexported fields
}

UserService provides methods to interact with user specific action

func NewUserService added in v0.1.3

func NewUserService(httpClient *http.Client, guidInfo *GUIDInfo) *UserService

NewUserService return a new UserService

func (*UserService) List added in v0.1.3

func (s *UserService) List() ([]User, *http.Response, error)

List returns the user list

func (*UserService) ListWithActiveness added in v0.1.3

func (s *UserService) ListWithActiveness(active bool) ([]User, *http.Response, error)

ListWithActiveness returns the list of active / non-active users

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL