Skip to content

armandar/opapidocs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 

Repository files navigation

Api Reference

در مستند زیر می‌توانید نحوه استفاده از api پروژه op را مشاهده و از آن استفاده نمایید.

Getting Started

Login

برای ارسال درخواست ورود باید به لینک زیر درخواست بزنید.(این آدرس‌ها درست نیستند.)

url: armandar.com/api/v1/login --- method: post

و موارد زیر را به هدر درخواست خود اضافه نمایید.(Header)
headers: {
    "content-type": "application/x-www-form-urlencoded",
    "cache-control": "no-cache"
}
دیتای ارسالی به آدرس نیز باید به این شرح باشد.:
data: {
    "grant_type": "password",
    "username": "username",
    "password": "password"
}
نمونه کد ارسالی با استفاده از OkHttpClient در جاوا به صورت زیر است:
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "grant_type=password&username=username&password=password");
Request request = new Request.Builder()
  .url("http://armandar.com/api/v1/login")
  .post(body)
  .addHeader("content-type", "application/x-www-form-urlencoded")
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();
نمونه کد ارسالی با استفاده از unirest در جاوا به صورت زیر است:
HttpResponse<String> response = Unirest.post("http://armandar.com/api/v1/login")
  .header("content-type", "application/x-www-form-urlencoded")
  .header("cache-control", "no-cache")
  .body("grant_type=password&username=username&password=password")
  .asString();
اگر نام کاربری یا کلمه عبور نادرست باشد این خطا را دریافت خواهید کرد:
{
  "error": "invalid_grant",
  "error_description": "نام کاربری یا کلمه عبور اشتباه است."
}
در غیر این صورت و صحت نام کاربری و کلمه عبور، اطلاعاتی به این صورت دریافت خواهید کرد:
{
  "access_token": "r0WYlR82ArN5PnrM6wg............",
  "token_type": "bearer",
  "expires_in": 12959999,
  "userName": "username",
  ".issued": "Tue, 14 Feb 2017 14:07:57 GMT",
  ".expires": "Fri, 14 Jul 2017 14:07:57 GMT"
}
از access_token دریافتی میتوانید برای اتصال به api استفاده کنید. نحوه استفاده آن در بخش‌ بعدی توضیح داده خواهد شد.

Authorization

تمام اطلاعات ارسالی از سمت کلاینت‌ها به سرور (به جز در هنگام لاگین) باید این هدر را داشته باشد.
headers: {
    "authorization": "Bearer gyXOAl0G4lg5LQYDa-py4JyHcCaaChlYODpdwu1e8zKT05N...."
}
که عبارت‌است از کلمه Bearer به علاوه یک Space و مقدار access_token که در هنگام ورود دریافت کرده‌اید.

Bearer {space} {access_token}

درصورتی که این هدر را نفرستید یا مقدار access_token آن اشتباه باشد با خطایی مشابه زیر موجه خواهید شد.
{
  "Message": "Authorization has been denied for this request."
}

Alerts

url: armandar.com/api/v1/alerts --- method: get

برای دریافت هشدارها از این آدرس استفاده کنید. نتیجه به این صورت خواهدبود.
[
    {
        "Count": 8397,
        "Title": "مجموع",
        "Url": "#",
        "Order": 0,
        "CanClick":false,
        "EnTitle": "Count"
    },
    {
        "Count": 235,
        "Title": "پروژه ها با درصد انحراف بالا",
        "Url": "#",
        "Order": 1,
        "CanClick":false,
        "EnTitle": "AlertCount"
    },
    {
        "Count": 101,
        "Title": "پروژه های بدون مرحله",
        "Url": "/Shared/Alarm/ProjectStepIssue",
        "Order": 2,
        "CanClick":false,
        "EnTitle": "ProjectStepIssueCount"
    },
    {
        "Count": 29,
        "Title": "فاکتور وزنی مراحل پروژه",
        "Url": "/Shared/Alarm/ProjectWFIssue",
        "Order": 3,
        "CanClick":false,
        "EnTitle": "ProjectWFIssueCount"
    },
    {
        "Count": 2241,
        "Title": "مستندات مراحل پروژه",
        "Url": "/Shared/Alarm/ProjectFileIssue",
        "Order": 4,
        "CanClick":false,
        "EnTitle": "ProjectFileIssueCount"
    },
    {
        "Count": 2792,
        "Title": "لینک پروژه به چالش",
        "Url": "/Shared/Alarm/ProjectChallengeIssue",
        "Order": 5,
        "CanClick":false,
        "EnTitle": "ProjectChallengeIssueCount"
    },
    {
        "Count": 2951,
        "Title": "لینک پروژه به اهداف",
        "Url": "/Shared/Alarm/ProjectGoalIssue",
        "Order": 6,
        "CanClick":false,
        "EnTitle": "ProjectGoalIssueCount"
    },
    {
        "Count": 0,
        "Title": "اخبار جدید",
        "Url": "/Administration/News",
        "Order": 7,
        "CanClick":false,
        "EnTitle": "NewNewsCount"
    },
    {
        "Count": 48,
        "Title": "پروژه های متوقف شده",
        "Url": "#",
        "Order": 8,
        "CanClick":false,
        "EnTitle": "StopedProjectCount"
    }
]
همواره اولین آیتم مجموع است و بقیه آیتم‌ها در زیر آن با عنوان فارسی و تعداد نمایش داده شده است.

از Url می‌توانید برای ارسال کاربر به صفحه مربوطه که در سامانه موجود است استفاده کنید.

Updated Alert

همواره اولین آیتم مجموع است و بقیه آیتم‌ها در زیر آن با عنوان فارسی و تعداد نمایش داده شده است.

یک به روزرسانی انجام شده و خاصیت CanClick نیز در نتایج اضافه شده‌است که برای نمایش این است که کاربر روی آیتم مورد نظر می‌تواند کلید کند یا نه. پس از کلیک بر روی آن باید لیستی از پروژه‌های مربوطه نمایش داده شود که اطلاعات مربوط به alerttype آن از طریق خاصیت EnTitle دریافت می‌شود. برای نمایش پروژه‌ها از از نسخه دوم api مربوط به پروژه‌ها باید استفاده کنید. در ضمن مانند لیست قبلی با کلیک بر روی دکمه مقابل هر پروژه باید لیست فعالیت‌های آن را نیز ببیند. تفاوت این لیست با لیست قبلی در این است که پیشرفت‌های زیر پروژه‌ها نمایش داده نمی‌شود ولی بقیه موارد مثل قبلی است. نسخه دوم api پروژه

Gauges

url: armandar.com/api/v1/gauges/{year}/{orgtype?}/{page?}/{limit?}/{search?} --- method: get

جهت نمایش گیج‌های ابتدای برنامه از این بخش استفاده کنید.

year (required) {gauges}

سال جاری که کاربر در بخش تنظیمات مشخص نموده‌است با این درخواست و به عنوان پارامتر اول ارسال شود.

orgtype (optional) {gauges}

نوع سازمان برای دریافت اطلاعات آن از طریق این پارامتر مقدار دهید می‌گردد. به صورت پیش‌فرض مقدار University دارد و نیاز به ارسال وجود ندارد ولی اگر نیاز به ست کردن آن برای دسترسی به پارامترهای بعدی را دارید به صورت دستی از همین مقدار University استفاده کنید.

default: University

page (optional) {gauges}

با توجه به اینکه میزان اطلاعات ممکن است زیاد شود و هم زمان لود طول بکشد و هم UI از زیبایی خارج شود اطلاعات به صورت صفحه به صفحه می‌اید. این پارامتر شماره صفحه را برای دریافت اطلاعات آن صفحه مشخص می‌کند.

default:1

limit (optional) {gauges}

تعداد رکوردهای مربوط به هر صفحه را نمایش می‌دهد. می‌توانید مشخص کنید که در هربار واکشی اطلاعات چه تعداد رکورد را برای شما بیاورد.

default: 10

search (optional) {gauges}

برای جستجوی عبارت خاص در رکوردها از این پارامتر استفاده کنید. این پارامتر جهت استفاده در بخش‌های مختلف جستجو در دسترس است و در آدرس‌های مختلف به همین منظور قرار داده‌شده‌است.

default: ""

Sample {gauges}

نمونه نحوه ارسال درخواست با OkHttpClient در جاوا
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://armandar.com/api/v1/gauges/1395/Univertsity/1/10/گیلان")
  .get()
  .addHeader("authorization", "Bearer gyXOAl0G4lg5LQYDa....")
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();
و نتیجه دریافتی به صورت زیر خواهد بود.
[
    {
        "Id" = 12,
        "Value": 40.66,
        "ScheduleValue": 97.5,
        "YearId": 1395,
        "DeviationFactor": -56.84,
        "OldScheduleValue": 0,
        "HeadOrganizationChartId": 69,
        "Title": "گیلان"
    }
]

Title: عنوان

Value: پیشرفت واقعی

ScheduleValue: پیشرفت برنامه‌ای

DeviationFactor: میرزان انحراف

بقیه اطلاعات نیز در حال حاضر مورد نیاز نیست و جایی نمایش داده نمی‌شود.

Gauges (Version 2)

url: armandar.com/api/v2/gauges/{year}/{parent?}/{page?}/{limit?}/{search?} --- method: get

جهت نمایش گیج‌های ابتدای برنامه از این بخش استفاده کنید.

گیج‌ها در نسخه دوم به صورت زیر مجموعه‌ای نمایش داده می‌شوند. یعنی در صفحه اصلی روی گیج‌ها که کلیک میکند داخل شده و تعدادی گیج برای زیر مجموعه‌های آن‌ها نمایش داده‌می‌شود. به همین صورت در گیج‌های داخلی روی هر کدام که کلیک می‌کند زیرمجموعه‌های سطح دوم که آخرین سطح است نمایش داده‌می‌شود.

اگر روی گیجی کلیک کرد که زیر مجموعه نداشت به صورت toast نمایش دهید که زیرمجموعه‌ای وجود ندارد در غیر این صورت زیرمجموعه‌ها را نمایش دهید.

در زیرمجموعه‌های جستجو و صفحه‌بندی نداریم.

year (required) {gauges-v2}

سال جاری که کاربر در بخش تنظیمات مشخص نموده‌است با این درخواست و به عنوان پارامتر اول ارسال شود.

parent (optional) {gauges-v2}

برای نمایش تمام گیج‌های زیرمجموعه ها نیاز است تا Id پدر را بفرستیم. به این صورت که وقتی کاربر روی یکی از گیج‌ها کلیک می‌کند مقدار Id آن از این طریق ارسال می‌شود و اطلاعات زیرمجموعه‌هایش دریافت شده و نمایش داده‌خواهد شد.

توجه: اگر مقدار این پارامتر چیزی به جز مقدار پیشفرض یا ۱ باشد جستجو و صفحه بندی روی نتیجه تاثیری نخواهد داشت. به این دلیل که تعداد زیرمجموعه‌ها مهمولا کمتر ۱۰-۲۰ آیتم آست.

default: 1

page (optional) {gauges-v2}

با توجه به اینکه میزان اطلاعات ممکن است زیاد شود و هم زمان لود طول بکشد و هم UI از زیبایی خارج شود اطلاعات به صورت صفحه به صفحه می‌اید. این پارامتر شماره صفحه را برای دریافت اطلاعات آن صفحه مشخص می‌کند.

default:1

limit (optional) {gauges-v2}

تعداد رکوردهای مربوط به هر صفحه را نمایش می‌دهد. می‌توانید مشخص کنید که در هربار واکشی اطلاعات چه تعداد رکورد را برای شما بیاورد.

default: 10

search (optional) {gauges-v2}

برای جستجوی عبارت خاص در رکوردها از این پارامتر استفاده کنید. این پارامتر جهت استفاده در بخش‌های مختلف جستجو در دسترس است و در آدرس‌های مختلف به همین منظور قرار داده‌شده‌است.

default: ""

Sample {gauges-v2}

نمونه نحوه ارسال درخواست با OkHttpClient در جاوا
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://armandar.com/api/v۲/gauges/1395/1/1/10/گیلان")
  .get()
  .addHeader("authorization", "Bearer gyXOAl0G4lg5LQYDa....")
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();
و نتیجه دریافتی به صورت زیر خواهد بود.
[
    {
        "Id" = 12, //برای دریافت زیرمجموعه‌ها از این Id استفاده کنید.
        "Value": 40.66,
        "ScheduleValue": 97.5,
        "YearId": 1395,
        "DeviationFactor": -56.84,
        "OldScheduleValue": 0,
        "HeadOrganizationChartId": 69,
        "Title": "گیلان"
    }
]

Title: عنوان

Value: پیشرفت واقعی

ScheduleValue: پیشرفت برنامه‌ای

DeviationFactor: میرزان انحراف

بقیه اطلاعات نیز در حال حاضر مورد نیاز نیست و جایی نمایش داده نمی‌شود.

Projects

url: armandar.com/api/v1/projects/{year}/{page?}/{limit?}/{search?} --- method: get

جهت نمایش پروژه‌ها از این بخش استفاده کنید.

year (required) {projects}

سال جاری که کاربر در بخش تنظیمات مشخص نموده‌است با این درخواست و به عنوان پارامتر اول ارسال شود.

page (optional) {projects}

با توجه به اینکه میزان اطلاعات ممکن است زیاد شود و هم زمان لود طول بکشد و هم UI از زیبایی خارج شود اطلاعات به صورت صفحه به صفحه می‌اید. این پارامتر شماره صفحه را برای دریافت اطلاعات آن صفحه مشخص می‌کند.

default:1

limit (optional) {projects}

تعداد رکوردهای مربوط به هر صفحه را نمایش می‌دهد. می‌توانید مشخص کنید که در هربار واکشی اطلاعات چه تعداد رکورد را برای شما بیاورد.

default: 10

search (optional) {projects}

برای جستجوی عبارت خاص در رکوردها از این پارامتر استفاده کنید. این پارامتر جهت استفاده در بخش‌های مختلف جستجو در دسترس است و در آدرس‌های مختلف به همین منظور قرار داده‌شده‌است.

default: ""

Sample {projects}

نمونه نحوه ارسال درخواست با OkHttpClient در جاوا
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://armandar.com/api/v1/projects/1395/1/10/گیلان")
  .get()
  .addHeader("authorization", "Bearer gyXOAl0G4lg5LQYDa....")
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();
و نتیجه دریافتی به صورت زیر خواهد بود.
[
    {
        "Id": 2317,
        "Code": "P95-002317",
        "Title": "تست ۱",
        "OrganizationChartId": 690809,
        "OrganizationChartTitle": "گیلان",
        "StatusId": 2,
        "StatusTitle": "در حال انجام",
        "ScheduleValue": 98.76,
        "Value": 86,
        "YearId": 1395,
        "DeviationFactor": -12.76
    },
    {
        "Id": 2371,
        "Code": "P95-002371",
        "Title": "تست ۲",
        "OrganizationChartId": 690809,
        "OrganizationChartTitle": "گیلان",
        "StatusId": 2,
        "StatusTitle": "در حال انجام",
        "ScheduleValue": 99.75,
        "Value": 60,
        "YearId": 1395,
        "DeviationFactor": -39.75
    },...
]

Title: عنوان

Code: کد (حتماً کد را هم نمایش دهید)

OrganizationChartTitle: نام دانشگاه یا واحد

Value: پیشرفت واقعی

ScheduleValue: پیشرفت برنامه‌ای

DeviationFactor: میرزان انحراف

StatusTitle: وضعیت

بقیه اطلاعات نیز در حال حاضر مورد نیاز نیست و جایی نمایش داده نمی‌شود.

Projects (Version 2)

url: armandar.com/api/v2/projects/{year}/{page?}/{limit?}/{alerttype?}/{search?} --- method: get

تذکر: ابتدا به روز رسانی مربوط به Alert را بخوانید.

جهت نمایش پروژه‌ها از این بخش استفاده کنید. تمام اطلاعات مانند ورژن اول می‌باشد. تنها یک آپشن جدید alerttype جهت نمایش پروژه‌های مربوط به هشدارها اضافه شده‌است.

year (required) {projects-v2}

سال جاری که کاربر در بخش تنظیمات مشخص نموده‌است با این درخواست و به عنوان پارامتر اول ارسال شود.

page (optional) {projects-v2}

با توجه به اینکه میزان اطلاعات ممکن است زیاد شود و هم زمان لود طول بکشد و هم UI از زیبایی خارج شود اطلاعات به صورت صفحه به صفحه می‌اید. این پارامتر شماره صفحه را برای دریافت اطلاعات آن صفحه مشخص می‌کند.

default:1

limit (optional) {projects-v2}

تعداد رکوردهای مربوط به هر صفحه را نمایش می‌دهد. می‌توانید مشخص کنید که در هربار واکشی اطلاعات چه تعداد رکورد را برای شما بیاورد.

default: 10

alerttype (optional) {projects-v2}

وقتی کاربر روی هشدارها کلیک کرده و مقدار EnTitle مربوط به هشدار کلیک شده را گرفتید همان را به عنوان alerttype باید به این متد ارسال کنید.

نکته: دقت کنید که حتماً مقدار CanClick آیتم کلیک شده برابر با true باشد.

جهت اطمینان مقادیر مجاز برای alerttype که مقدار null بر نمی‌گرداند به شرح زیر است.

  • AlertCount
  • ProjectStepIssueCount
  • ProjectWFIssueCount
  • ProjectChallengeIssueCount
  • ProjectGoalIssueCount
  • و مقدار خالی که عملکرد آن مشابه نسخه اول این متد خواهد شد.

default: ""

search (optional) {projects-v2}

برای جستجوی عبارت خاص در رکوردها از این پارامتر استفاده کنید. این پارامتر جهت استفاده در بخش‌های مختلف جستجو در دسترس است و در آدرس‌های مختلف به همین منظور قرار داده‌شده‌است.

default: ""

Sample {projects-v2}

نمونه نحوه ارسال درخواست با OkHttpClient در جاوا
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://armandar.com/api/v2/projects/1395/1/10/AlertCount/گیلان")
  .get()
  .addHeader("authorization", "Bearer gyXOAl0G4lg5LQYDa....")
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();
و نتیجه دریافتی به صورت زیر خواهد بود.
[
    {
        "Id": 2317,
        "Code": "P95-002317",
        "Title": "تست ۱",
        "OrganizationChartId": 690809,
        "OrganizationChartTitle": "گیلان",
        "StatusId": 2,
        "StatusTitle": "در حال انجام",
        "ScheduleValue": 98.76,
        "Value": 86,
        "YearId": 1395,
        "DeviationFactor": -12.76,        
        "Year": 1396,
        "ScheduleStartDate": "2017-03-21T00:00:00",
        "ScheduleStartDateString": "1396/01/01",
        "ScheduleEndDate": "2017-10-22T00:00:00",
        "ScheduleEndDateString": "1396/07/30",
        "ActualStartDate": null,
        "ActualStartDateString": "",
        "ActualEndDate": null,
        "ActualEndDateString": "",
        "ExecutionTypeId": null,
        "ExecutionTypeTitle": null,
        "Budget": null,
        "BudgetAllocationTypeId": null,
        "BudgetAllocationTypeTitle": null,
        "BudgetFundingTypeId": null,
        "BudgetFundingTypeTitle": null,
        "AssignedMembers": "دانشگاه تبریز (tabriz)",
        "Description": null
    },
    {
        "Id": 2371,
        "Code": "P95-002371",
        "Title": "تست ۲",
        "OrganizationChartId": 690809,
        "OrganizationChartTitle": "گیلان",
        "StatusId": 2,
        "StatusTitle": "در حال انجام",
        "ScheduleValue": 99.75,
        "Value": 60,
        "YearId": 1395,
        "DeviationFactor": -39.75,        
        "Year": 1396,
        "ScheduleStartDate": "2017-03-21T00:00:00",
        "ScheduleStartDateString": "1396/01/01",
        "ScheduleEndDate": "2017-10-22T00:00:00",
        "ScheduleEndDateString": "1396/07/30",
        "ActualStartDate": null,
        "ActualStartDateString": "",
        "ActualEndDate": null,
        "ActualEndDateString": "",
        "ExecutionTypeId": null,
        "ExecutionTypeTitle": null,
        "Budget": null,
        "BudgetAllocationTypeId": null,
        "BudgetAllocationTypeTitle": null,
        "BudgetFundingTypeId": null,
        "BudgetFundingTypeTitle": null,
        "AssignedMembers": "دانشگاه تبریز (tabriz)",
        "Description": null
    },...
]

Title: عنوان

Code: کد (حتماً کد را هم نمایش دهید)

OrganizationChartTitle: نام دانشگاه یا واحد

Value: پیشرفت واقعی

ScheduleValue: پیشرفت برنامه‌ای

DeviationFactor: میرزان انحراف

StatusTitle: وضعیت

Year: سال کاری

ScheduleStartDate: تاریخ شروع برنامه‌ای

ScheduleStartDateString: تاریخ شمسی شروع برنامه‌ای

ScheduleEndDate: تاریخ پایان برنامه‌ای

ScheduleEndDateString: تاریخ شمسی پایان برنامه‌ای

ActualStartDate: تاریخ شروع واقعی

ActualStartDateString: تاریخ شمسی شروع واقعی

ActualEndDate: تاریخ پایان واقعی

ActualEndDateString: تاریخ شمسی پایان واقعی

ExecutionTypeTitle: نوع اجرا

BudgetAllocationTypeTitle: نحوه تخصیص بودجه

BudgetFundingTypeTitle: محل تامین بودجه

AssignedMembers: واحد مسئول

Description: ضرورت تعریف پروژه

بقیه اطلاعات نیز در حال حاضر مورد نیاز نیست و جایی نمایش داده نمی‌شود. در صورتی که مقدار alerttype چیزی به جز رشته خالی باشد مقدار پیشرفت‌ها و انحراف‌ها همگی صفر بر‌می‌گردد چون کاربردی ندارند.

Projects (Version 3)

url: armandar.com/api/v3/projects/{year}/{orgchartid}/{page?}/{limit?}/{alerttype?}/{search?} --- method: get

جهت نمایش پروژه‌ها از این بخش استفاده کنید. تمام اطلاعات مانند ورژن دوم می‌باشد.

تنها یک orgchartid اضافه شده که با استفاده از آن می‌توانید پروژه مربوط به یک چارت سازمانی خاص را نمایش دهید. این متد برای زمانی که کاربر روی یک چارت کلیک می‌کند که زیرمجموعه ندارد و قرار است پروژه‌های آن چارت نمایش داده‌شود

year (required) {projects-v3}

سال جاری که کاربر در بخش تنظیمات مشخص نموده‌است با این درخواست و به عنوان پارامتر اول ارسال شود.

orgchartid (required) {projects-v3}

چارت سازمانی که کاربر روی آن کلیک کرده را از این طریق ارسال نمایید تا پروژه‌های تعریف‌شده برای آن چارت نمایش داده‌شود.

page (optional) {projects-v3}

با توجه به اینکه میزان اطلاعات ممکن است زیاد شود و هم زمان لود طول بکشد و هم UI از زیبایی خارج شود اطلاعات به صورت صفحه به صفحه می‌اید. این پارامتر شماره صفحه را برای دریافت اطلاعات آن صفحه مشخص می‌کند.

default:1

limit (optional) {projects-v3}

تعداد رکوردهای مربوط به هر صفحه را نمایش می‌دهد. می‌توانید مشخص کنید که در هربار واکشی اطلاعات چه تعداد رکورد را برای شما بیاورد.

default: 10

alerttype (optional) {projects-v3}

وقتی کاربر روی هشدارها کلیک کرده و مقدار EnTitle مربوط به هشدار کلیک شده را گرفتید همان را به عنوان alerttype باید به این متد ارسال کنید.

نکته: دقت کنید که حتماً مقدار CanClick آیتم کلیک شده برابر با true باشد.

جهت اطمینان مقادیر مجاز برای alerttype که مقدار null بر نمی‌گرداند به شرح زیر است.

  • AlertCount
  • ProjectStepIssueCount
  • ProjectWFIssueCount
  • ProjectChallengeIssueCount
  • ProjectGoalIssueCount
  • و مقدار خالی که عملکرد آن مشابه نسخه اول این متد خواهد شد.

default: ""

search (optional) {projects-v3}

برای جستجوی عبارت خاص در رکوردها از این پارامتر استفاده کنید. این پارامتر جهت استفاده در بخش‌های مختلف جستجو در دسترس است و در آدرس‌های مختلف به همین منظور قرار داده‌شده‌است.

default: ""

Sample {projects-v3}

نمونه نحوه ارسال درخواست با OkHttpClient در جاوا
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://armandar.com/api/v3/projects/1395/44/1/10/AlertCount")
  .get()
  .addHeader("authorization", "Bearer gyXOAl0G4lg5LQYDa....")
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();
این مثال پروژه‌های مربوطه به چارت سازمانی با Id شماره ۴۴ را نمایش خواهد داد.

نتیجه دریافتی به صورت زیر خواهد بود.

[
    {
        "Id": 9339,
        "Code": "P96-009339",
        "Title": "تست",
        "OrganizationChartId": 440808,
        "OrganizationChartTitle": "دانشگاه تبریز",
        "StatusId": 2,
        "StatusTitle": "در حال انجام",
        "ScheduleValue": 94.49,
        "Value": 93,
        "YearId": 1396,
        "DeviationFactor": -1.49,
        "Year": 1396,
        "ScheduleStartDate": "2017-04-21T00:00:00",
        "ScheduleStartDateString": "1396/02/01",
        "ScheduleEndDate": "2018-02-19T00:00:00",
        "ScheduleEndDateString": "1396/11/30",
        "ActualStartDate": null,
        "ActualStartDateString": "",
        "ActualEndDate": null,
        "ActualEndDateString": "",
        "ExecutionTypeId": null,
        "ExecutionTypeTitle": null,
        "Budget": null,
        "BudgetAllocationTypeId": null,
        "BudgetAllocationTypeTitle": null,
        "BudgetFundingTypeId": null,
        "BudgetFundingTypeTitle": null,
        "AssignedMembers": "دانشگاه تبریز (tabriz)",
        "Description": null
    },
    {
        "Id": 9342,
        "Code": "P96-009342",
        "Title": "تست ",
        "OrganizationChartId": 440808,
        "OrganizationChartTitle": "دانشگاه تبریز",
        "StatusId": 4,
        "StatusTitle": "پایان یافته",
        "ScheduleValue": 100,
        "Value": 100,
        "YearId": 1396,
        "DeviationFactor": 0,
        "Year": 1396,
        "ScheduleStartDate": "2017-03-21T00:00:00",
        "ScheduleStartDateString": "1396/01/01",
        "ScheduleEndDate": "2017-10-22T00:00:00",
        "ScheduleEndDateString": "1396/07/30",
        "ActualStartDate": null,
        "ActualStartDateString": "",
        "ActualEndDate": null,
        "ActualEndDateString": "",
        "ExecutionTypeId": null,
        "ExecutionTypeTitle": null,
        "Budget": null,
        "BudgetAllocationTypeId": null,
        "BudgetAllocationTypeTitle": null,
        "BudgetFundingTypeId": null,
        "BudgetFundingTypeTitle": null,
        "AssignedMembers": "دانشگاه تبریز (tabriz)",
        "Description": null
    },...
]

Title: عنوان

Code: کد (حتماً کد را هم نمایش دهید)

OrganizationChartTitle: نام دانشگاه یا واحد

Value: پیشرفت واقعی

ScheduleValue: پیشرفت برنامه‌ای

DeviationFactor: میرزان انحراف

StatusTitle: وضعیت

Year: سال کاری

ScheduleStartDate: تاریخ شروع برنامه‌ای

ScheduleStartDateString: تاریخ شمسی شروع برنامه‌ای

ScheduleEndDate: تاریخ پایان برنامه‌ای

ScheduleEndDateString: تاریخ شمسی پایان برنامه‌ای

ActualStartDate: تاریخ شروع واقعی

ActualStartDateString: تاریخ شمسی شروع واقعی

ActualEndDate: تاریخ پایان واقعی

ActualEndDateString: تاریخ شمسی پایان واقعی

ExecutionTypeTitle: نوع اجرا

BudgetAllocationTypeTitle: نحوه تخصیص بودجه

BudgetFundingTypeTitle: محل تامین بودجه

AssignedMembers: واحد مسئول

Description: ضرورت تعریف پروژه

بقیه اطلاعات نیز در حال حاضر مورد نیاز نیست و جایی نمایش داده نمی‌شود. در صورتی که مقدار alerttype چیزی به جز رشته خالی باشد مقدار پیشرفت‌ها و انحراف‌ها همگی صفر بر‌می‌گردد چون کاربردی ندارند.

Project Steps

url: armandar.com/api/v1/steps/{project}/{search?} --- method: get

جهت نمایش فعالیت‌های یک پروژه وفتی روی آن کلیک می‌شود از این بخش استفاده کنید. شناسه پروژه برای دریافت اطلاعات باید ارسال شود. در این متد ما به سال نیاز نداریم

با توجه به اینکه تعداد فعالیت‌ها معمولا خیلی زیاد نیست در این بخش ما صفحه‌بندی نداریم و تمام اطلاعات با یک درخواست قابل دریافت است.

با توجه به اینکه فعالیت‌ها ساختار درختی دارند به جیسان دریافتی دقت نموده و برای نمایش با ساختاری مشابه درختی تدبیری بیندیشید.

project (required) {steps}

شناسه پروژه‌ای که کاربر انتخاب نموده است با استفاده از پارامتر اول ارسال شود.

search (optional) {steps}

برای جستجوی عبارت خاص در رکوردها از این پارامتر استفاده کنید. این پارامتر جهت استفاده در بخش‌های مختلف جستجو در دسترس است و در آدرس‌های مختلف به همین منظور قرار داده‌شده‌است.

default: ""

Sample {steps}

نمونه نحوه ارسال درخواست با OkHttpClient در جاوا
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://armandar.com/api/v1/steps/642")
  .get()
  .addHeader("authorization", "Bearer gyXOAl0G4lg5LQYDa....")
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();
و نتیجه دریافتی به صورت زیر خواهد بود.
[
    {
        "Id": 3105,
        "ProjectId": 642,
        "Title": "بررسی وضعیت موجود و تعداد نیروی انسانی شاغل",
        "WeightFactor": 20,
        "ParentId": null,
        "Level": 1,
        "Value": 90,
        "ScheduleValue": 0,
        "DeviationFactor": 0
    },
    {
        "Id": 31272,
        "ProjectId": 642,
        "Title": "تست1",
        "WeightFactor": 100,
        "ParentId": 3105,
        "Level": 2,
        "Value": 0,
        "ScheduleValue": 0,
        "DeviationFactor": 0
    },
    {
        "Id": 3106,
        "ProjectId": 642,
        "Title": "استخراج آخرین استانداردهای نیروی انسانی",
        "WeightFactor": 40,
        "ParentId": null,
        "Level": 1,
        "Value": 75,
        "ScheduleValue": 0,
        "DeviationFactor": 0
    },
    {
        "Id": 3103,
        "ProjectId": 642,
        "Title": "بررسی و مقایسه وضعیت موجود با استانداردها",
        "WeightFactor": 20,
        "ParentId": null,
        "Level": 1,
        "Value": 85,
        "ScheduleValue": 0,
        "DeviationFactor": 0
    },
    {
        "Id": 3108,
        "ProjectId": 642,
        "Title": "ارائه راه حل برای جبران کمبودها",
        "WeightFactor": 20,
        "ParentId": null,
        "Level": 1,
        "Value": 40,
        "ScheduleValue": 0,
        "DeviationFactor": 0
    },
    {
        "Id": 31273,
        "ProjectId": 642,
        "Title": "ururt",
        "WeightFactor": 100,
        "ParentId": 3108,
        "Level": 2,
        "Value": 0,
        "ScheduleValue": 0,
        "DeviationFactor": 0
    },
    {
        "Id": 31274,
        "ProjectId": 642,
        "Title": "ururt",
        "WeightFactor": 80,
        "ParentId": 31273,
        "Level": 3,
        "Value": 80,
        "ScheduleValue": 0,
        "DeviationFactor": 0
    },
    {
        "Id": 31275,
        "ProjectId": 642,
        "Title": "تست1",
        "WeightFactor": 20,
        "ParentId": 31273,
        "Level": 3,
        "Value": 80,
        "ScheduleValue": 0,
        "DeviationFactor": 0
    }
]

Title: عنوان

Value: پیشرفت

Level: سطح

بقیه اطلاعات نیز در حال حاضر مورد نیاز نیست و جایی نمایش داده نمی‌شود.

مقدار Level سطح تو رفتگی را در درخت نمایش خواهد داد.

Actions

url: armandar.com/api/v1/actions/{year}/{page?}/{limit?}/{search?} --- method: get

برای نمایش لیست اقدامات جاری کاربر از این متد استفاده کنید.

year (required) {actions}

سال جاری که کاربر در بخش تنظیمات مشخص نموده‌است با این درخواست و به عنوان پارامتر اول ارسال شود.

page (optional) {actions}

با توجه به اینکه میزان اطلاعات ممکن است زیاد شود و هم زمان لود طول بکشد و هم UI از زیبایی خارج شود اطلاعات به صورت صفحه به صفحه می‌اید. این پارامتر شماره صفحه را برای دریافت اطلاعات آن صفحه مشخص می‌کند.

default:1

limit (optional) {actions}

تعداد رکوردهای مربوط به هر صفحه را نمایش می‌دهد. می‌توانید مشخص کنید که در هربار واکشی اطلاعات چه تعداد رکورد را برای شما بیاورد.

default: 10

search (optional) {actions}

برای جستجوی عبارت خاص در رکوردها از این پارامتر استفاده کنید. این پارامتر جهت استفاده در بخش‌های مختلف جستجو در دسترس است و در آدرس‌های مختلف به همین منظور قرار داده‌شده‌است.

default: ""

Sample {actions}

نمونه نحوه ارسال درخواست با OkHttpClient در جاوا
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://armandar.com/api/v1/actions/1395")
  .get()
  .addHeader("authorization", "Bearer gyXOAl0G4lg5LQYDa....")
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();
و نتیجه دریافتی به صورت زیر خواهد بود.
[
  {
    "Id": 2366,
    "Title": "تهیه گزارش‌های ماهانه سال 95",
    "Code": "A95-002366",
    "YearId": 1395,
    "OrganizationChartTitle": "معاونت توسعه مدیریت و منابع ",
    "Value": 36.84,
    "ScheduleValue": 92.62
  },
  {
    "Id": 2707,
    "Title": "تهیه و انتشار ماهنامه تست",
    "Code": "A95-002707",
    "YearId": 1395,
    "OrganizationChartTitle": "دانشگاه تهران",
    "Value": 62.5,
    "ScheduleValue": 90.83
  }
]

Title: عنوان

Code: کد (حتماً نمایش داده شود.)

OrganizationChartTitle: نام دانشگاه یا واحد

Value: پیشرفت

ScheduleValue: پیشرفت برنامه‌ای

بقیه اطلاعات نیز در حال حاضر مورد نیاز نیست و جایی نمایش داده نمی‌شود.

Save Step Progresses

url: armandar.com/api/v2/saveprogress --- method: post

به آدرس بالا درخواست زده و موارد زیر را به هدر درخواست خود اضافه نمایید.(Header)
headers: {
    "content-type": "application/x-www-form-urlencoded",
    "cache-control": "no-cache",
    "Authorization": "Bearer r6iBDo8NCynu8-VON9E924qrom4gA..."
}
دیتای ارسالی به آدرس نیز باید به این شرح باشد.:
data: {
    "ProjectStepId": 12, //int
    "DatePersian": "1395/01/01", //string
    "Progress": 10.25 //double
}
نمونه کد ارسالی با استفاده از OkHttpClient در جاوا به صورت زیر است:
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "ProjectStepId=12&DatePersian=1395%2F01%2F01&Progress=10.25");
Request request = new Request.Builder()
  .url("http://armandar.com/api/v2/saveprogress")
  .post(body)
  .addHeader("authorization", "Bearer r6iBDo8NCynu8-VON9E924qrom4gA....")
  .addHeader("content-type", "application/x-www-form-urlencoded")
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();
اگر اطلاعات ارسال دچار مشکل باشد اطلاعاتی به شکل زیر دریافت می‌کنید که میتوانید پیام موجود را به صورت هشدار به کاربر نمایش دهید.:
{
    "Id": 0,
    "Success": false,
    "Message": "برای تاریخ مورد نظر اطلاعات ثبت شده است. لطفا تاریخ را تصحیح نمایید.",
    "Data": null
}
در غیر این صورت و اطلاعاتی به این صورت دریافت خواهید کرد:
{
  "Id": 12,
  "Success": true,
  "Message": "ذخیره اطلاعات با موفقیت انجام شد.",
  "Data": {
    "NewActualProgress": 22.2,
    "NewScheduleProgress": 99.33
  }
}
مقادیر NewActualProgress و NewScheduleProgress را در صورتی که بخواهید همان لحظه نمودار پیشرفت پروژه‌ی مربوط به این فعالیت را بروزرسانی کنید می‌توانید مورد استفاده قرار دهید.

Releases

No releases published

Packages

No packages published

Languages