%PDF- %PDF-
Direktori : /home/waritko/go/src/github.com/odeke-em/drive/src/ |
Current File : //home/waritko/go/src/github.com/odeke-em/drive/src/errors.go |
// Copyright 2016 Google Inc. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package drive type ErrorStatus int const ( StatusGeneric ErrorStatus = 1 StatusAuthenticationFailed ErrorStatus = 2 StatusRetriesExhausted ErrorStatus = 3 StatusDownloadFailed ErrorStatus = 4 StatusPullFailed ErrorStatus = 5 StatusGoogleDocNonExportAttempted ErrorStatus = 6 StatusInvalidGoogleAPIQuery ErrorStatus = 7 StatusIllogicalState ErrorStatus = 8 StatusNonExistantRemote ErrorStatus = 9 StatusRemoteLookupFailed ErrorStatus = 10 StatusLocalLookupFailed ErrorStatus = 11 StatusNetLookupFailed ErrorStatus = 12 StatusClashesDetected ErrorStatus = 13 StatusClashFixingAborted ErrorStatus = 14 StatusMkdirFailed ErrorStatus = 15 StatusNoMatchesFound ErrorStatus = 16 StatusUnresolvedConflicts ErrorStatus = 17 StatusCannotPrompt ErrorStatus = 18 StatusOverwriteAttempted ErrorStatus = 19 StatusImmutableOperationAttempted ErrorStatus = 20 StatusInvalidArguments ErrorStatus = 21 StatusNamedPipeReadAttempt ErrorStatus = 22 StatusContentTooLarge ErrorStatus = 23 StatusClashesFixed ErrorStatus = 24 StatusSecurityException ErrorStatus = 25 ) type Error struct { code ErrorStatus status string err error } func (e Error) Error() string { joins := []string{} if e.status != "" { joins = append(joins, e.status) } if e.err != nil { joins = append(joins, e.err.Error()) } return sepJoin(" ", joins...) } func (e Error) Code() int { return int(e.code) } func makeError(err error, code ErrorStatus) *Error { return &Error{ code: code, err: err, } } func makeErrorWithStatus(status string, err error, code ErrorStatus) *Error { e := makeError(err, code) e.status = status return e } func googleDocNonExportErr(err error) *Error { return makeError(err, StatusGoogleDocNonExportAttempted) } func downloadFailedErr(err error) *Error { return makeError(err, StatusDownloadFailed) } func illogicalStateErr(err error) *Error { return makeError(err, StatusIllogicalState) } func invalidGoogleAPIQueryErr(err error) *Error { return makeError(err, StatusInvalidGoogleAPIQuery) } func nonExistantRemoteErr(err error) *Error { return makeError(err, StatusNonExistantRemote) } func netLookupFailedErr(err error) *Error { return makeError(err, StatusNetLookupFailed) } func clashesDetectedErr(err error) *Error { return makeError(err, StatusClashesDetected) } func clashFixingAbortedErr(err error) *Error { return makeError(err, StatusClashFixingAborted) } func mkdirFailedErr(err error) *Error { return makeError(err, StatusMkdirFailed) } func noMatchesFoundErr(err error) *Error { return makeError(err, StatusNoMatchesFound) } func unresolvedConflictsErr(err error) *Error { return makeError(err, StatusUnresolvedConflicts) } func pullFailedErr(err error) *Error { return makeError(err, StatusPullFailed) } func cannotPromptErr(err error) *Error { return makeError(err, StatusCannotPrompt) } func overwriteAttemptedErr(err error) *Error { return makeError(err, StatusOverwriteAttempted) } func immutableAttemptErr(err error) *Error { return makeError(err, StatusImmutableOperationAttempted) } func remoteLookupErr(err error) *Error { return makeError(err, StatusRemoteLookupFailed) } func invalidArgumentsErr(err error) *Error { return makeError(err, StatusInvalidArguments) } func namedPipeReadAttemptErr(err error) *Error { return makeError(err, StatusNamedPipeReadAttempt) } func contentTooLargeErr(err error) *Error { return makeError(err, StatusContentTooLarge) } func clashesFixedErr(err error) *Error { return makeError(err, StatusClashesFixed) }