人生中寫的第一個和第二個合格的接口,因爲要精簡,明天會改掉。現備份於此。(PHP接口)

之後做的工作,
將是把代碼中的註釋,全部清除掉。

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2017/10/24
 * Time: 21:22
 */

namespace App\Http\Controllers\Api;

use App\Http\Controllers\BaseController;
use App\Models\Message;
use App\Repositories\Eloquent\MessageRepositoryEloquent;
use App\Transformers\Api\Message\MessageTransformer;
use Illuminate\Http\Request;
use App\Serializer\CustomSerializer;
use Dingo\Api\Http\Response\Factory;

class MessageController extends BaseController
{
    protected $message;//消息的模型。

    /**
     * 初始化一些Eloquent。
     */
    public function __construct(
        MessageRepositoryEloquent $message
    )
    {
        $this->message = $message;
    }


    /**
     * 參數列表:
     * id
     * title
     * content
     * msg_type
     * short_describe
     * read_status
     * user_id
     */
    public function msgLists(Request $request)//可用一般的Request,也可以用自定製的Request。
    {
        $perPage = 20; //分頁的配置:一頁20個數據。

        $msgs = $this->message->msgSearch($request, $perPage);


        return $this->paginatorReturn($msgs, new MessageTransformer());//返回時的使用哪些屬性。


    }


//        第二版
//        if ($msgs->isEmpty()) {
//            //直接指向PHP的原生Response
//            return \Response::json([
//                'message' => 'no more data',
//                'status_code' => '204'
//            ]);
//        } else {
//            return app(Factory::class)->paginator(
//
//                $msgs,
//                new MessageTransformer(),
//                [],
//                function ($resource, $fractal) {
//                    $fractal->setSerializer(new CustomSerializer());
//                }
//            );
//        }


//        第一版
//        $msg_id = $request->get("msg_id");
//        if (!empty($msg_id)) {
//            //$msg = Message::where("msg_id", $msg_id)->get()->first();
//            $msg = Message::find($msg_id);
//            //printf($msg_arr[0]);
//            //echo 6666666;
//            return response()->json(['data' => $msg, 'message' => 'EveryThing is Okay', 'status_code' => '200']);
//        } else {
//            // return response()->json(['data' => 'null', 'message' => 'haven\' received msg_id', 'status_code' => '205']);
//            return response()->json([
//                'data' => Message::all(),
//                'message' => 'Everything is Okay , U can try to input your msg_id',
//                'status_code' => '200'
//            ]);
//        }


    public function msgAdd(Request $request)//StoreMsgRequest
    {
        $attrs = $request->all();

        if (!empty($attrs['title']) && !empty($attrs['content']) && !empty($attrs['msg_type']) && !empty($attrs['user_id'])) {
            $attrs['short_describe'] = mb_substr($attrs['content'], 0, 20)."... ...";
            $msg = Message::create($attrs);

            return $this->itemReturn($msg, new MessageTransformer());//返回時的使用哪些屬性。
        } else {
            return $this->returnEmpty("add msg failed", "400");//返回時的使用哪些屬性。
        }
    }

//        第二版
//        return response()->json(['data' => $msg, 'message' => 'EveryThing is Okay', 'status_code' => '200']);
//        return response()->json(['data' => null, 'message' => 'lack params ', 'status_code' => '400']);


//        測試用例:http://localhost:8000/msg/add?msg_id=4&title=titleaaaaa&content=abcdrfghijklmnopqrst&user_id=10
//        第一版
//        //$msg_id = $request->get("msg_id");
//        $title = $request->get('title');
//        $content = $request->get('content');
//        $msg_type = $request->get('msg_type');
//        $user_id = $request->get('user_id');
//
//
//        if (!empty($msg_id) && !empty($title) && !empty($content) && !empty($user_id)) {
//            $datetime = new \DateTime();
//
//            $msg = Message::create([
//                // 'msg_id' => $msg_id,
//                //'created_at' => $datetime->format('Y-m-d H:i:s'),
//                'title' => $title  /*"this is $msg_id" . "st message"*/,
//                'content' => $content /*"$msg_id message content is here"*/,
//                'msg_type' => $msg_type,
//                'short_describe' => substr($content, 0, 5) . '...'   /*"overview $msg_id" . "st message"*/,
//                //'read_status' => 0,
//                "user_id" => $user_id
//            ]);
//            return response()->json(['data' => $msg, 'message' => 'EveryThing is Okay', 'status_code' => '200']);
//        } else {
//            return response()->json(['data' => 'null', 'message' => 'your msg_id is wrong and the action haven\'t actioned', 'status_code' => '205']);
//        }

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章